2012-07-12 36 views
38

जब मेरा कोड एक अनचाहे अपवाद का सामना करता है तो मैं अपने सभी हडूप नौकरियों को स्वचालित रूप से मारना चाहता हूं। मैं सोच रहा हूं कि ऐसा करने का सबसे अच्छा अभ्यास क्या है?हडूप नौकरियों को कैसे मारना है

धन्यवाद

उत्तर

4

एक बिना क्रिया का अपवाद (यह मानते हुए कि यह एक विशेष डेटा नोड से त्रुटियों को पढ़ने के लिए विरोध के रूप में बुरा डेटा की तरह दोहराने योग्य है) होगा अंततः वैसे भी काम असफल।

आपको कभी-कभी एक विशेष नक्शा की अधिकतम संख्या को कॉन्फ़िगर या पहले पूरे काम में विफल रहता है असफल हो सकता है निम्नलिखित गुण के माध्यम से कार्य को कम कर सकते हैं:

  • mapred.map.max.attempts - प्रति नक्शा कार्य प्रयासों की अधिकतम संख्या। दूसरे शब्दों में, ढांचा इसे छोड़ने से पहले कई बार नक्शा कार्य निष्पादित करने का प्रयास करेगा।
  • mapred.reduce.max.attempts - एक ही जैसा कि ऊपर है, लेकिन के लिए कार्य

को कम आप पहली बार की विफलता, के लिए 1.

+0

लेकिन यह भी अगर एक नोड मर जाता है और अपने कार्यों को विफल रहते हैं, भले ही कोई अपवाद फेंक दिया है एक नौकरी विफल हो जाएगा , सही? हालांकि, मेरा मानना ​​है कि ओपी चाहता है कि यह वास्तव में निकटतम समाधान है। – vefthym

90

के आधार पर 4 की अपनी डिफ़ॉल्ट से यह मान सेट पर काम बाहर असफल करना चाहते हैं संस्करण, कार्य करें:

संस्करण < 2.3.0

एक Hadoop काम को मारने:

hadoop job -kill $jobId 

आप सभी jobId के कर की एक सूची प्राप्त कर सकते हैं:

yarn application -kill $ApplicationId 

:

hadoop job -list 

संस्करण> = 2.3.0

एक Hadoop काम को मारने आप सभी एप्लिकेशन आईडी की एक सूची प्राप्त कर सकते हैं कर रहा है:

yarn application -list 
+1

ने भी काम किया- नौकरी $ नौकरी –

2

बस प्रक्रिया आईडी को मजबूती से मार दें, हैडऑप नौकरी स्वचालित रूप से भी मारे जायेगी। इस आदेश का उपयोग करें:

kill -9 <process_id> 
folloing कमान की

eg: process ID no: 4040 namenode

[email protected]:~$ kill -9 4040 
16

उपयोग मूल्यह्रास हुआ है

hadoop job -list 
hadoop job -kill $jobId 

mapred job -list 
mapred job -kill $jobId 
+0

काम नहीं कर रहा है और निम्नलिखित त्रुटि में परिणाम: थ्रेड में अपवाद "मुख्य" java.lang.IllegalArgumentException: JobId स्ट्रिंग: application_1470941878165_0001 ठीक तरह से गठित नहीं है – tribbloid

9

भागो list का उपयोग कर सभी नौकरियों को दिखाने के लिए विचार करते हैं, तो का उपयोग उपयुक्त सी में jobID/applicationID ommand।

को मार डालो mapred नौकरियों:

mapred job -list 
mapred job -kill <jobId> 

को मार डालो यार्न नौकरियों:

yarn application -list 
yarn application -kill <ApplicationId>