hadoop在put数据时,出现org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException 分析
org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException: Not replicated yet:/nnThroughputBenchmark/addblock/AddblockBenchDir0/AddblockBench0
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1350)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:400)
at org.apache.hadoop.hdfs.NNThroughputBenchmark.addBlocks(NNThroughputBenchmark.java:1228)
at org.apache.hadoop.hdfs.NNThroughputBenchmark.testAddBlcok(NNThroughputBenchmark.java:1216)
at org.apache.hadoop.hdfs.NNThroughputBenchmark.main(NNThroughputBenchmark.java:1247)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:141)
at org.apache.hadoop.test.AllTestDriver.main(AllTestDriver.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:165)
at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)
NotReplicatedYetException这个异常是在写文件过程中新分配一个数据块getAdditionalBlock()时调用checkFileProgress(pendingFile, false)检查文件的倒数第二个数据块的副本数是否达到系统安全副本数要求[默认3个],不达到则抛NotReplicatedYetException。
检查$HADOOP_HOME/etc/hadoop/worker文件中是否至少有三个节点,如果不够,请添加三个节点及以上。
更多推荐
所有评论(0)