0、集群规划
服务名 | Hadoop102 | Hadoop103 | Hadoop104 | hadoop105 (新增) |
---|---|---|---|---|
HDFS:DataNode | 1 | 1 | 1 | 1 |
HDFS:NameNode | 1 | |||
HDFS:SecondaryNameNode | 1 | |||
YARN:ResourceManager | 1 | |||
YARN:NodeManager | 1 | 1 | 1 | 1 |
1、服役新节点
以下操作全在新节点上操作不用切来切去
1.1、新节点网络配置
地址IPADDR=192.168.1.105
vi /etc/sysconfig/network-scripts/ifcfg-ens33
主机名
echo hadoop105 > /etc/hostname
增加网络映射
echo "192.168.1.105 hadoop105" >> /etc/hosts
cat /etc/hosts
重启
reboot
配置免密登录:从hadoop102
复制 密钥对 到hadoop105
(要输yes和密码)
sudo scp -r hadoop102:/root/.ssh /root/
scp -r hadoop102:~/.ssh hadoop105:~/
1.2、复制软件
从hadoop102
复制Java和Hadoop及其环境变量到hadoop105
rsync -a hadoop102:$JAVA_HOME/ $JAVA_HOME/
rsync -a hadoop102:$HADOOP_HOME/ $HADOOP_HOME/
scp hadoop102:/etc/profile.d/custom.sh /etc/profile.d/
source /etc/profile.d/custom.sh
1.3、删除Hadoop的数据和日志
rm -rf $HADOOP_HOME/data
rm -rf $HADOOP_HOME/logs
rm -rf /tmp/*
1.4、修改workers并分发(非必须)
echo hadoop105 >> $HADOOP_HOME/etc/hadoop/workers
cat workers
rsync.py $HADOOP_HOME/etc/hadoop/workers
1.5、启动新节点
启动HDFS
的DataNode
hdfs --daemon start datanode
启动YARN
的NodeManager
yarn --daemon start
原
DataNode
新增后
原
NodeManager
新增后
2、删节点
对比 | 白名单 | 黑名单 |
---|---|---|
退出DataNode 节点 | yes | yes |
被退的DataNode 节点数据迁移 | no | yes |
用途 | DataNode 节点禁用 | DataNode 节点退役 |
以下操作全在
NameNode
节点所在的机器上执行不用切来切去
2.1、白名单(不常用,建议用黑名单)
允许白名单里的DataNode
访问NameNode
,不在白名单的DataNode
会被退出
2.1.1、配置白名单【dfs.hosts】的位置
编辑hdfs-site.xml
cd $HADOOP_HOME/etc/hadoop
vi hdfs-site.xml
加入配置(注意每个人Hadoop安装目录不同,本文是/opt/hadoop
)
<property>
<name>dfs.hosts</name>
<value>/opt/hadoop/etc/hadoop/dfs.hosts</value>
</property>
分发
rsync.py hdfs-site.xml
2.1.2、配置白名单【dfs.hosts】的内容
cd $HADOOP_HOME/etc/hadoop
echo hadoop102 >> dfs.hosts
echo hadoop103 >> dfs.hosts
echo hadoop104 >> dfs.hosts
echo hadoop105 >> dfs.hosts
cat dfs.hosts
分发
rsync.py dfs.hosts
2.1.3、重启NameNode
hdfs --daemon stop namenode
hdfs --daemon start namenode
2.1.4、从白名单中去掉某个节点
去掉
hadoop105
cd $HADOOP_HOME/etc/hadoop
echo hadoop102 > dfs.hosts
echo hadoop103 >> dfs.hosts
echo hadoop104 >> dfs.hosts
cat dfs.hosts
分发
rsync.py dfs.hosts
2.1.5、刷新节点
刷新NameNode
hdfs dfsadmin -refreshNodes
刷新ResourceManager
yarn rmadmin -refreshNodes
2.1.6、对比删前删后
删前
删后
2.2、黑名单(建议使用)
黑名单上DataNode
节点会被退出,退出前会进行数据迁移
2.2.1、取消上面白名单配置,并传些数据到HDFS,用于后续观赏
在将被退役的节点上,上传一些数据
ssh hadoop105 "echo aaaabbbbccccddddeeeeffffgggg > ~/b.txt"
ssh hadoop105 "hadoop fs -put ~/b.txt /"
上传
b.txt
并查看其位置(3副本)
2.2.2、配置黑名单【dfs.hosts.exclude】的位置(并重启NameNode)
cd $HADOOP_HOME/etc/hadoop
vi hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/hadoop/etc/hadoop/dfs.hosts.exclude</value>
</property>
分发
rsync.py hdfs-site.xml
重启NameNode
hdfs --daemon stop namenode
hdfs --daemon start namenode
2.2.3、配置黑名单【dfs.hosts.exclude】的内容
hadoop105
加入黑名单
cd $HADOOP_HOME/etc/hadoop
echo hadoop105 >> dfs.hosts.exclude
cat dfs.hosts.exclude
2.2.4、刷新节点
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
2.2.5、对比刷新前后
节点状态图标
节点状态变化:in service -> decommissioning -> decommissioned
jps
进程查看,发现DataNode
还在
b.txt
刷新前
刷新后
3、补充
en | 🔉 | cn |
---|---|---|
decommission | ˌdiːkəˈmɪʃn | v. 拆除(核武器等);使(船)退役 |
availability | əˌveɪləˈbɪləti | n. 可用性;有效性 |
generation | ˌdʒenəˈreɪʃn | n. 一代;产生;一代人 |
maintenance | ˈmeɪntənəns | n. 维护,维修;保持;生活费用 |
refresh | rɪˈfreʃ | 刷新 |
fresh | freʃ | 新鲜的 |
exclude | ɪkˈskluːd | vt. 排除;排斥 |