我正在尝试通过在dfs.name.dir中的hdfs-site.xml中添加卷的位置来向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中的文件复制到新名称,删除旧文件,然后将新文件重命名为其原始名称。
  • 暂时增加复制因子,一旦块在节点之间达到平衡,则将其重新设置。
  • 删除完整的节点,等待其块复制到其他节点,然后将其备份。这并没有真正的帮助,因为当您将其重新联机时,您的完整节点仍已满。
  • 在头节点上运行重新平衡器脚本。

  • 我会先尝试运行#4,然后再运行#2。

    08-25 03:44