本文主要从基础准备,添加DataNode和添加NodeManager三个部分详细说明在Hadoop2.6.0环境下,如何动态新增节点到集群中。


  • 基础准备
    在基础准备部分,主要是设置hadoop运行的系统环境
  • 修改系统hostname(通过hostname和/etc/sysconfig/network进行修改)
  • 修改hosts文件,将集群所有节点hosts配置进去(集群所有节点保持hosts文件统一)
  • 设置NameNode(两台HA均需要)到DataNode的免密码登录(ssh-copy-id命令实现,可以免去cp *.pub文件后的权限修改)
  • 修改主节点slave文件,添加新增节点的ip信息(集群重启时使用)
  • 将hadoop的配置文件scp到新的节点上
  • 添加DataNode
    对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群
  • 在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可
  • 然后在namenode通过hdfs dfsadmin -report查看集群情况
  • 最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可
  • 默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
  • 然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可
  • 添加Nodemanager
    由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群
  • 在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可
  • 在ResourceManager,通过yarn node -list查看集群情况


Hadoop 2.2.0 热添加新节点 (含HBASE)


环境:


192.168.137.101 hd1


192.168.137.102 hd2


192.168.137.103 hd3


192.168.137.104 hd4


四节点hadoop和hbase




1、hd5中修改/etc/hosts


加入


192.168.137.105 hd5



2、分发其到所有hd1, hd2, hd3, hd4


scp /etc/hosts hd1:/etc

scp /etc/hosts hd2:/etc

scp /etc/hosts hd3:/etc

scp /etc/hosts hd4:/etc



3、修改hd5节点的


/home/hadoop/hadoop/etc/hadoop/slaves


加添hd5作为最后一个节点



4、在hd5节点删除原来的.ssh中的共钥私钥文件,重新生成


cd ~/.ssh


rm id_rsa


rm id_rsa.pub


ssh-keygen -t rsa



5、将原先hd1节点中的authorized_keys文件拷贝到hd5,再加入新共钥


cat ~/.ssh/id_rsa.pub >> authorized_keys



6、分发改文件到其它各节点


scp ~/.ssh/authorized_keys hd1:/home/hadoop/.ssh

scp ~/.ssh/authorized_keys hd2:/home/hadoop/.ssh

scp ~/.ssh/authorized_keys hd3:/home/hadoop/.ssh

scp ~/.ssh/authorized_keys hd4:/home/hadoop/.ssh



7、前往各个节点进行第一次到hd5的ssh登录(hd5本地的也做一次回环ssh登录比较好)


在hd1, ssh hd5 date


在hd2, ssh hd5 date


在hd3, ssh hd5 date


在hd4, ssh hd5 date


在hd5, ssh hd5 date




8、在hd5修改hadoop的slave文件


vim /home/hadoop/hadoop/etc/hadoop/slaves


加入hd5


分发其到其它节点


scp /home/hadoop/hadoop/etc/hadoop/slaves hd1:/home/hadoop/etc/hadoop

scp/home/hadoop/hadoop/etc/hadoop/slaves hd2:/home/hadoop/etc/hadoop

scp/home/hadoop/hadoop/etc/hadoop/slaves hd3:/home/hadoop/etc/hadoop

scp/home/hadoop/hadoop/etc/hadoop/slaves hd4:/home/hadoop/etc/hadoop



9、在hd5启动yarn


start-dfs.sh


yarn-daemon.sh start datanode


(如果是虚拟机复制的产物,请删除/home/hadoop/tmp和/hoem/hadoop/hdfs中的文件,当然这两个路径还是要保留的)



10、在hd5启动start-balancer.sh均衡当前hdfs块


Start-balancer.sh



11、如果还有hbase在上面运行则需要部署hbase的hserver


修改


vim /home/hadoop/hbase/conf/regionservers

加入hd5


vim /home/hadoop/hbase/conf/hbase-site.xml

加入



hbase.zookeeper.quorum

   hd1,hd2,hd3,hd4,hd5

 




12、复制上面两个文件到hd1,hd2,hd3,hd4


scp regionservers hd1:/home/hadoop/hbase/conf

scp regionservers hd2:/home/hadoop/hbase/conf

scp regionservers hd3:/home/hadoop/hbase/conf

scp regionservers hd4:/home/hadoop/hbase/conf


scp hbase-site.xml hd1:/home/hadoop/hbase/conf

scp hbase-site.xml hd2:/home/hadoop/hbase/conf

scp hbase-site.xml hd3:/home/hadoop/hbase/conf

scp hbase-site.xml hd4:/home/hadoop/hbase/conf



13、在hd5启动hbase regionserver


hbase-daemon.sh start regionserver



14、在hd1和hd5启动hbase shell


用status命令确认一下集群情况