hadoop2.X动态添加删除节点及相关问题总结

hadoop2.X动态添加节点教程及相关问题总结

设置hadoop运行的系统环境

修改系统hostname(通过hostname/etc/sysconfig/network进行修改)

修改hosts文件,将集群所有节点hosts配置进去(集群所有节点保持hosts文件统一)

设置NameNode(两台HA均需要)到DataNode的免密码登录(ssh-copy-id命令实现,可以免去cp *.pub文件后的权限修改)

修改主节点slave文件,添加新增节点的ip或计算机名信息(集群重启时使用)

hadoop的配置文件scp到新的节点上(这里特别注意一定要拷贝nameNode节点的hadoop文件夹,如果拷贝dataNode的会有问题,在最后总结)

 

添加DataNode

对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群

在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可

namenode节点刷新datanode,hdfs dfsadmin -refreshNodes

然后在namenode通过hdfs dfsadmin -report查看集群情况

也可以通过nameNode50070端口查看活动的datanode节点数

最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandWidth 67108864即可

默认balancerthreshold10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%

然后启动Balancersbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可

添加Nodemanager

 

由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群

在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可

ResourceManager,通过yarn node -list查看集群情况

 

问题总结:

问题一:我使用虚拟机搭建的hadoop集群,在新加入节点的时候由于新节点的MAC地址与原有节点MAC冲突,导致在ping的时候丢包?

问题原因:MAC地址冲突导致,解决办法修改MAC地址即可。修改办法自行google(这里还有个现象:nameNode节点ping新节点,丢包,新节点pingnameNode畅通)

问题二:在复制hadoop文件夹时我复制的datanodehadoop,最终导致,新节点与被复制节点的datanodeUuid一样(位置:{HADOOPHOME}/tmp/dfs/name/current/VERSION文件)这样会导致,被复制节点和新节点的冲突,被复制节点和新节点在web查看时,或者被复制节点出现,或者新节点出现(但均为死节点

解决办法:一定要从namenode中复制hadoop文件夹

 

 

你可能感兴趣的:(hadoop2.x)