पर भ्रम मैं नौकरी ट्रैकर से कुछ जानकारी एकत्र करने का प्रयास कर रहा हूं। शुरुआत के लिए मैं इस तरह के कार्य आईडी या नौकरी नाम आदि लेकिन पहले से ही अटक के रूप में चल नौकरियों जानकारी प्राप्त करने के साथ शुरू करना चाहते हैं, यहाँ मैं क्या मिल गया है है (वर्तमान में चल रहे कार्यों के लिए काम आईडी बाहर प्रिंट):हैडऑप जॉब ट्रैकर एपीआई
public static void main(String[] args) throws IOException {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "zk1.myhost,zk2.myhost,zk3.myhost");
conf.set("hbase.zookeeper.property.clientPort", "2181");
InetSocketAddress jobtracker = new InetSocketAddress("jobtracker.mapredhost.myhost", 8021);
JobClient jobClient = new JobClient(jobtracker, conf);
JobStatus[] jobs = jobClient.jobsToComplete();
for (int i = 0; i < jobs.length; i++) {
JobStatus js = jobs[i];
if (js.getRunState() == JobStatus.RUNNING) {
JobID jobId = js.getJobID();
System.out.println(jobId);
}
}
}
जॉब आईडी प्रदर्शित करने का प्रयास करते समय आकर्षण के रूप में काम करता है, लेकिन अब मैं नौकरी का नाम भी प्रदर्शित करना चाहता हूं। मैं इस अपवाद
System.out.println(jobClient.getJob(jobId).getJobName());
:
Exception in thread "main" java.lang.NullPointerException
at org.apache.hadoop.mapred.JobClient$NetworkedJob.<init>(JobClient.java:226)
at org.apache.hadoop.mapred.JobClient.getJob(JobClient.java:1080)
at org.apache.test.JobTracker.main(JobTracker.java:28)
jobClient
null
नहीं है तो मैं मुद्रण कार्य आईडी के बाद इस लाइन को जोड़ा। मुझे यह पता है क्योंकि मैंने कथन की जांच के साथ कोशिश की है, लेकिन यह jobClient.getJob(jobId)
null
है। मुझसे यहां क्या गलत हो रहा है?
,
पहले एक बार से आप काम चल रहा है jobClient से RunningJob
मिलता तो इसे नाम http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/RunningJob.html#getJobName()
किसी को भी इस से पहले की तरह कुछ किया? मैं इस जानकारी को प्राप्त करने के लिए jsoup का उपयोग कर सकता हूं, लेकिन मुझे लगता है कि यह जानकारी प्राप्त करने का यह बेहतर तरीका है।
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>0.23.1-mr1-cdh4.0.0b2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.23.1-mr1-cdh4.0.0b2</version>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.92.1-cdh4b2-SNAPSHOT</version>
</dependency>
बाउंटी अद्यतन:
यहाँ मेरी आयात कर रहे हैं:
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobID;
import org.apache.hadoop.mapred.JobStatus;
यहाँ System.out.println(jobId)
के उत्पादन में है:
प्रश्न अद्यतन यहाँ मेरी Hadoop/HBase निर्भरता है
job_201207031810_1603
वर्तमान में केवल एक ही काम चल रहा है।
क्या संस्करण का उपयोग कर रहे हैं? 0.21 अपने डॉक्टर लिंक में पसंद है? –
हाय थॉमस अच्छा अवलोकन है मैं अपना प्रश्न –
अपडेट करूँगा तो आपका क्लस्टर आपकी निर्भरताओं की तरह सीडीएच 4 से 0.23.1 पर चलता है? –