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在某种程度上对这一点进行了介绍。如果您运行的是伪分布式,并且没有其他数据节点,那么平衡器脚本对您没有帮助
根据以下内容,您可以做几件事:
hadoop fs -setrep 2 -R /<path>