新增节点
基础准备
主要是设置hadoop运行的系统环境,主要包括
- 系统相关(yum源配置、安装psmisc软件、时间同步配置、LVM配置、防火墙设置),根据需要可选择性实施;
- 配置主机名;
- 修改hosts文件,配置IP和主机名之间映射关系,将集群所有节点都配置进去(集群所有节点保持hosts文件统一);
- 新节点中添加账户,设置无密码登陆;
- 设置新DataNode节点与其它服务器节点之间的免密码登录(ssh-copy-id命令实现);
- 将新DataNode节点的主机名添加到所有节点的workers文件中;
- 安装jdk;
- 在新节点上安装hadoop(包括:将hadoop的配置文件scp到新节点上,配置环境变量,新节点上新建数据log存储目录)。
ssh-copy-id master;ssh-copy-id master2;ssh-copy-id worker1;ssh-copy-id worker2;ssh-copy-id worker3;ssh-copy-id worker4;ssh-copy-id worker5;ssh-copy-id worker6;ssh-copy-id worker7;ssh-copy-id worker8;ssh-copy-id worker9;ssh-copy-id worker10;ssh-copy-id worker11;ssh-copy-id worker12;ssh-copy-id worker13;ssh-copy-id worker14;
添加DataNode
在新增的节点上启动DataNode进程,从而将其加入集群
hdfs --daemon start datanode
然后在namenode节点通过如下命令查看集群HDFS存活的节点
hdfs dfsadmin -report
或者在HDFS Web页面查看是否新增了节点
添加NodeManager
在新增的节点上启动NodeManager进程,从而将其加入集群
yarn --daemon start nodemanager
然后在ResourceManager节点通过如下命令查看YARN各节点状态
yarn node -list
或者在YARN Web页面查看是否新增了节点
刷新节点&HDFS负载均衡
在namenode节点上执行如下命令,刷新集群节点
hdfs dfsadmin -refreshNodes
如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
1)可以设置balancer的带宽,默认只有1M/s,通过下面的命令也可以设置平衡时使用的网络带宽(字节/秒),例如设置为10M/s
hdfs dfsadmin -setBalancerBandwidth 10485760
2)可以设置balancer平衡阈值,默认threshold是10%,值越低各节点负载越均衡,但消耗时间也更长,例如设置为5%,即如果某个datanode的磁盘里使用率比平均水平高出5%,Blocks向其他低于平均水平的datanode中传送, 也就是每个节点使用率相差不超过5%。
start-balancer.sh -threshold 5
等待集群自均衡完成即可。
删除节点
待补充。