动态的添加和删除hadoop集群中的节点
一:添加节点
步骤:
1.新节点中添加账户,设置无密码登陆
2.Name节点中设置到新节点的无密码登陆
3.在Name节点slaves文件中添加新节点
4.在所有节点/etc/hosts文件中增加新节点名
5.cd /usr/local/hadoop
hadoop-deamon.sh start datanode
.均衡数据节点的数据 start-balamcer.sh
1.设置平衡阀值,默认为10%
start-balancer.sh-threshold 5
2.设balance宽带,默认为1M/s
hdfs dfsadmin -setBalancer Band width 2017520
问题-查看日志:
1.utilities---->Browse the FS 查看hdfs集群中文件
2.logs 日志
实际操作:
A:新节点中添加账户,设置无密码登陆
B:Name节点中设置到新节点的无密码登陆
ssh-copy-id slave4
C:在Name节点slaves文件中添加新节点
D:在所有节点/etc/hosts文件中增加新节点(所有节点保持一致)
-----------------------------
E:启动datanode进程,在新节点中执行--在hadoop安装目录下输入
sbin/hadoop-daemon.sh start datanode
直接刷新web界面,可以看到节点已经在上面了
2.启动nodemanager进程
在hadoop安装目录下输入
sbin/yarn-daemon.sh start nodemanager
3.均衡block
sbin/start-balancer.sh
1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
sbin/start-balancer.sh -threshold 5
3)设置balance的带宽,默认只有1M/s
通过下面的命令也可以设置平衡时使用的网络带宽(字节/秒)
4.配置宽带
打开hdfs-site.xml,设置节点平衡带宽设置(默认值1M,下面设置为10M)
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>20971520</value>
</property>
在NameNode运行 hadoop dfsadmin -report 查看存活的节点
二、删除节点
A:修改Name节点的hdfs-site.xml增加,设置节点排除文件的位置(必须是绝对路径)
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/conf/excludes</value>
</property>
C:新建excludes文件,文件里写要删除节点的hostname
在excludes文件中添加要排除的节点主机名,一行一个
D:Name节点执行
hadoop dfsadmin –refreshNodes
等状态变成Decommissioned后就可以关闭这个节点了,
可在要移除的节点上运行相应的关闭命令,如:
hadoop-daemon.sh stop datanode
几分钟后,节点将从Decommissioned进入Dead状态(时间经过大约500多秒)。
也可以在NameNode上查看关闭进程
hadoop dfsadmin -report
------------注意
1:如果刚删除的节点要再添加到集群要先删除excludes文件,执行 hadoop dfsadmin –refreshNodes
2:节点的状态可以通过http://NameNodes:50070查看
3:如果数据较大则关闭的时间可能会很长