hadoop - 如何在 Hadoop 2.6.4 中执行类似 'recoverLease' 的命令

标签 hadoop hdfs

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

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

非常感谢。

最佳答案

在极少数情况下,文件可能会停留在 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

关于hadoop - 如何在 Hadoop 2.6.4 中执行类似 'recoverLease' 的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408865/

相关文章:

scala - 当第一行是模式时,如何从 Spark 中的 csv(使用 scala)创建数据框?

javascript - 通过 node.js 和 hdfs 模块将文件上传到 HDFS

java - hadoop mapreduce : where's the final hdfs result file when I speficify multiple reducers?

hadoop - 如何从Hive读取HBase当前和先前版本的数据

hadoop - 如何从命令行从CSV批量加载到Hbase

python - Hadoop Mapreduce python命令行参数

python - 如何在HDFS内将CSV转换为Parquet文件

hadoop - 是否可以在 Hadoop 1(没有 YARN)中使用 Impala?

hadoop - 在正在运行的 spark/hadoop 集群中添加一个 hdfs datanode

hdfs - 如何使用presto查询hdfs文件