我试图通过在 hdfs-site.xml
中的 dfs.name.dir
中添加卷的位置来向 Hadoop 伪分布式节点添加新卷>,我可以在这个位置看到锁定文件 - 但尽我所能尝试,似乎当我加载文件(使用配置单元)时,这些位置几乎没有被使用(即使锁定文件和一些子文件夹出现..所以 Hadoop 显然可以访问它们)。当主卷即将用完空间时,我会收到以下异常:
Failed with exception java.io.IOException: File /tmp/hive-ubuntu/hive_2011-02-24_15-39-15_997_1889807000233475717/-ext-10000/test.csv could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1417)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:643)
关于如何向 Hadoop 添加新卷的任何指示? FWIW 我正在使用 EC2。
最佳答案
根据 FAQ,您可以做几件事:
- 手动将 HDFS 中的文件复制到新名称,删除旧文件,然后将新文件重命名为原来的名称。
- 暂时增加复制因子,一旦 block 在节点之间达到平衡,就将其调回。
- 删除完整节点,等待其 block 复制到其他节点,然后将其重新启动。这并没有多大帮助,因为当您将其重新联机时,您的完整节点仍然已满。
- 在头节点上运行重新平衡器脚本。
我会尝试先运行#4,然后运行#2。
关于amazon-ec2 - 将新卷添加到伪分布式 Hadoop 节点无提示失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107567/