2012-01-15 16 views
21

नहीं मिला है मैंने वर्चुअलबॉक्स के भीतर एक वितरित हडोप पर्यावरण स्थापित किया है: 4 वर्चुअल उबंटू 11.10 इंस्टॉलेशन, एक मास्टर नोड के रूप में कार्य करता है, अन्य तीन गुलामों के रूप में कार्य करते हैं। एकल-नोड संस्करण को चलाने और चलाने के लिए मैंने this tutorial का पालन किया और फिर पूरी तरह से वितरित संस्करण में परिवर्तित कर दिया। जब मैं 11.04 चला रहा था तो यह ठीक काम कर रहा था; हालांकि, जब मैंने 11.10 तक अपग्रेड किया, तो यह टूट गया।हैडोप डेटानोड्स नाम नोड

INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 0 time(s). 
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 1 time(s). 
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 2 time(s). 

और इसी तरह: अब मेरे सारे दास 'लॉग निम्न त्रुटि संदेश, बार-बार विज्ञापन nauseum दिखा। मुझे इंटरनेट पर इस त्रुटि संदेश के अन्य उदाहरण मिल गए हैं (और StackOverflow) लेकिन किसी भी समाधान ने काम नहीं किया है (कोर-साइट.एक्सएमएल और मैपर्ड-साइट.एक्सएमएल प्रविष्टियों को मेजबाननाम के बजाय आईपी पता होने की कोशिश की; चौगुनी सभी गुलामों और मास्टर पर /etc/hosts की जांच की गई; मास्टर सभी गुलामों में एसएसएच पासवर्ड-कम कर सकते हैं)। मैंने प्रत्येक दास को एक एकल नोड सेटअप में वापस करने का भी प्रयास किया, और वे सभी इस मामले में ठीक काम करेंगे (उस नोट पर, मास्टर हमेशा एक डाटानोड और नामोनोड दोनों के रूप में ठीक काम करता है)।

एकमात्र लक्षण मैं पाया है कि एक का नेतृत्व देने के लिए प्रतीत होता है कि दास से किसी से, जब मैं एक telnet 192.168.1.10 54310 प्रयास करते हैं, मैं Connection refused मिलता है, सुझाव दे कुछ नियम अवरुद्ध एक्सेस (जो प्रभाव में चले गए हैं चाहिए होती है जब मैं 11.10 में अपग्रेड किया गया)।

मेरा /etc/hosts.allow हालांकि नहीं बदला है। मैंने ALL: 192.168.1. नियम की कोशिश की, लेकिन इसने व्यवहार को नहीं बदला।

ओह हाँ, और netstat मास्टर पर स्पष्ट रूप से टीसीपी पोर्ट 54310 और 54311 सुन रहे हैं।

किसी को भी दासदानों को नामनोड को पहचानने के लिए कोई सुझाव है?

संपादित करें # 1: (इस पोस्ट पर टिप्पणियों देखें) nmap के साथ चारों ओर कुछ poking करने में, मैं इस मुद्दे में सोच रहा हूँ मेरी /etc/hosts फाइलों में है। यह वही मास्टर वी एम के लिए सूचीबद्ध किया गया है:

127.0.0.1 localhost 
127.0.1.1 master 
192.168.1.10 master 
192.168.1.11 slave1 
192.168.1.12 slave2 
192.168.1.13 slave3 

प्रत्येक दास के लिए वी एम:

127.0.0.1 localhost 
127.0.1.1 slaveX 
192.168.1.10 master 
192.168.1.1X slaveX 

दुर्भाग्य से, मैं मैं क्या बदल यकीन नहीं है, लेकिन NameNode अब हमेशा अपवाद के साथ मर रहा है एक बंदरगाह बांधने की कोशिश कर रहा है "जो पहले से उपयोग में है" (127.0.1.1:524310)। मैं मेजबाननाम और आईपी पते के साथ स्पष्ट रूप से कुछ गलत कर रहा हूं, लेकिन मुझे सच में यकीन नहीं है कि यह क्या है। विचार?

+0

