2014-05-01 7 views
6

के बिना एचडीएफएस क्लस्टर को कैसे चलाएं मैं स्पार्क नौकरियों के विकास को कम करने और स्थानीय एकीकृत परीक्षण की सुविधा के लिए स्थानीय एचडीएफएस देव पर्यावरण (वास्तव में हैडोप + मेसोस + जेके + कफका) का निर्माण कर रहा हूं। अन्य सभी घटक ठीक काम कर रहे हैं लेकिन मुझे एचडीएफएस के साथ समस्याएं हैं। डाटा नोड नाम नोड के लिए कनेक्ट करने के लिए कोशिश करता है, मैं एक DisallowedDataNodeException मिलती है:डीएनएस

org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode 

अधिकांश एक ही मुद्दे से संबंधित सवालों के नाम नोड पर डेटा नोड के नाम समाधान करने के लिए नीचे उबाल या तो etc/hosts फ़ाइलों के माध्यम से स्थिर या डीएनएस का उपयोग कर। स्टेटिक रिज़ॉल्यूशन डॉकर के साथ एक विकल्प नहीं है, क्योंकि जब डेटा नोड कंटेनर बनाया जाता है तो मुझे डेटा नोड्स नहीं पता है। मैं एक अतिरिक्त DNS सेवा बनाने और बनाए रखने से बचना चाहता हूं। आदर्श रूप से, मैं डॉकर की --link सुविधा का उपयोग करके सब कुछ तार करना चाहता हूं।

क्या एचडीएफएस को इस तरह से कॉन्फ़िगर करने का कोई तरीका है कि यह केवल काम करने के लिए आईपी पते का उपयोग करता है?

मैं इस संपत्ति मिल गया और गलत पर सेट है, लेकिन यह चाल नहीं किया:

dfs.namenode.datanode.registration.ip-hostname-check (डिफ़ॉल्ट: सच)

वहाँ एक बहु नोड स्थानीय HDFS क्लस्टर काम करने के लिए एक रास्ता है केवल आईपी पते का उपयोग कर और DNS का उपयोग किए बिना?

उत्तर

4

मैं एक अलग मेजबान फ़ाइल [1] का उपयोग करने के लिए अपनी डॉकर छवि को पुन: कॉन्फ़िगर करना चाहता हूं। विशेष रूप से:

  1. Dockerfile (रों) में, स्विच-ए-रू करना [1]
  2. , मास्टर नोड
  3. डेटा नोड्स लाओ लाओ जुड़ा हुआ
  4. शुरू करने से पहले datanode,/etc/hosts से अधिक नए स्थान पर/tmp/मेजबान फ़ाइल

आशा यह आपके लिए काम करता है नकल

  • नया मेजबान को मास्टर नोड का नाम और मास्टर नोड आईपी संलग्न!

    [1] https://github.com/dotcloud/docker/issues/2267#issuecomment-40364340

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