Hadoop虛擬集羣的搭建

主要參考:
1. http://blog.csdn.net/bluetropic/article/details/9335675
2. http://blog.csdn.net/hguisu/article/details/7237395
一、環境介紹:2個節點的虛擬機VMware,Ubuntu12.04
二、修改機器名
sudo vi /etc/hostname
節點1設置爲:VM-BBI-N1
節點2設置爲:VM-BBI-N2
注:Hadoop集羣配置中將設置VM-BBI-N1爲master,VM-BBI-N2爲slave
三、域名和ip配置
sudo vi /etc/hosts
節點1和2均設置爲:
172.29.4.165    VM-BBI-N1.IRRI.CGIARAD.ORG VM-BBI-N1
172.29.4.166    VM-BBI-N2.IRRI.CGIARAD.ORG VM-BBI-N2
四、創建用戶、分配權限(節點1和節點2上相同)
1)創建hadoop用戶組:sudo addgroup hadoop
2)創建用戶hadoop:sudo adduser -ingroup hadoop hadoop
3)給hadoop用戶添加權限:sudo vi /etc/sudoers
在文件最後添加一行:hadoop  ALL=(ALL:ALL) ALL
五、安裝ssh服務(節點1和節點2上相同)
sudo apt-get install openssh-server
六、建立ssh無密碼登錄環境(節點1和節點2上相同)
首先轉換爲hadoop用戶:su hadoop
切換目錄:cd /home/hadoop
1)ssh生成密鑰(rsa方式):ssh-keygen -t rsa -P ""
回車後會在目錄.ssh下生成兩個文件:id_rsa和id_rsa.pub (注:這兩個文件是成對出現的)
2)切換到.ssh目錄下,然後將id_rsa.pub複製到authorized_keys授權文件中:
cd .ssh
cp id_rsa.pub authorized_keys
3)修改SSH配置文件"/etc/ssh/sshd_config"的下列內容。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys  (注:去掉該行前面的註釋)
重啓SSH服務:sudo restart ssh
4)驗證是否成功:ssh localhost
如果無錯誤提示,本地無密碼登錄就配置成功。
七、配置集羣無密碼登錄
首先配置slave節點無密碼訪問master。
1)在VM-BBI-N2上,遠程複製文件"id_rsa.pub"到主機VM-BBI-N1的用戶hadoop的"/home/hadoop/":
scp ~/.ssh/id_rsa.pub hadoop@VM-BBI-N1:~/
因爲還沒有建立起無密碼連接,所以在連接時,要輸入VM-BBI-N1服務器用戶hadoop的密碼。(注:登錄VM-BBI-N1查看"/home/hadoop/"下是否存在這個文件)
2)在VM-BBI-N1上,把剛複製過來的VM-BBI-N2的公鑰追加到VM-BBI-N1的授權文件"authorized_keys"中去。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
修改"authorized_keys"文件權限:chmod 600 ~/.ssh/authorized_keys
刪除"/home/hadoop/"目錄下的"id_rsa.pub"文件:rm –r ~/id_rsa.pub
3)如果集羣中有更多的slave節點,對他們重複步驟(1)-(2)對剩餘的slave服務器進行配置。
完成"配置Slave無密碼登錄Master".
4)在VM-BBI-N1上,輸入命令:scp ~/.ssh/authorized_keys hadoop@VM-BBI-N2:~/.ssh/
如果集羣中有更多的slave節點,分別修改以上命令中的VM-BBI-N2爲剩餘的slave服務器,將複製master節點的authorized_keys到所有slave節點的.ssh目錄。
5)在VM-BBI-N1上,登錄其餘各個節點:ssh VM-BBI-N2
6)在VM-BBI-N2上,登錄其餘各個節點:ssh VM-BBI-N1
八、配置JAVA環境(節點1和節點2上相同)
1)安裝JAVA:sudo apt-get install openjdk-7-jdk
2)配置環境變量:sudo vi /etc/profile
在文件最後添加:
# set java environment
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/
保存並退出,使其配置立即生效:source /etc/profile
3)判斷是否成功:java –version
九、安裝hadoop(節點1和節點2上相同)
1)下載hadoop1.1.2安裝包,複製到usr目錄:sudo cp ~/hadoop-1.1.2.tar.gz  /usr
2)切換目錄:cd /usr
3)解壓縮安裝包:sudo tar -zxvf hadoop-1.1.2.tar.gz
4)修改文件名:sudo mv hadoop-1.1.2 hadoop
5)修改hadoop目錄權限:sudo chown -R hadoop:hadoop hadoop
                     sudo chmod -R 777 hadoop 
6)刪除安裝包:sudo rm -rf hadoop-1.1.2.tar.gz
7)切換到hadoop目錄下的conf目錄:cd  /usr/hadoop/conf
8)編輯hadoop-env.sh:sudo vi hadoop-env.sh
配置JAVA_HOME爲前面配置的JAVA_HOME。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
讓環境變量配置生效: source conf/hadoop-env.sh   
9)編輯core-site.xml:sudo vi core-site.xml
在<configuration>標籤內,添加配置信息如下:
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/hdfs/tmp</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://vm-bbi-n1:49000</value>
</property>
注1:在所有節點的/home/hadoop目錄下,建立目錄hdfs:sudo mkdir hdfs
    修改權限:sudo chown -R hadoop:hadoop hdfs
注2:如果需要重新格式化分佈式文件系統(即執行十 (1)操作),必須先將原有hdfs目錄下的所有文件夾(data,name,tmp和local,見後續hdfs-site.xml和mapred-site.xml中的設置)刪除。
注3:設置端口之前,先查看端口49000是否被佔用:netstat -tuln | grep 49000
    如無顯示信息則表示端口未被佔用。
    後面的設置中端口號(49001,50031,50032,50033)都需要先查看是否被佔用
10)修改hdfs-site.xml:sudo vi hdfs-site.xml
在<configuration>標籤內,添加配置信息如下:
<property>
  <name>dfs.safemode.threshold.pct</name>
  <value>0</value>
</property>
<property>
  <name>dfs.http.address</name>
  <value>vm-bbi-n1:50031</value>
</property>
<property>
  <name>dfs.secondary.http.address</name>
  <value>vm-bbi-n1:50033</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.name.dir</name>
  <value>/home/hadoop/hdfs/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hadoop/hdfs/data</value>
</property>
11)在mapred-site.xml中添加內容:
<property>
  <name>mapred.job.tracker</name>
  <value>vm-bbi-n1:49001</value>
</property>
<property>
  <name>mapred.job.tracker.http.address</name>
  <value>vm-bbi-n1:50032</value>
</property>
<property>
  <name>mapred.local.dir</name>
  <value>/home/hadoop/hdfs/local</value>
</property>
12)修改masters:
vm-bbi-n1
13)修改slaves:
vm-bbi-n2
重複上述步驟,爲其他節點做相同的配置。
或
14)使用scp遠程複製主機(master)hadoop目錄下的所有文件到其他節點:
在VM-BBI-N1上,sudo scp -r /usr/hadoop hadoop@vm-bbi-n2:/usr
在VM-BBI-N2上(/usr目錄下),修改hadoop目錄權限:sudo chown -R hadoop:hadoop hadoop
十、啓動hadoop
1)在VM-BBI-N1主機上的hadoop安裝目錄下,執行格式化:bin/hadoop namenode -format
2)啓動服務:bin/start-all.sh
3)到各個節點上使用jps查看進程啓動情況。
在master上的結果:Jps、SecondaryNameNode、NameNode和JobTracker四個服務
在slave上的結果:TaskTracker、DataNode和Jps三個服務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章