क्या आप फ़ायरवॉल चला रहे हैं? इसके अलावा, क्या मास्टर का आईपी अभी भी 1 9 2.168.1.10 है? बेवकूफ सवाल, लेकिन कभी-कभी लोग स्पष्ट सामान याद करते हैं। –

+0

'sudo apt-get install gufw' कमांड का उपयोग करके gufw इंस्टॉल करें और फ़ायरवॉल सेटिंग्स जांचें। [वर्चुअलबॉक्स] (http://www.virtualbox.org/manual/ch06.html) में [नेटवर्क कनेक्शन प्रकार] (http://www.virtualbox.org/manual/ch06.html) भी देखें। –

+0

'किसी के पास दास डैटनोड्स को नामनोड को पहचानने के लिए कोई सुझाव है?' - यह एक हडोप की तुलना में उबंटू क्वेरी से अधिक है? यह होना चाहिए कि गुलाम वीएम मास्टर वीएम से कैसे बात करें। –

उत्तर

36

मुझे यह मिला! /etc/hosts फ़ाइल (127.0.1.1 प्रविष्टि वाला एक) की दूसरी पंक्ति पर टिप्पणी करके, netstat स्थानीय नाम के बजाय 192.168.1.10 पते पर बाध्यकारी नाम नोड पोर्ट दिखाता है, और दास वीएम को यह पता चला। Ahhhhhhhh। रहस्य सुलझ गया! हर किसी की मदद के लिए धन्यवाद।

+0

धन्यवाद दोस्त, मैं यह कोशिश कर रहा हूं और यह कि घंटों के लिए ... एक ही समस्या थी। चीयर्स –

+0

आप कहने का मतलब है, स्थानीयहोस्ट localhost.localdomain के साथ 127.0.0.1 आईपी टिप्पणी ...? – Techiee

+0

नहीं, '127.0.1.1' प्रविष्टि। – Magsol

3

मुझे भी यही समस्या थी। @Magsol समाधान काम किया, लेकिन यह ध्यान दिया जाना चाहिए कि प्रविष्टि पर टिप्पणी करने की आवश्यकता है कि

127.0.1.1 masterxyz

मास्टर मशीन पर

, दास पर नहीं 127.0.1.1 है, हालांकि मुझे लगता है कि बहुत किया था । इसके अलावा आपको हडूप के लिए-all.sh और start-all.sh को रोकने की ज़रूरत है, शायद स्पष्ट है।

एक बार जब आप Hadoop nodemaster यहाँ जाँच को पुन: प्रारंभ कर दिया है: http://masterxyz:50030/jobtracker.jsp

और रोजगार के लिए उपलब्ध नोड्स की संख्या पर नजर डालें।

+1

धन्यवाद यह सुनिश्चित करने के लिए पेपरेल कि यह सिर्फ नामनोड है जो स्थानीयहोस्ट पर वापस लूपिंग कर रहा है और हमें बस/etc/hosts को संशोधित करने की आवश्यकता है (127.0.1.1 को हटाएं) और बस सभी हडूप प्रक्रियाओं को पुनरारंभ करें। – user1501382

5

यह समाधान मेरे लिए काम किया। यानी यह सुनिश्चित कर लें कि आपने जो नाम और mapred-site.xml कोर-site.xml में संपत्ति में इस्तेमाल किया:

<property> 
    <name>fs.default.name</name> 
    <value>hdfs://master:54310</value> 
    <final>true</final> 
</property> 

यानी मास्टर/etc/hosts में xyz.xyz.xyz.xyz मास्टर के रूप में दोनों पर परिभाषित किया गया है मास्टर और गुलाम नोड्स। फिर namenode को पुनः आरंभ और netstat -tuplen का उपयोग कर की जाँच करें और देखने के लिए कि यह "बाहरी" IP पते

tcp  0  xyz.xyz.xyz.xyz:54310   0.0.0.0:*     LISTEN  102  107203  - 

और नहीं स्थानीय IP 192.168.xy या 127.0.xy

1

इस प्रतिक्रिया हालांकि के लिए बाध्य है वह समाधान नहीं है जिसे लेखक ढूंढ रहा है, अन्य उपयोगकर्ता इस पृष्ठ पर अन्यथा सोच सकते हैं, इसलिए यदि आप अपने क्लस्टर को स्थापित करने के लिए एडब्ल्यूएस का उपयोग कर रहे हैं, तो संभव है कि एडब्ल्यूएस सुरक्षा समूह पृष्ठ में आईसीएमपी सुरक्षा नियम सक्षम नहीं किए गए हैं। निम्न को देखें: Pinging EC2 instances

उपरोक्त डेटा नोड्स से मास्टर नोड्स से कनेक्टिविटी समस्या हल हो गई। सुनिश्चित करें कि आप प्रत्येक उदाहरण के बीच पिंग कर सकते हैं।

0

मैं 2-नोड्स क्लस्टर चला रहा हूं।

192.168.0.24 मास्टर
192.168.0.26 worker2

मैं पुनः प्रयास किया जाएगा की एक ही समस्या का सामना करना पड़ रहा था सर्वर से कनेक्ट: मेरे worker2 मशीन लॉग में 54,310: मास्टर/192.168.0.24। लेकिन उपर्युक्त लोगों ने इस आदेश को चलाने में त्रुटियों का सामना किया - टेलनेट 1 9 2.168.0.24 54310. हालांकि, मेरे मामले में टेलनेट कमांड ने ठीक काम किया। तब मैं जाँच की मेरी/etc/hosts फाइल

मास्टर/etc/hosts
127.0.0.1 स्थानीय होस्ट
192.168.0.24 ubuntu
192.168.0.24 मास्टर
192.168.0.26 worker2

worker2/आदि/होस्ट करता है
127.0.0.1 स्थानीय होस्ट
192.168.0.26 ubuntu
192.168.0.24 मास्टर
192.168.0.26 worker2 012,

जब मैंने मास्टर पर http://localhost:50070 मारा, मैंने लाइव नोड्स को देखा: 2. लेकिन जब मैंने उस पर क्लिक किया, तो मैंने केवल एक डाटानोड देखा जो मास्टर का था। मैंने मास्टर और वर्कर 2 दोनों पर जेपीएस की जांच की। दोनों मशीनों पर डेटानोड प्रक्रिया चल रही थी।

फिर कई परीक्षण और त्रुटियों के बाद, मुझे एहसास हुआ कि मेरे मास्टर और वर्कर्स 2 मशीनों का एक ही होस्ट नाम "उबंटू" था। मैंने वर्कर्स 2 का होस्टनाम "उबंटू" से "वर्कर 2" में बदल दिया और वर्कर्स 2 मशीन से "उबंटू" प्रविष्टि को हटा दिया।

नोट: मेजबाननाम को बदलने के लिए/etc/hostname को सुडो के साथ संपादित करें।

बिंगो!यह काम किया :) मैं dfshealth यूआई पेज पर दो डेटानोड देखने में सक्षम था (locahost: 50070)

