當前位置:
首頁 > 最新 > 數據流中的大數據的發展生態環境與數據處理流程化

數據流中的大數據的發展生態環境與數據處理流程化

大數據的基本處理流程與傳統數據處理流程並無太大差異,主要區別在於:由於大數據要處理大量、非結構化的數據,所以在各處理環節中都可以採用並行處理。目前,Hadoop、MapReduce和Spark等分散式處理方式已經成為大數據處理各環節的通用處理方法。

Hadoop是一個能夠讓用戶輕鬆架構和使用的分散式計算平台。用戶可以輕鬆地在Hadoop上開發和運行處理海量數據的應用程序。Hadoop 是一個數據管理系統,作為數據分析的核心,彙集了結構化和非結構化的數據,這些數據分布在傳統的企業數據棧的每一層。Hadoop也是一個大規模並行處理框架,擁有超級計算能力,定位於推動企業級應用的執行。Hadoop又是一個開源社區,主要為解決大數據的問題提供工具和軟體。雖然Hadoop提供了很多功能,但仍然應該把它歸類為多個組件組成的Hadoop生態圈,這些組件包括數據存儲、數據集成、數據處理和其他進行數據分析的專門工具。圖2 展示了Hadoop 的生態系統,主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心組件構成,另外還包括Sqoop、Flume等框架,用來與其他企業融合。同時,Hadoop 生態系統也在不斷增長,新增Mahout、Ambari、Whirr、BigTop 等內容,以提供更新功能。

低成本、高可靠、高擴展、高有效、高容錯等特性讓Hadoop成為最流行的大數據分析系統,然而其賴以生存的HDFS 和MapReduce 組件卻讓其一度陷入困境——批處理的工作方式讓其只適用於離線數據處理,在要求實時性的場景下毫無用武之地。因此,各種基於Hadoop的工具應運而生。為了減少管理成本,提升資源的利用率,有當下眾多的資源統一管理調度系統,例如Twitter 的Apache Mesos、Apache 的YARN、Google 的Borg、騰訊搜搜的Torca、Facebook Corona(開源)等。Apache Mesos是Apache孵化器中的一個開源項目,使用ZooKeeper實現容錯複製,使用Linux Containers 來隔離任務,支持多種資源計劃分配(內存和CPU)。提供高效、跨分散式應用程序和框架的資源隔離和共享,支持Hadoop、MPI、Hypertable、Spark 等。YARN 又被稱為MapReduce 2.0,借鑒Mesos,YARN 提出了資源隔離解決方案Container,提供Java 虛擬機內存的隔離。對比MapReduce 1.0,開發人員使用ResourceManager、ApplicationMaster與NodeManager代替了原框架中核心的JobTracker 和TaskTracker。在YARN平台上可以運行多個計算框架,如MR、Tez、Storm、Spark等。

基於業務對實時的需求,有支持在線處理的Storm、Cloudar Impala、支持迭代計算的Spark 及流處理框架S4。Storm是一個分散式的、容錯的實時計算系統,由BackType開發,後被Twitter捕獲。Storm屬於流處理平台,多用於實時計算並更新資料庫。Storm也可被用於「連續計算」(Continuous Computation),對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。它還可被用於「分散式RPC」,以並行的方式運行昂貴的運算。Cloudera Impala是由Cloudera開發,一個開源的Massively Parallel Processing(MPP)查詢引擎。與Hive 相同的元數據、SQL語法、ODBC 驅動程序和用戶介面(HueBeeswax),可以直接在HDFS 或HBase 上提供快速、互動式SQL 查詢。Impala是在Dremel的啟發下開發的,不再使用緩慢的Hive+MapReduce 批處理,而是通過與商用並行關係資料庫中類似的分散式查詢引擎(由Query Planner、Query Coordinator 和Query Exec Engine這3部分組成),可以直接從HDFS 或者HBase 中用SELECT、JOIN 和統計函數查詢數據,從而大大降低了延遲。

Hadoop社區正努力擴展現有的計算模式框架和平台,以便解決現有版本在計算性能、計算模式、系統構架和處理能力上的諸多不足,這正是Hadoop2.0 版本「 YARN」的努力目標。各種計算模式還可以與內存計算模式混合,實現高實時性的大數據查詢和計算分析。混合計算模式之集大成者當屬UC Berkeley AMP Lab 開發的Spark生態系統,如圖3所示。Spark 是開源的類Hadoop MapReduce的通用的數據分析集群計算框架,用於構建大規模、低延時的數據分析應用,建立於HDFS之上。Spark提供強大的內存計算引擎,幾乎涵蓋了所有典型的大數據計算模式,包括迭代計算、批處理計算、內存計算、流式計算(Spark Streaming)、數據查詢分析計算(Shark)以及圖計算(GraphX)。Spark 使用Scala 作為應用框架,採用基於內存的分散式數據集,優化了迭代式的工作負載以及互動式查詢。與Hadoop 不同的是,Spark 和Scala 緊密集成,Scala 像管理本地collective 對象那樣管理分散式數據集。Spark支持分散式數據集上的迭代式任務,實際上可以在Hadoop文件系統上與Hadoop一起運行(通過YARN、Mesos等實現)。另外,基於性能、兼容性、數據類型的研究,還有Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他開源解決方案。預計未來相當長一段時間內,主流的Hadoop平台改進後將與各種新的計算模式和系統共存,並相互融合,形成新一代的大數據處理系統和平台。

大數據生態環境

大數據構成


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 深度數據挖掘 的精彩文章:

大數據時代爆發,2018年你要學什麼技術才能跟上這時代和節奏?

TAG:深度數據挖掘 |