使用Rumen从多节点集群的历史文件夹生成作业和拓扑跟踪

时间:2011-12-16 09:45:56

标签: hadoop

我有一个单节点集群,我从中获取日志并提供输入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" : [ ] 
    }       

任何人都可以帮助我吗?

谢谢, 阿伦

1 个答案:

答案 0 :(得分:0)

发生此错误是因为在输入目录中找不到任何预期的输入文件。 输入目录必须包含作业文件,例如:job_201205192032_0006_conf.xml。这些文件存储在logs / history文件夹中,但是在根据作业执行和执行日期生成的某些目录下