認知和學習Hadoop,我們必須得了解Hadoop的構成,下面通過Hadoop構件、大數據處理流程,Hadoop核心三個方面進行一下介紹:
hadoop中有3個核心組件:
分布式文件系統:HDFS —— 實現將文件分布式存儲在很多的服務器上
分布式運算編程框架:MAPREDUCE —— 實現在很多機器上分布式並行運算
分布式資源調度平台:YARN —— 幫用戶調度大量的mapreduce程序,並合理分配運算資源
一、 Hadoop組件
由圖我們可以看到Hadoop組件由底層的Hadoop核心構件以及上層的Hadoop生態系統共同集成,而上層的生態系統都是基於下層的存儲和計算來完成的。首先我們來了解一下核心構件:Mapreduce和HDFS。Google有bigtable的概念,就是通過一個表格去存儲所有的網頁數據,從而也帶來了Hbase,但Hbase只是這種架構思想,架構並不完全一樣。而位於上層的生態就是圍繞Hadoop核心構件進行數據集成,數據挖掘,數據安全,數據管理以及用戶體驗等。
二、 大數據處理:
以上的流程符合大數據所有的應用場景。那么大數據處理,首先必須有各種的數據源,這個數據源包含了所有傳統的結構化的數據,服務器的認證以及非結構化的文本(如PDF及CSV)。
接着就是數據存儲層,數據存儲層可以選擇HDFS,也可以選擇HBase。它們兩個如何來更好的選擇呢?HDFS一般是大量數據集的時候用比較好,因為HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。而HBase更多的是利用它的隨機寫,隨機訪問的海量數據的一個性能。
然后就是數據處理工具,基本的就是spark和mapreduce,更高級的就是hive和pig,有機會我會做詳細的分析。在這些數據處理工具的之后,我們要跟BI和現有的、傳統的數據進行集成,這時我們可以使用Impala,進行及時查詢。首先我們要提前建好Q,算出維度、指標,通過Impala鑽去,切片、切塊,速度很快。search就是權威索引,之前工作都做完后,可以通過搜索去查找到需要的信息。
大數據處理都是需要這些組件來發揮作用,只是組件所處的階段不一樣而已,下面來介紹一下核心的組件。
三、 Hadoop核心
這里主要強調YARN:我們都知道大家使用資源都是一個共用集群資源,在使用資源的過程中就需要進行資源控制,而YARN就可以起到控制和使用資源多少的一個作用。