我遇到了72台机器的问题。 其中60个是HOT存储,12个是COLD。 当我试图将数据放入COLD Hive表有时时出现错误:
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/hive/warehouse/test.db/rawlogs/dt=2016-01-31/.hive-staging_hive_2016-06-29_12-54-09_949_6553181118480369018-1/_task_tmp.-ext-10002/_tmp.001029_3 could only be replicated to 0 nodes instead of minReplication (=1). There are 71 datanode(s) running and no node(s) are excluded in this operation.
主机FS和HDFS上都有很多可用空间。
配置容量|使用的容量|剩余容量|使用的块池
ARCHIVE 341.65 TB 56.64 TB(16.58%)267.65 TB(78.34%)56.64 TB
DISK 418.92 TB 247.78 TB(59.15%)148.45 TB(35.44%)247.78 TB
我为COLD服务器定义了4个机架。
Rack:/ 50907 1节点
Rack:/ 50912 1节点
Rack:/ 50917 1节点
Rack:/ 80104 9个节点
这是一个工作集群,我不能像stackoverflow上的类似问题所建议的那样清理所有数据。
更新。我决定在集群中的所有服务器上部署更新的拓扑脚本。在部署之后,我在每个节点(包括namenode)上重启了所有hadoop守护进程,但是dfsadmin -showTopology显示了旧方案。我需要做什么来更新集群拓扑?也许放弃某种缓存等。
答案 0 :(得分:0)
请检查并尝试消除此处提到的所有8种可能的根本原因/条件 - https://wiki.apache.org/hadoop/CouldOnlyBeReplicatedTo。只有排除了所有这些条件,如果您仍然无法自己解决这个问题,您应该看看以下方法。
注意:namenode格式化将破坏HDFS上的数据!!
已经记录了解决此问题的步骤here,here和here。因此,我只提供没有确切命令的高级步骤,因为可以在上述链接中找到这些步骤以避免重复。