當前位置:
首頁 > 最新 > 大數據家族成員概述

大數據家族成員概述

作為hadoop框架的開篇之作,我們試圖用最簡潔易懂的語言去介紹hadoop常見的家族成員的產生的背景及應用的場景。後續會針對性對各成員的原理機制進行詳細介紹。hadoop家族成員概貌如下圖:

下文將對hadoop常用家族成員進行簡單介紹。

1、hadoop經歷了從hadoop1.x到hadoop2.x的飛躍,hadoop1.x的出現填補了大數據處理市場的空白,使得對TB、PB甚至EB級別數據的處理成為可能。hadoop1.x由兩部分組成,即HDFS和MapReduce,HDFS作為分散式文件系統,專門用來存儲大量的數據。MapReduce作為分散式計算框架,對分散式存儲的數據進行分散式的迭代處理和分析。hadoop2.x由三部分組成,即HDFS、Yarn和MapReduce,其中Yarn的出現使得Hadoop框架有了質的飛躍,作為資源調度器,Yarn能夠高效的利用資源,並且也能將Spark、Storm等計算框架運行在Hadoop集群上,在後續會詳細的介紹Yarn。

2、Hive,作為運行在hadoop之上的數據倉庫,可以將HDFS上存儲的數據,映射成一張表格,並且基於MR計算框架進行數據的分析。由於Hive將查詢映射成MR進行計算,所以查詢的實時性不強,後續筆者將詳細介紹Spark on Hive,以及impala對Hive查詢引擎所做的優化。

3、Hbase,作為Google Bigtable 的開源實現,是一種構建在HDFS之上的分散式、面向列的資料庫,作為Key-Value資料庫,Hbase通過行健、列族、列和時間戳定位到數據,在後續筆者將對Hbase的框架和原理進行詳細分析。

4、Kafka,作為高吞吐量的分散式發布-訂閱消息系統,在流處理領域中得到了廣泛的應用,一般作為流處理的數據源。後續筆者將會詳細介紹kafka的原理,以及kafka在電信領域流處理過程中的應用。

5、Flume,作為分散式的日誌收集系統,主要分為Source,Channel,Sink三部分,如下圖所示:

Source負責從數據源採集數據,數據源可以是文件系統,也可以是Kafka等消息系統;Channel作為數據傳輸的通道將數據源採集的數據通過Sink發送給數據接受地。Sink作為數據的輸出端,通過指定不同類型的Sink將數據進行存儲,常用的Sink有hdfs,kafka,ES等,後續筆者將針對Flume的不同應用進行詳細舉例。

6、Kudu,作為Hadoop家族的比較新的成員,作為對分散式列資料庫的補充,同時又支持列的擴展和SQL查詢,後續會對Kudu的安裝和使用進行詳細介紹。

7、Zookeeper,作為Hadoop家族的分散式協作服務,幾乎到處都可以看到Zookeeper的身影,Hadoop2.x通過zookeeper來克服單點故障;Kafka通過Zookeeper來進行崩潰檢測,實現topic的發現,並保持topic的生產和消費狀態;Hbase通過Zookeeper選舉集群主節點,並保存元數據,等等其他分散式系統中會經常看到Zookeeper的身影,筆者認為Yarn和Zookeeper在新一代的大數據工具扮演著至關重要的角色,後續會深入的分析Zookeeper的源碼、原理。

關注是一種態度,分享是一種美德。本公眾號每周都會進行更新,如有疑問,歡迎交流。

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

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


請您繼續閱讀更多來自 大數據技術宅 的精彩文章:

TAG:大數據技術宅 |