1

मुझे भी इसी तरह के मुद्दे का सामना करना पड़ा। (मैं उबंटू 17.0 का उपयोग कर रहा हूं) मैंने केवल /etc/hosts फ़ाइल में मास्टर और गुलामों की प्रविष्टियां रखीं। (दोनों स्वामी और गुलाम मशीनों में)

127.0.0.1 localhost 
192.168.201.101 master 
192.168.201.102 slave1 
192.168.201.103 slave2 

दूसरी बात, > sudo gedit /etc/hosts.allow और प्रविष्टि जोड़ने: ALL:192.168.201.

तीसरे, फ़ायरवॉल sudo ufw disable

अंत का उपयोग कर अक्षम, मैं से दोनों namenode और datanode फ़ोल्डरों नष्ट कर दिया क्लस्टर में सभी नोड्स, और

$HADOOP_HOME/bin> hdfs namenode -format -force 
$HADOOP_HOME/sbin> ./start-dfs.sh 
$HADOOP_HOME/sbin> ./start-yarn.sh 

जांचने के लिए कमांड लाइन से स्वास्थ्य रिपोर्ट (जिसे मैं अनुशंसा करता हूं)

$HADOOP_HOME/bin> hdfs dfsadmin -report 

और मुझे सही ढंग से काम करने वाले सभी नोड्स मिल गए।

संबंधित मुद्दे