2011-12-29 22 views
-1

我正在嘗試收集各種有效的tasttrackers的指標,但它會引發異常如何收集hadoop tasktracker狀態?

不知道爲什麼?

for(String s: jc.getClusterStatus(true).getActiveTrackerNames()){ 
      System.out.println("tt "+s); 
      System.out.println(""+ new org.apache.hadoop.mapreduce.server.jobtracker.TaskTracker(s).getAvailableSlots(TaskType.MAP)); } 

輸出

提示符$ /installs/hadoop-0.20.2//bin/hadoop罐子的tools.jar tools.MetaInfo

TT tracker_10.0.0.6:本地主機/ 127.0.0.1 :53256 java.lang.NullPointerException at org.apache.hadoop.mapreduce.server.jobtracker.TaskTracker.getAvailableSlots(TaskTracker.java:90)at tools.MetaInfo。(MetaInfo.java:44)at tools.MetaInfo.main(MetaInfo .java:51)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegat ingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.hadoop.util.RunJar.main(RunJar.java:186)jabir:CompareHdfs jabir.ahmed $

不知道爲什麼它不顯示可用插槽,但顯示錯誤

回答

1

我試圖收集活躍tasttrackers各種指標,但它拋出一個異常

new TaskTracker()將創建一個新的TaskTracker這你不想這樣做。

查看Hadoop框架中各種內置計數器的JobCounterTaskCounter類。這tutorial將有助於檢索計數器。除了內置的計數器外,custom counters也可以構建用於與Hadoop框架相關的任何其他數據的任何應用程序特定數據。

此外,將行分成多行。使用().b().c().d().e(),很難知道NPE何時來。