一文搞懂Hadoop生態(tài)系統(tǒng)

導(dǎo)讀:Hadoop是較早用于處理大數(shù)據(jù)集合的分布式存儲計算基礎(chǔ)架構(gòu),目前由Apache軟件基金會管理。通過Hadoop,用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,充分利用集群的威力執(zhí)行高速運(yùn)算和存儲。
簡單地說,Hadoop是一個平臺,在它之上可以更容易地開發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件。
作者:王春波
來源:數(shù)倉寶貝庫(ID:DataBaby_Family)


Hadoop基礎(chǔ)功能庫:支持其他Hadoop模塊的通用程序包。 HDFS:一個分布式文件系統(tǒng),能夠以高吞吐量訪問應(yīng)用中的數(shù)據(jù)。 YARN:一個作業(yè)調(diào)度和資源管理框架。 MapReduce:一個基于YARN的大數(shù)據(jù)并行處理程序。
Ambari:基于Web,用于配置、管理和監(jiān)控Hadoop集群。支持HDFS、MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari還提供顯示集群健康狀況的儀表盤,如熱點(diǎn)圖等。Ambari以圖形化的方式查看MapReduce、Pig和Hive應(yīng)用程序的運(yùn)行情況,因此可以通過對用戶友好的方式診斷應(yīng)用的性能問題。 Avro:數(shù)據(jù)序列化系統(tǒng)。 Cassandra:可擴(kuò)展的、無單點(diǎn)故障的NoSQL多主數(shù)據(jù)庫。 Chukwa:用于大型分布式系統(tǒng)的數(shù)據(jù)采集系統(tǒng)。 HBase:可擴(kuò)展的分布式數(shù)據(jù)庫,支持大表的結(jié)構(gòu)化數(shù)據(jù)存儲。 Hive:數(shù)據(jù)倉庫基礎(chǔ)架構(gòu),提供數(shù)據(jù)匯總和命令行即席查詢功能。 Mahout:可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫。 Pig:用于并行計算的高級數(shù)據(jù)流語言和執(zhí)行框架。 Spark:可高速處理Hadoop數(shù)據(jù)的通用計算引擎。Spark提供了一種簡單而富有表達(dá)能力的編程模式,支持ETL、機(jī)器學(xué)習(xí)、數(shù)據(jù)流處理、圖像計算等多種應(yīng)用。 Tez:完整的數(shù)據(jù)流編程框架,基于YARN建立,提供強(qiáng)大而靈活的引擎,可執(zhí)行任意有向無環(huán)圖(DAG)數(shù)據(jù)處理任務(wù),既支持批處理又支持交互式的用戶場景。Tez已經(jīng)被Hive、Pig等Hadoop生態(tài)圈的組件所采用,用來替代 MapReduce作為底層執(zhí)行引擎。 ZooKeeper:用于分布式應(yīng)用的高性能協(xié)調(diào)服務(wù)。

Presto:開源分布式SQL查詢引擎,適用于交互式分析查詢,數(shù)據(jù)量支持GB到PB級。Presto可以處理多數(shù)據(jù)源,是一款基于內(nèi)存計算的MPP架構(gòu)查詢引擎。 Kudu:與HBase類似的列存儲分布式數(shù)據(jù)庫,能夠提供快速更新和刪除數(shù)據(jù)的功能,是一款既支持隨機(jī)讀寫,又支持OLAP分析的大數(shù)據(jù)存儲引擎。 Impala:高效的基于MPP架構(gòu)的快速查詢引擎,基于Hive并使用內(nèi)存進(jìn)行計算,兼顧ETL功能,具有實(shí)時、批處理、多并發(fā)等優(yōu)點(diǎn)。 Kylin:開源分布式分析型數(shù)據(jù)倉庫,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力,支持超大規(guī)模數(shù)據(jù)的壓秒級查詢。 Flink:一款高吞吐量、低延遲的針對流數(shù)據(jù)和批數(shù)據(jù)的分布式實(shí)時處理引擎,是實(shí)時處理領(lǐng)域的新星。 Hudi:Uber開發(fā)并開源的數(shù)據(jù)湖解決方案,Hudi(Hadoop updates and incrementals)支持HDFS數(shù)據(jù)的修改和增量更新操作。
擴(kuò)容能力:能夠可靠地存儲和處理PB級的數(shù)據(jù)。Hadoop生態(tài)基本采用HDFS作為存儲組件,吞吐量高、穩(wěn)定可靠。 成本低:可以利用廉價、通用的機(jī)器組成的服務(wù)器群分發(fā)、處理數(shù)據(jù)。這些服務(wù)器群總計可達(dá)數(shù)千個節(jié)點(diǎn)。 高效率:通過分發(fā)數(shù)據(jù),Hadoop可以在數(shù)據(jù)所在節(jié)點(diǎn)上并行處理,處理速度非常快。 可靠性:Hadoop能自動維護(hù)數(shù)據(jù)的多份備份,并且在任務(wù)失敗后能自動重新部署計算任務(wù)。
因?yàn)镠adoop采用文件存儲系統(tǒng),所以讀寫時效性較差,至今沒有一款既支持快速更新又支持高效查詢的組件。 Hadoop生態(tài)系統(tǒng)日趨復(fù)雜,組件之間的兼容性差,安裝和維護(hù)比較困難。 Hadoop各個組件功能相對單一,優(yōu)點(diǎn)很明顯,缺點(diǎn)也很明顯。 云生態(tài)對Hadoop的沖擊十分明顯,云廠商定制化組件導(dǎo)致版本分歧進(jìn)一步擴(kuò)大,無法形成合力。 整體生態(tài)基于Java開發(fā),容錯性較差,可用性不高,組件容易掛掉。


評論
圖片
表情
