1. 程式人生 > >Hadoop從入門到精通系列之--0.Hadoop生態體系

Hadoop從入門到精通系列之--0.Hadoop生態體系

目錄

一 大資料的組織部門結構

二 Hadoop的組成部分

2.1 HDFS

2.2 YARN

2.3 MapReduce

三 Hadoop生態體系

四 Hadoop的目錄結構

4.1 bin目錄

4.2 etc目錄

4.3 lib目錄

4.4 sbin目錄

4.5 share目錄


一 大資料的組織部門結構

要向著資料探勘組的職位努力,平臺組偏向於運維方向,資料倉庫組和資料探勘組是最好的就業方向,報表開發組就不好意思評價了,其實就是普通的javaEE工程師,學的大資料就沒有意義了。

二 Hadoop的組成部分

2.1 HDFS

為了解決大資料的儲存的問題,它的成員有三個,分別是NameNode,DataNode,SecondaryNameNode(2nn),下面分別介紹這三個成員,因為HDFS是解決大資料的儲存問題,所以在入門這方面的時候要牢記儲存二字。

  1. NameNode:儲存檔案的元資料,比如檔名,檔案目錄結構,檔案屬性(生成時間,副本書,檔案許可權),以及每個檔案的塊列表,和塊所在的DataNode。
  2. DataNode:在本地硬碟上儲存的具體檔案,塊檔案和塊檔案的校驗和。它和NameNode的關係就像目錄和具體內容的關係一樣。
  3. SecondaryNode:作為NameNode的輔助工具,相當於NameNode中元資料的備份

2.2 YARN

YARN相當於Hadoop的大管家,主要是分配資源,管理這個叢集上的任務,對這些任務進行管理,還是理解大管家這個詞比較貼切。它的成員主要有ResourceManager,NodeManager,ApplicationMaster,Container。

  1. ResourceManager:處理客戶端的請求如job.waitForCompletion(true);監控NodeManager,如所有的Node都要向ResourceManager報告自己的狀態;啟動和監控ApplicationMaster;資源的分配和排程。總的來說ResourceManager是大管家
  2. NodeManager:管理單個節點的資源;處理來自ResourceManager的命令;處理來自ApplicationMaster的命令;總的來說NodeManager是當前這個伺服器的小管家
  3. ApplicationMaster:由ResourceManager建立;負責資料的切片;為job申請資源並分配資源;
  4. Container:它是ResourceManager中提到的資源的抽象,它儲存的是當前伺服器的配置比如說記憶體,硬碟,cpu等,當ApplicationMaster向ResourceManager申請資源的時候,它負責分配。

2.3 MapReduce

MapReduce是分為兩個階段的,分別是Map階段和Reduce階段。

  1. Map階段:主要作用是並行處理輸入的資料,比方說有1TB的資料,用一臺電腦處理和1千個電腦處理就是不一樣的,Map階段就相當於使用一千個電腦處理資料
  2. Reduce階段:主要作用是彙總Map階段的結果,上面說了Map階段是並行的,所以有很多電腦處理,那麼每個電腦處理的結果誰來彙總呢?Reduce階段就是乾的這個活

三 Hadoop生態體系

很多人都不知道Hadoop生態是什麼?大資料僅僅依靠Hadoop框架是不夠的,這個體系是龐大的,不僅僅包含Hadoop,它還有其它的框架,這個生態構成了現在的大資料生態。

四 Hadoop的目錄結構

本不該在這個地方介紹Hadoop目錄結構的,但是也沒有關係,看一看它長什麼模樣,不是更直觀嗎?在Linux上安裝好Hadoop之後,可以檢視一下它的目錄結構。如下:

4.1 bin目錄

存放著對Hadoop相關服務(HDFS,YARN)進行操作的指令碼。

普及一下Linux的基本知識,上圖中行首那一串估計有很多人不懂,這裡普及一下:

-rwxr-xr-x. 1 wanglei wanglei  11386 5月  22 2017 yarn.cmd

  1.  -    :不要忽略這個橫槓,第一位表示檔案型別,-   表示普通檔案,d  表示資料夾,1  表示軟連線,  c  表示裝置,鍵盤什麼的,b  表示塊檔案,硬碟。
  2. rwx:三位結合來看,r表示可讀,w表示可寫,x表示可執行,這三位表示檔案所有者對這個檔案擁有讀寫執行許可權
  3. r-x:同理,這三位表示檔案所在組的其他使用者對這個檔案有讀執行許可權
  4. r-x:同理,這三位表示其他組的使用者對這個檔案有讀執行許可權
  5. 1:如果是檔案,表示硬連結的個數,如果是資料夾,表示子資料夾的個數
  6. wanglei  wanglei:檔案的所有者和所有者在的組
  7. 11386:檔案大小,如果是資料夾的話,大小為4096
  8. 後面的是檔案時間和檔名稱

4.2 etc目錄

存放Hadoop的配置檔案

4.3 lib目錄

存放Hadoop的本地庫,對資料進行壓縮和解壓縮的功能庫

4.4 sbin目錄

存放啟動和停止Hadoop服務的命令,與bin的區別在於bin中是具體操作的命令,而sbin目錄是啟動和停止服務的。

4.5 share目錄

存放Hadoop的依賴jar包,官方文件,和官方的案例