最近发现hdfs的一个问题,每当集群开启的时候,有一个节点上的可用空间就一直在减少,并且速度很快,发现是data目录下的dncp_block_verification.log.curr文件在一直变大,查了日志没有发现什么可疑的原因,只在datanode的日志上发现有几条日志如下非常可疑:
2015-11-28 21:35:51,029 INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP-1219379569-1 92.168.1.50-1445090469366 blk_1073748736_7916 file /home/hadoop/hdfsdisk/data/current/BP-1219379569-192.168.1.50-1445090469366/curren t/finalized/subdir0/subdir27/blk_1073748736 2015-11-28 21:35:51,062 INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP-1219379569-1 92.168.1.50-1445090469366 blk_1073846979_106183 file /home/hadoop/hdfsdisk/data/current/BP-1219379569-192.168.1.50-1445090469366/curr ent/finalized/subdir1/subdir154/blk_1073846979
好像是namenode发出的删除请求,但是不知道在删除什么
由于暂时没有找出故障原因,所以打算将这个节点删除,然后将节点再添加回来,具体步骤如下:
1. 平滑删除节点
1.1 修改hdfd-site.xml文件
首先集群是开启的,然后添加代码如下:
<property> <name>dfs.hosts.exclude</name> <value>/home/hadoop/hadoop-2.6.0/etc/hadoop/excludes</value> <description> Names a file that contains a list of hosts that are not permitted to connect to the namenode. The full pathnam e of the file must be specified If the value is empty, no hosts are excluded. </description> </property>
其中/home/hadoop/hadoop-2.6.0/etc/hadoop/excludes文件中为要删除的机器hostname,示例如下:
slave8.spark slave9.spark
1.2 然后执行命令刷新hdfs节点:
hadoop dfsadmin -refreshNodes更新hdfs节点状态,由于存在副本的原因,在后台会有块的移动 1.3 运行命令查看hdfs报告 hadoop dfsadmin -report 会显示如下状态:
Live datanodes (8): Name: 192.168.1.58:50010 (slave8.spark) Hostname: slave8.spark Decommission Status : Decommission in progress Configured Capacity: 898359930880 (836.66 GB) DFS Used: 844093001728 (786.12 GB) Non DFS Used: 47660601344 (44.39 GB) DFS Remaining: 6606327808 (6.15 GB) DFS Used%: 93.96% DFS Remaining%: 0.74% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 1 Last contact: Sun Nov 29 13:41:48 CST 2015
说明该节点已经被移除,其实应该等到在hdfs内部块移动结束之后再结束集群,但是我没有等到,直接在显示如上状态后就关闭了集群,然后将slaves中的该节点hostname删除后启动了集群,启动后hdfs又开始了移动块,但是很慢,会等很长时间,但是如果集群一直要用无法关闭集群的话,这个过程是很重要的。
2. 添加节点(未完待续)
时间: 2024-11-07 08:27:22