2013-01-07 30 views
6

में लॉगिंग कार्यक्षमता को नियंत्रित करना हैडूप में लॉगिंग कार्यक्षमता को कैसे नियंत्रित करें? हैडोप लॉग को नियंत्रित करने के लिए डिफ़ॉल्ट log4j.properties फ़ाइल का उपयोग करता है। मेरा उपयोग मामला मेरी कक्षाओं द्वारा उत्पन्न लॉग को नियंत्रित करना है। JobTracker, TaskTracker, NameNode और DataNode डेमॉन प्रक्रियाओं की तरहहैडऑप

Hadoop डेमॉन उनके संबंधित मेजबान नोड के hadoop-conf-directory से log4j.properties फ़ाइल का उपयोग करें। रूट लॉगर "INFO, console" पर सेट किया गया है जो कंसोल पर INFO पर सभी संदेश लॉग करता है।

मैं ओज़ी वर्कफ़्लो का उपयोग करके हडॉप नौकरियां ट्रिगर करता हूं। मैंने -Dlog4j.configuration=path/to/log4j.properties सिस्टम प्रॉपर्टी सेट करके अपनी कस्टम log4j.properties फ़ाइल को नौकरी में पास करने का प्रयास किया, लेकिन यह काम नहीं कर रहा है। फिर भी, यह डिफ़ॉल्ट से log4j गुण लेता है।

मुझे डिफ़ॉल्ट log4j.properties फ़ाइल को स्पर्श नहीं करना चाहिए।

मैं ओज़ी-वी 3.1.3-इनक्यूबेटिंग, हैडोप-वी0.20 और क्लौडेरा सीडीएच-वी 4.0.1 का उपयोग कर रहा हूं।

मैं डिफ़ॉल्ट log4j.properties फ़ाइल को ओवरराइड कैसे कर सकता हूं ?? या मैं अपने वर्गों के लिए लॉग कैसे नियंत्रित कर सकता हूं ??

उत्तर

10

आप अपनी खुद की Log4J फ़ाइल के साथ क्या हासिल करने की कोशिश कर रहे हैं? मैं पूछता हूं क्योंकि लॉग आपके क्लस्टर में वितरित किए जाते हैं, लेकिन उन्हें रूट लॉगर पर लॉग इन करके, आप उन्हें नौकरी ट्रैकर (नौकरी कार्य प्रयासों पर ड्रिल करके) देख सकते हैं।

यदि आप रोलिंग फ़ाइलों का उपयोग करना चाहते हैं तो आपको बाद में उन फ़ाइलों को पुनर्प्राप्त करने में एक कठिन समय है (फिर से क्योंकि वे आपके कार्य नोड्स में वितरित किए जाते हैं)।

आप गतिशील रूप से लॉग स्तर सेट करना चाहते हैं, यह काफी सरल होना चाहिए:

public static Logger log = Logger.getLogger(MyMapper.class); 

@Override 
protected void setup(Context context) throws IOException, 
     InterruptedException { 
    log.setLevel(Level.WARN); 
} 

आप आप ही appenders जोड़ना चाहते हैं, तो आप इस प्रोग्राम के रूप में ऐसा करने में सक्षम होना चाहिए (इस SO Question देखें), ऊपर के रूप में सेटअप विधि में।

+0

आपके लिए धन्यवाद क्रिस क्रिस :-) इससे मुझे बहुत मदद मिलती है। – Suresh

+0

हाँ, यह सहायक है .. धन्यवाद –