2010-05-14 15 views
7

मैंने System.out.println() का उपयोग करके मूल्यों को प्रिंट करने का प्रयास किया, लेकिन वे कंसोल पर दिखाई नहीं देंगे। मैं मानचित्र में मूल्यों को मुद्रित कैसे करूं/हडोप का उपयोग करके डिबगिंग उद्देश्यों के लिए एप्लिकेशन को कम कर सकता हूं?डीबगिंग हैडऑप अनुप्रयोग

धन्यवाद, दीपक।

+1

यहाँ देखें https://stackoverflow.com/questions/23235343/debugging उस पर एक वीडियो यहाँ नहीं है -हाडोप-इन-एक्लिप्स – Mash

उत्तर

5

पेज @SquareCog अंक के लिए एक MapReduce काम एक बार आप इसे चला रहे हैं डिबगिंग के बारे में जानकारी का एक बहुत अच्छा स्रोत है बादल पर

इससे पहले कि आप उस बिंदु तक पहुंच जाएं, हालांकि आपको अपने मैपर और रेड्यूसर के लिए यूनिट परीक्षण लिखने पर विचार करना चाहिए, ताकि आप यह सत्यापित कर सकें कि मूल तर्क काम करता है। यदि आप अपने मानचित्र को ड्राइव करने और तर्क को कम करने के लिए इकाई परीक्षणों में रुचि रखते हैं तो mrunit देखें, जो जुनीट के समान तरीके से काम करता है।

+1

उम्म पृष्ठ मैंने एमआरयूएनट के बारे में बात करने की ओर इशारा किया :) लेकिन यकीन है। – SquareCog

+0

@ स्क्वायरकॉग - मेरा बुरा, मैंने अभी माना है कि मुझे पता था कि आप किस पेज से जुड़े थे। यह जानकारी का एक अच्छा स्रोत है: +) –

5

System.out.println और System.err.println का उपयोग करके मुद्रित लाइनें हडोप प्रति-नौकरी के आधार पर लिखने वाले लॉग पर जाती हैं। आप अलग-अलग कार्यों के माध्यम से क्लिक करके उन्हें वेब यूआई का उपयोग करके देख सकते हैं।

परीक्षण के बारे में सलाह के एक बहुत और डिबगिंग Hadoop नौकरियों के लिए क्लाउडेरा को इस ब्लॉग पोस्ट देखें: http://www.cloudera.com/blog/2009/07/advice-on-qa-testing-your-mapreduce-jobs/

3

मैं, जोड़ने के लिए है कि आप के रूप में अच्छी डीबगिंग के लिए CountersHadoop JavaDoc उपयोग कर सकते हैं करना चाहते हैं। जैसे यदि आप जांचना चाहते हैं, तो आपके प्रोग्राम में कितनी बार एक निश्चित लाइन पारित की जाती है।

0

System.out.println टर्मिनल पर निर्देशित नहीं है बल्कि लॉग फ़ाइलों को लिखा गया है। लॉग फाइल डिफ़ॉल्ट रूप से आपके हडोप निर्देशिका में स्थित हैं। तो आप टर्मिनल cat /hadoop-homedirectory/logs/userlogs/jobID/attemptID/stdout में टाइप कर सकते हैं आप वेब इंटरफ़ेस के माध्यम से भी पहुंच सकते हैं। आईपी ​​टाइप करें: 50070/लॉग/उपयोगकर्ता लॉग इन करें।

0

यदि आप MRUnit & स्वीकृति परीक्षण का उपयोग करते हैं तो मानचित्र की प्रक्रिया को मुद्रित करना बहुत आसान है। http://t.co/leExFVrf

उदाहरण के लिए कोड

HadoopApprovals.verifyMapReduce(new WordCountMapper(), 
          new WordCountReducer(), 0, "cat cat dog"); 

उत्पादन का उत्पादन होगा::

[cat cat dog] 
-> maps via WordCountMapper to -> 
(cat, 1) 
(cat, 1) 
(dog, 1) 

-> reduces via WordCountReducer to -> 
(cat, 2) 
(dog, 1) 
संबंधित मुद्दे