硬件資源:
三臺CentOS5.6虛擬機(Vmware)
本機 windows7 64x
基本資源配置:
三臺虛擬機均是克隆自同一個鏡像
已經安裝了Java環(huán)境(jdk1.6.0_25)
Hadoop路徑在/usr/hadoop/hadoop-0.20.205.0
操作步驟:
1、機器名稱規(guī)范
ip分別為128、129、130,將128設置為master,其他設置為slave
修改
/etc/sysconfig/network
/etc/hosts
兩處配置,名稱分別為hadoop-master\hadoop-slave01\hadoop-slave02
注意:此處名稱最好不用使用下劃線,有可能引發(fā)namenode的啟動異常。
2、修改Hadoop配置
在master節(jié)點的conf中修改master和slave文件,分別為機器的ip地址
修改master節(jié)點的conf中:
core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://ip-master:9000</value>
</property>
mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
hdfs-site.xm
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
注意此處的端口號均為默認。
3、建立m-s之間的ssh連接
首先master與slave機器都需要進行ssh信任文件生成,執(zhí)行如下命令:
$ ssh-keygen -t rsa
中間需要輸入的地方直接回車,接受缺省值即可
由于使用root用戶登錄,所以密鑰文件生成在 /root/.ssh/文件夾下,存有一對密鑰id_dsa和id_dsa.pub。
此處id_dsa(私鑰)必須為其他用戶不可讀,所以文件屬性應當是600
在master機器執(zhí)行:
將id_dsa.pub(公鑰)復制為 authorized_keys
$ cp id_dsa.pub authorized_keys
如果是多臺機器需要,無密碼登陸,則各自機器產生公鑰追加到authorized_keys即可.
使用scp協(xié)議覆蓋slave端的密鑰文件夾,使得slave機器信任來自master的連接:
$ scp /root/.ssh/* ip-slave:/root/.ssh
4、啟動服務
建議將$HADOOP_HOME/bin下的所有文件給與執(zhí)行權限:
$ chmod 777 bin
master作為namenod需要執(zhí)行如下腳本:
$HADOOP_HOME/bin/hadoop namenode –format
完成后執(zhí)行 $HADOOP_HOME/bin/start-all.sh
5、問題檢查
在Hadoop根目錄下的logs文件中,檢查各個服務日志的啟動情況
6、其他情況說明:
Q: $HADOOP_HOME is deprecated
A: 基本不會產生任何影響。由于腳本啟動時設置了該環(huán)境變量,就會提示用戶原有環(huán)境變量失效??梢匀∠h(huán)境變量設置,或者直接去bin/hadoop中找到這句話,去掉即可
Q: 無效的選項 -jvm / Unrecognized option: -jvm
A: 在使用root用戶登錄時 bin/hadoop 腳本就會進行判斷,加上-jvm參數。此處是為了進入jsvc(http://commons.apache.org/daemon/jsvc.html),此處并不確定是否bug,也不再進行詳細的追溯,解決方法就是進入 bin/hadoop 腳本中 找到 jvm 參數并去掉。