我运行的是2.4.1版集群,有1个namenode和4个datanode(namenode就是其中之一)。 我正在运行一个Java程序,它每秒都会将数据附加到HDFS中的文件中。目前文件大小约为100 GB。我的复制因子是2。
我最近开始遇到将数据附加到文件的问题。每次我的程序尝试附加到文件时,我都会遇到异常org.apache.hadoop.ipc.RemoteException(java.io.IOException): append: lastBlock=blk_1073742660_2323939 of src=/user/hduser/siridata.txt is not sufficiently replicated yet.
如果我运行fsck,它说文件已损坏 - 缺少一个块。有时文件系统会随机组合运行balancer
/ namenode recovery
/ hdfs dfs -setrep
而变得健康。运行追加一段时间后,原始问题再次出现。我甚至已经删除了一个已经存在损坏数据的节点,并且系统100%健康而没有任何问题 - 一段时间。
我还尝试开始为数据使用新文件,但同样的问题仍然存在。
任何想法都可能出错?谢谢!