单节点多块磁盘数据均衡
生成HDFS块均衡计划 | hdfs diskbalancer -plan node1 |
执行均衡计划,node1.plan.json均衡计划文件 | hdfs diskbalancer -execute node1.plan.json |
查看当前均衡任务的执行情况 | hdfs diskbalancer -query node1 |
取消均衡任务 | hdfs diskbalancer -cancel node1.plan.json |
修改均衡计划触发阈值 | hdfs diskbalancer -plan node1 --thresholdPercentage 0.01 |
默认的thresholdPercentage值为10%,这意味着仅当磁盘包含的数据比理想存储值多10%或更少时,磁盘才用于平衡操作。
均衡操作示例
均衡后
多节点之间的数据均衡
sbin/start-balancer.sh -threshold 10
对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。
sbin/stop-balancer.sh
注意:由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以尽量不要在NameNode上执行start-balancer.sh,而是找一台比较空闲的机器。
NameNode节点故障恢复
删除NameNode节点中的NameNode元数据
# 伪代码
rm -rf <hdfs-site.xml_dfs.namenode.name.dir>/*
# 示例
rm -rf /home/tools/hadoop/hadoop-3.1.3/data/namenode/*
拷贝namesecondary中的备份镜像文件进行恢复
# 伪代码
cp -r <core-site.xml_hadoop.tmp.dir>/dfs/namesecondary/* <hdfs-site.xml_dfs.namenode.name.dir>
## 示例
cp -r /home/tools/hadoop/hadoop-3.1.3/data/temp/dfs/namesecondary/* /home/tools/hadoop/hadoop-3.1.3/data/namenode/
重启NameNode就恢复了
集群安全模式修复
强制退出安全模式
hdfs dfsadmin safemoode forceExit
删除损坏块
hdfs fsck -delete /
两个集群之间的数据拷贝
<hadoop_home>/bin/hadoop distcp hdfs://node1:8020/data/hello.txt hdfs://mini1:8020/hello.txt
小文件存档
归档文件(将/user/input 目录下的所有文件归档成input.har文件存储在/user/output目录下)
hadoop archive -archiveName input.har -p /input /output
查看归档文件(使用har协议可以查看归档的文件名称也可以查看文件内容)
hadoop fs -ls har:///output/input.har
解归档文件
hadoop fs -cp har:///output/input.har/* /input/
HDFS回收站(修改配置文件<hdoop_home/>)