我有一个单节点集群,我从中获取日志并提供输入TraceBuilder并且它可以工作。 我已将5个节点集群分组到默认机架下并获取日志。这里正确生成作业和拓扑跟踪。
我已经设置了5个节点集群,每个集群都映射到不同的机架。
我在Eclipse Helios上设置了hadoop-0.20.2。所以,我使用
运行Tracebuilder主类:org.apache.hadoop.tools.rumen.TraceBuilder 我在集群上运行了一些作业,并使用主节点的/ usr / local / hadoop / logs / history文件夹的副本作为TraceBuilder的输入。 参数:/home/arun/job.json /home/arun/topology.json / home / ubuntu / Documents / testlog
但是我得到了
11/12/16 12:02:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
11/12/16 12:02:38 WARN rumen.TraceBuilder: TraceBuilder got an error while processing the [possibly virtual] file master_1324011575958_job_201112161029_0001_hduser_word+count within Path file:/home/ubuntu/Documents/testlog/master_1324011575958_job_201112161029_0001_hduser_word+count
java.lang.NullPointerException
at org.apache.hadoop.tools.rumen.JobBuilder.processTaskAttemptFinishedEvent(JobBuilder.java:492)
at org.apache.hadoop.tools.rumen.JobBuilder.process(JobBuilder.java:149)
at org.apache.hadoop.tools.rumen.TraceBuilder.processJobHistory(TraceBuilder.java:310)
at org.apache.hadoop.tools.rumen.TraceBuilder.run(TraceBuilder.java:264)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:69)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:83)
at org.apache.hadoop.tools.rumen.TraceBuilder.main(TraceBuilder.java:142)
.....................
它生成作业跟踪json文件,但主机名和位置等字段在其中为“null”,拓扑跟踪json文件没有5个节点的信息,如下所示:
{
"name" : "<root>",
"children" : [ ]
}
任何人都可以帮助我吗?
谢谢, 阿伦
答案 0 :(得分:0)
发生此错误是因为在输入目录中找不到任何预期的输入文件。 输入目录必须包含作业文件,例如:job_201205192032_0006_conf.xml。这些文件存储在logs / history文件夹中,但是在根据作业执行和执行日期生成的某些目录下