Hadoop2.8 安裝心得
一、從下載badoop、安裝jdk、配置ssl無密碼登入等內容都是一步步的按照《細細品味hadoop》來進行
區別在於,細細品味是以1.x為標杆編寫的。所以關於2.x的配置檔案的寫法,參考本文而非《細細品味》
二、2.x的最大進步在於,引入了yarn,在這個系統中,mapreduce成為了它的一個元件而存在,並且是可替換的元件。比如使用spark。所以配置的過程中,需要注意yarn的相關配置檔案的使用
三、具體配置共有7個,包含以下內容
~/hadoop/etc/hadoop/hadoop-env.sh
~/hadoop/etc/hadoop/yarn-env.sh
~/hadoop/etc/hadoop/slaves
~/hadoop/etc/hadoop/core-site.xml
~/hadoop/etc/hadoop/hdfs-site.xml
~/hadoop/etc/hadoop/mapred-site.xml
~/hadoop/etc/hadoop/yarn-site.xml
1:hadoop-env.sh
該檔案是hadoop執行基本環境的配置,需要修改的為java虛擬機器的位置。
故在該檔案中修改JAVA_HOME值為本機安裝位置(如,export JAVA_HOME=/usr/local/java/jdk1.7.0_79)
2:yarn-env.sh
該檔案是yarn框架執行環境的配置,同樣需要修改java虛擬機器的位置。
在該檔案中修改JAVA_HOME值為本機安裝位置(如,export JAVA_HOME=/usr/local/java/jdk1.7.0_79)
3:slaves
該檔案裡面儲存所有slave節點的資訊,我這裡寫的是ip
說明:slaves檔案中可以寫ip地址,也可以寫成/etc/hosts裡從機的主機名,任選一種即可
比如寫主機名可以是這個形式:xxCentosTwo、xxCentosThree
4:core-site.xml
這個是hadoop的核心配置檔案,這裡需要配置的就這兩個屬性,fs.default.name配置了hadoop的HDFS系統的命名,位置為主機的9000埠;hadoop.tmp.dir配置了hadoop的tmp目錄的根位置。需要新建一個tmp目錄
這裡有個最大的問題,就是使用了ip地址。這樣維護性比較差,當你的ip地址修改的話,如果這裡每一個地方都寫ip,那麼每一個配置檔案都要修改,工作量巨大。還是寫主機名更方便。
5:hdfs-site.xml
這個是hdfs的配置檔案,dfs.http.address配置了hdfs的http的訪問位置;dfs.replication配置了檔案塊的副本數,一般不大於從機的個數。這部分我不明白
6:mapred-site.xml
這個是mapreduce任務的配置,由於hadoop2.x使用了yarn框架,所以要實現分散式部署,必須在mapreduce.framework.name屬性下配置為yarn。mapred.map.tasks和mapred.reduce.tasks分別為map和reduce的任務數,至於什麼是map和reduce,可參考其它資料進行了解。
其它屬性為一些程序的埠配置,均配在主機下。
7:yarn-site.xml
該檔案為yarn框架的配置,主要是一些任務的啟動位置
四、至此,配置性內容都已完成。後面就是啟動和驗證
在任意位置執行dfs namenode -format(因為按照《細細品味》中的操作,已經把hdfs這些命令配置到環境變數中了,所以不需要在前面加上./bin/這些東西了。)這一步是格式化namenode
然後在 /usr/local/hadoop/sbin/下執行./start-all.sh。啟動所有該啟動的內容即可,如果過程中出現停止在那裡不動的,可以考慮是否因為ssh的問題,可以先執行ssh 到其他的datanode去試一下之前配置的無密碼ssh是否正確。如果正確並且也驗證過這個無密碼的ssh的話,這個./start-all.sh應該會正常執行完畢。
如果有其他異常的話,可以參考logs中的日誌。
正常啟動後,namenode上面執行的程序有:namenode secondarynamenode resourcemanager
而datanode上面執行的程序有:datanode nodemanager
檢查啟動結果:
1、檢視叢集狀態:hdfs dfsadmin –report
2、檢視檔案塊:hdfsfsck / -files -blocks
3、檢視hdfs:http://192.168.122.11:50070(主機IP)
4、檢視MapReduce:http://192.168.122.11:8088(主機IP)