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