appendtofile

rbl8hiat  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(370)

在gce hadoop集群上执行hadoop fs shell命令-appendtofile时遇到问题。我在gce集群上成功地使用了其他hadoop shell命令(例如,-cat,-put,-mv)。另外,我可以在不同的hadoop集群上使用-appendtofile。但是,我无法在gce hadoop集群上使用-appendtofile。我尝试过的语法:

hdfs dfs -appendToFile two.log /tmp/test/one.log

产量:
“appendtofile:无法关闭文件/tmp/test/one.log。正在恢复租约。稍后再试。”其中one.log是hdfs上的现有文件,而two.log是本地文件系统上的现有文件。
此外:

hadoop fs -appendToFile two.log /tmp/test/one.log

产生许多错误,首先是:
java.io.ioexception:无法替换现有管道上的坏数据节点,因为没有更多的好数据节点可供尝试。
我不熟悉这些错误,我相信我的语法用法是正确的。我已经确认其他hadoop命令也使用类似的语法。同样的命令也适用于其他集群。如有任何建议,将不胜感激。谢谢您!

bxpogfeg

bxpogfeg1#

看来你可能遇到了一个已知的问题,显然影响了 append 如果您碰巧正在运行一个默认的bdutil,或者单击部署创建的hadoop集群和2个datanode,那么 dfs.replication 仍为其默认值 3 :hdfs-4600多节点群集中的hdfs文件追加失败
在最近的一次 bdutil 在1.1.0版中,默认的dfs.replication现在是 2 因为默认设置已经在永久磁盘上了;2的复制是一种折衷,它允许hadoop在单节点故障时仍然具有更高的可用性,而底层的持久磁盘提供了持久性。因此,如果您选择最新的更改和/或手动设置 dfs.replication 如果要减少或增加数据节点的数量,append应该开始工作。

相关问题