K8s中下线Hadoop节点(节点下线,调整副本数)

发布时间 2023-12-27 16:21:57作者: 何亚告

K8s中下线Hadoop节点(节点下线,调整副本数)

将Hadoop从三副本修改为双副本,同时修改datanode和nodemanager节点数为2

修改hadoop节点副本数和datanode以及yarn nodemanager节点数:
hadoop.hdfs.replication=2
hadoop.hdfs.datanode=2
hadoop.yarn.nodemanager=2

重启hadoop yarn所有pod,确保pod不在需要下线的节点上(通过节点亲和实现)

Hadoop节点下线
hdfs-site.xml添加

<property>
<name>dfs.hosts</name>
<value>/opt/hadoop/etc/hadoop/dfs.include</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/hadoop/etc/hadoop/dfs.exclude</value>
</property>

新建文件

touch /opt/hadoop/etc/hadoop/dfs.include
touch /opt/hadoop/etc/hadoop/dfs.exclude

调整 dfs.exclude 文件内容,填写欲下线节点的 ip 或者 hostname

hdfs dfsadmin -refreshNodes
hdfs dfsadmin -report
hdfs --daemon stop datanode

将K8s节点下线(可裁切)

点击查看代码
kubectl cordon w-1
kubectl drain w-1 --ignore-daemonsets --delete-emptydir-data --
force
kubectl delete node w-1

查看hdfs根目录下数据块分布
hdfs fsck / -files -blocks -racks | grep default-rack

重启hdfs(可以通过删pod实现)

stop-dfs.sh
start-dfs.sh

调整副本数

调整根目录文件副本数
hdfs dfs -setrep -w 2 /
调整目录副本数
hdfs dfs -setrep -R -w 2 /

执行数据均衡
hdfs --loglevel DEBUG balancer -policy datanode -threshold 1

检查数据块分布
hdfs fsck / -files -blocks -racks | grep default-rack