標籤:
這次配置的環境是Hadoop1.2.1版本,Hadoop在13年推出了Hadoop2.0版本,該版本在Hadoop1.0版本的基礎上作了較大的改動,提升了Hadoop叢集任務調度、資源分派以及故障處理方面的效率。
Hadoop2.0在Hadoop1.0的基礎上,首先對HDFS作了改動,在Hadoop1.0中,HDFS系統中NameNode節點只允許有1個,當然,在GFS的論文中,叢集中影藏著一個ShadowNode,作為NameNode的備份,應該就是Hadoop1.0中配置的SecondaryNameNode吧,在Hadoop2.0中,HDFS系統中可以存在多個NameNode,這些NameNode之間相互獨立,DataNode向所有的NameNode註冊訊息,這樣,加強了系統的水平擴充能力以及系統的可用性。
Hadoop2.0還有的一個改動就是對MapReduce運行架構的一個變動,在Hadoop1.0中,JobClient向Master伺服器提交任務後,任務由JobTracker分為不同的Task,提交給Slaver伺服器進行計算,Master伺服器的任務包括任務的分配、資源的分配、Task執行情況的追蹤, 以及Task執行失敗後的處理,所有這些東西都集中在Master伺服器上,由此帶來了單點失效的風險以及加大了任務分配失敗的機率,在Hadoop2.0中,通過對資源管理以及任務管理的改進,Master節點只進行資源的分配 以及工作狀態的監控,其他的比如工作的劃分,任務狀態的檢測等都交給Slaver節點,這個也就是最新的Yarn架構,其系統結構如所示:
從中可以看出,Master伺服器只負責運行ResourceManager,負責資源的管理,具體的任務由ApplicationManager負責管理,這其中包括任務的分配、狀態跟蹤以及錯誤處理。
Hadoop環境的搭建主要是配置 一下幾個檔案:core-site.xml,hdfs-site.xml,mapred-site.xml以及yarn-site.xml。
core-site.xml裡面主要配置叢集的任務提交地址。
hdfs-site.xml裡面填寫關於hdfs系統相關的配置,包括目錄檔案及資料檔案的位置。
mapred-site.xml:配置JobTracker的連接埠,map操作的中間結果的本地位置。
yarn-site.xml:這是hadoop2中有的特殊的設定檔,是對yarn架構的配置,具體的配置資訊見hadoop官網,但是不會填寫。
配置Hadoop1的環境還是挺簡單的,但是Hadoop2的設定檔中的內容改變較大,配置了2.6但是不成功。
利用Hadoop1的叢集,作了一些效能方面的測試,Hadoop1的叢集的環境是一台Master,2台Slaver,每台Slaver都是單核,2G記憶體的配置,測試的程式是Hadoop內建的WordCount用例。
本地產生了134兆的檔案,單個檔案,通過位元組寫的單詞統計程式,統計完一個檔案,耗時17秒,在叢集中,單個檔案的耗時為1分44秒。從單個檔案的結果看,Hadoop沒有體現出他應該有的效能來,後來測試了10個這樣的檔案,本地用時3分34秒,叢集第一次用時3分44秒,效能已經相當接近了,再考慮到叢集兩台Slaver的配置加起來也沒有我一台筆記本的配置高,所以結果可以接受,在第一次Job執行完後,立即執行第二次,結果是2分50秒,這個結果贊了。。
Hadoop叢集環境配置