目錄
一 大數據的組織部門結構
要向着數據挖掘組的職位努力,平臺組偏向於運維方向,數據倉庫組和數據挖掘組是最好的就業方向,報表開發組就不好意思評價了,其實就是普通的javaEE工程師,學的大數據就沒有意義了。
二 Hadoop的組成部分
2.1 HDFS
爲了解決大數據的存儲的問題,它的成員有三個,分別是NameNode,DataNode,SecondaryNameNode(2nn),下面分別介紹這三個成員,因爲HDFS是解決大數據的存儲問題,所以在入門這方面的時候要牢記存儲二字。
- NameNode:存儲文件的元數據,比如文件名,文件目錄結構,文件屬性(生成時間,副本書,文件權限),以及每個文件的塊列表,和塊所在的DataNode。
- DataNode:在本地硬盤上存儲的具體文件,塊文件和塊文件的校驗和。它和NameNode的關係就像目錄和具體內容的關係一樣。
- SecondaryNode:作爲NameNode的輔助工具,相當於NameNode中元數據的備份
2.2 YARN
YARN相當於Hadoop的大管家,主要是分配資源,管理這個集羣上的任務,對這些任務進行管理,還是理解大管家這個詞比較貼切。它的成員主要有ResourceManager,NodeManager,ApplicationMaster,Container。
- ResourceManager:處理客戶端的請求如job.waitForCompletion(true);監控NodeManager,如所有的Node都要向ResourceManager報告自己的狀態;啓動和監控ApplicationMaster;資源的分配和調度。總的來說ResourceManager是大管家
- NodeManager:管理單個節點的資源;處理來自ResourceManager的命令;處理來自ApplicationMaster的命令;總的來說NodeManager是當前這個服務器的小管家
- ApplicationMaster:由ResourceManager創建;負責數據的切片;爲job申請資源並分配資源;
- Container:它是ResourceManager中提到的資源的抽象,它存儲的是當前服務器的配置比如說內存,硬盤,cpu等,當ApplicationMaster向ResourceManager申請資源的時候,它負責分配。
2.3 MapReduce
MapReduce是分爲兩個階段的,分別是Map階段和Reduce階段。
- Map階段:主要作用是並行處理輸入的數據,比方說有1TB的數據,用一臺電腦處理和1千個電腦處理就是不一樣的,Map階段就相當於使用一千個電腦處理數據
- 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
- - :不要忽略這個橫槓,第一位表示文件類型,- 表示普通文件,d 表示文件夾,1 表示軟連接, c 表示設備,鍵盤什麼的,b 表示塊文件,硬盤。
- rwx:三位結合來看,r表示可讀,w表示可寫,x表示可執行,這三位表示文件所有者對這個文件擁有讀寫執行權限
- r-x:同理,這三位表示文件所在組的其他用戶對這個文件有讀執行權限
- r-x:同理,這三位表示其他組的用戶對這個文件有讀執行權限
- 1:如果是文件,表示硬鏈接的個數,如果是文件夾,表示子文件夾的個數
- wanglei wanglei:文件的所有者和所有者在的組
- 11386:文件大小,如果是文件夾的話,大小爲4096
- 後面的是文件時間和文件名稱
4.2 etc目錄
存放Hadoop的配置文件
4.3 lib目錄
存放Hadoop的本地庫,對數據進行壓縮和解壓縮的功能庫
4.4 sbin目錄
存放啓動和停止Hadoop服務的命令,與bin的區別在於bin中是具體操作的命令,而sbin目錄是啓動和停止服務的。
4.5 share目錄
存放Hadoop的依賴jar包,官方文檔,和官方的案例