पहले, मैं प्राप्त करने के लिए org.apache.hadoop.mapred.JobClient#getJob(org.apache.hadoop.mapred.JobID)
का उपयोग कर रहा था। यह कॉल जॉब पूर्णता कॉलबैक विधि से बनाया गया था, हालांकि, मुझे लगता है कि एक समय मुद्दा है जहां नौकरी पहले से ही पूरी हो चुकी है तो उपर्युक्त getJob()
विधि इसे नहीं ढूंढ पाती है और शून्य लौटाती है। मैं पुष्टि कर सकता हूं कि नौकरी क्लस्टर यूआई से पूरी की गई थी।क्लस्टर से मौजूदा मैप्रिडस नौकरी प्राप्त करना (नौकरी चलाना या पूरा हो सकता है)
अलग RunningJob
रखते हुए, वहाँ एक रास्ता org.apache.hadoop.mapreduce.JobID
दिया एक mapred नौकरी के org.apache.hadoop.mapreduce.Job
वस्तु पाने के लिए भले ही काम अभी चल रहा है या पूरा हो गया है है?
मैं की तरह कुछ ऊपर कोड करने के लिए करने की कोशिश की:
Cluster cluster = jobClient.getClusterHandle(); Job job = cluster.getJob(JobID.forName(jobId)); log.info("Trying to get actual job with id {} , found {} on cluster {}", JobID.forName(jobId), job, cluster);
मैं सही jobId देख सकते हैं, और यह भी क्लस्टर वस्तु देख सकते हैं .. लेकिन cluster.getJob()
विधि अशक्त देता है, तो काम ही रिक्त है ।
क्या ऐसा कुछ है जिसे मैं यहां याद कर रहा हूं?
मुझे नौकरी चलाने की ज़रूरत नहीं है .. मुझे एक एपीआई चाहिए जो दोनों चल रहे और साथ ही पूर्ण नौकरियों को वापस कर सके .. –
यह getAllJobStatuses() के माध्यम से प्राप्त किया जा सकता है। मैंने संपादन किया जो पूर्ण कार्य से चल रही नौकरियों को अलग करता है। – Denis
मुझे पूर्ण नौकरियों के लिए श्री काउंटर की आवश्यकता है। –