本文主要从基础准备,添加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命令确认一下集群情况