天天看點

【原創】hadoop叢集增加datanode

目前環境說明:

主機名       IP位址            用途

hadoop1      192.168.3.65      namenode、jobtracker

hadoop2      192.168.3.66      datanode、tasktracker

hadoop3      192.168.3.67      datanode、tasktracker、secondarynamenode

hadoop4      192.168.3.64      datanode、tasktracker

要求準備新增一台datanode節點到叢集中,機器資訊如下:

主機名                      IP位址           用途

stat.localdomain          172.16.7.164       datanode

部署前提條件:

新增的datanode節點務必能和叢集中的每個節點互相ping通!這個屬于網絡的問題就不多讨論了!

1、新增的datanode節點的hosts檔案增加如下内容:

192.168.5.54    master

2、從hadoop1節點拷貝id_rsa.pub并重命名為authorized_keys

[root@stat .ssh]# scp 192.168.3.65:/root/.ssh/id_rsa.pub authorized_keys

3、從hadoop1節點拷貝id_rsa到新增datanode上

[root@stat .ssh]# scp 192.168.3.65:/root/.ssh/id_rsa .

4、驗證hadoop1登入到新增datanode,并且新增datanode登入到hadoop1是否需要密碼登入?

[root@hadoop1 .ssh]# ssh stat.localdomain

The authenticity of host 'stat.localdomain (172.16.7.164)' can't be established.

RSA key fingerprint is b5:50:2e:4a:1e:81:37:a2:4d:e3:6c:a0:cd:a8:1a:1b.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'stat.localdomain,172.16.7.164' (RSA) to the list of known hosts.

Last login: Mon Jul  2 07:04:38 2012 from zengzhunzhun.ninetowns.cn

[root@stat .ssh]# ssh hadoop1

Last login: Mon Jul  2 10:49:34 2012 from zengzhunzhun.ninetowns.cn

5、從hadoop1節點拷貝jdk到新增datanode上。并且設定相應的環境變量

[root@stat ~]# mkdir -p /usr/java

[root@stat ~]# cd /usr/java

[root@stat java]# scp -r hadoop1:/usr/java/jdk* .

添加環境變量,在/root/.bash_profile檔案裡增加如下内容:

export JAVA_HOME=/usr/java/jdk1.6.0_14

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=$JAVA_HOME/bin:$PATH

執行如下指令讓變量生效

[root@stat ~]# source .bash_profile

顯示如下則說明jdk沒有問題。

[root@stat ~]# java -version

java version "1.6.0_14"

Java(TM) SE Runtime Environment (build 1.6.0_14-b08)

Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

6、拷貝hadoop應用到新增的datanode節點上

[root@stat ~]# scp -r hadoop1:/root/hadoop .

7、啟動新增的datanode節點的datanode和tasktracker進行

[root@stat ~]# hadoop/bin/hadoop-daemon.sh start datanode

[root@stat ~]# hadoop/bin/hadoop-daemon.sh start tasktracker

8、最後測試,我們可以在浏覽器裡面檢視,或者hadoop dfsadmin -report檢視都行!我這裡就不測試了!應該沒有任何問題的!但是這裡有個建議,這裡新增了一台datanode節點,下次start-all.sh的時候,這個是啟動不起來的,除非把datanode節點加入到配置檔案中并且rsync到每個節點哈!切記!!!

9、還有一點,有很多文章說要對新加的節點進行塊均衡。不然以後的資料都會放到新增的datanode上,也就是執行如下指令:

[root@stat ~]# hadoop/bin/start-balancer.sh

但是我自己做過實驗,不進行塊均衡,後續塊檔案也是分開放的,并不是隻放到新增的datanode上。這點也許我做的不太充分的測試,等生産環境上了就可以知道了!