Amazon ec2 向伪分布式Hadoop节点添加新卷时出现静默失败

Amazon ec2 向伪分布式Hadoop节点添加新卷时出现静默失败,amazon-ec2,hadoop,hive,Amazon Ec2,Hadoop,Hive,我试图通过在hdfs site.xml中添加dfs.name.dir中的卷位置,将一个新卷添加到Hadoop伪分布式节点,我可以在这个位置看到锁文件-但是尽管我可以尝试,但当我加载文件(使用配置单元)时,这些位置似乎很少被使用(即使出现了锁文件和一些子文件夹..因此Hadoop显然可以访问它们)。当主卷几乎耗尽空间时,我得到以下异常: Failed with exception java.io.IOException: File /tmp/hive-ubuntu/hive_2011-02-24_

我试图通过在
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 im使用EC2。

在向数据节点添加新磁盘/容量时,Hadoop不能保证磁盘将公平地进行负载平衡(例如:它不会在具有更多可用空间的驱动器上放置更多块)。我解决这一问题的最佳方法是增加复制因子(例如:从2增加到3)

hadoop fs-setrep3-R/
查看名称节点上的“未复制的块”报告。当该报告达到0时,将复制系数降低(例如:从3降低到2)。这将从系统中随机删除副本,这将平衡本地节点

hadoop fs -setrep 2 -R /<path>
hadoop fs-setrep2-R/
它不会达到100%的平衡,但它的状态应该比以前好得多。Hadoop wiki在某种程度上对这一点进行了介绍。如果您运行的是伪分布式,并且没有其他数据节点,那么平衡器脚本对您没有帮助


根据以下内容,您可以做几件事:

  • 手动将HDFS中的文件复制到新名称,删除旧文件,然后将新文件重命名为原来的名称
  • 暂时增加复制系数,在节点之间的块平衡后将其设置回原来的值
  • 删除完整节点,等待其块复制到其他节点,然后将其恢复。这并没有真正的帮助,因为当您将完整节点恢复联机时,它仍然是完整的
  • 在head节点上运行重新平衡器脚本
  • 我会先跑4,然后跑2

    hadoop fs -setrep 2 -R /<path>