如何执行' recoverLease'之类的命令在Hadoop 2.6.4中

时间:2017-11-21 08:52:05

标签: hadoop hdfs

我正在使用Hadoop 2.6.4并且我的状态为'openforwrite'。我得到了解决方案:运行' hdfs debug recoverLease'恢复hdfs块文件的租约。(Hadoop 2.7.0之后的功能)

但在我的hadoop版本(2.6.4)中,我无法执行recoverLease命令。有没有想法解决这个问题?

非常感谢。

1 个答案:

答案 0 :(得分:0)

在极少数情况下,文件在HDFS中的OPENFORWRITE状态可能会超过默认的到期时间。如果发生这种情况,则需要将数据移动到新的inode以清除OPENFORWRITE状态。

解 1)停止所有写入HDFS的应用程序。 2)暂时将文件移动到其他位置。 $ hdfs dfs -mv /Path_to_file /tmp/

3)将文件复制回原始位置。这将强制创建新的inode并清除OPENFORWRITE状态 $ hdfs dfs -cp /tmp/Path_to_file /Original/destination

4)确认文件正常工作后,从临时位置删除复制的文件。 $ hdfs dfs -rm /tmp/Path_to_file