2011-08-04 5 views
5

2 बुनियादी सवालों कि मुसीबत मुझे:हाइव/हडूप कैसे आश्वासन देता है कि प्रत्येक मैपर डेटा पर काम करता है जो इसके लिए स्थानीय है?

  • कैसे मुझे यकीन है कि 32 फ़ाइलें छत्ता में से प्रत्येक अपनी तालिका स्टोर करने के लिए बैठता है का उपयोग करता है अपनी अनूठी मशीन पर हो सकता है?
  • यदि ऐसा होता है, तो मैं कैसे सुनिश्चित कर सकता हूं कि यदि हाइव 32 मैपर बनाता है, तो उनमें से प्रत्येक स्थानीय डेटा पर काम करेगा? क्या हैडऑप/एचडीएफएस इस जादू की गारंटी देता है, या एक स्मार्ट एप्लिकेशन के रूप में हाइव करता है यह सुनिश्चित करता है कि यह होगा?

पृष्ठभूमि: मैं 32 मशीनों के एक छत्ते क्लस्टर है, और:

  • मेरे सभी तालिकाओं "CLUSTERED BY(MY_KEY) INTO 32 BUCKETS"
  • के साथ बनाया जाता रहा hive.enforce.bucketing = true;
  • का उपयोग मैं सत्यापित और वास्तव में हर तालिका संग्रहीत किया जाता है उपयोगकर्ता/हाइव/गोदाम में 32 फाइलों के रूप में
  • मैं 2
0 के एचडीएफएस प्रतिकृति कारक का उपयोग कर रहा हूं

धन्यवाद!

उत्तर

5
  1. डेटा प्लेसमेंट एचडीएफएस द्वारा निर्धारित किया जाता है। यह मशीनों पर बाइट्स को संतुलित करने की कोशिश करेगा। प्रत्येक फ़ाइल को प्रतिलिपि बनाने के कारण दो मशीनों पर होगा, जिसका अर्थ है कि आपके पास स्थानीय रूप से डेटा पढ़ने के लिए दो उम्मीदवार मशीनें हैं।
  2. एचडीएफएस जानता है कि प्रत्येक फाइल कहां संग्रहीत की जाती है, और हैडोप उसी जानकारी पर मैपर्स रखने के लिए इस जानकारी का उपयोग करता है जैसे डेटा संग्रहीत होता है। आप "डेटा स्थानीय" और "रैक स्थानीय" मानचित्र कार्य संख्याओं को देखने के लिए अपने काम के लिए काउंटर देख सकते हैं। यह हडोप की एक विशेषता है जिसे आपको चिंता करने की आवश्यकता नहीं है।
+0

डिफ़ॉल्ट रूप से एचडीएफएस ब्लॉक को तीन बार (समान नोड, और दो अन्य नोड्स, अधिमानतः किसी अन्य रैक में) प्रतिलिपि बनाता है। – cftarnas

+1

ठीक है, धन्यवाद, आपके उत्तर के प्रकाश में मैंने दोबारा जवाब दिया और एक नया प्रश्न पूछा जो मेरी समस्या का बेहतर वर्णन करता है: http://stackoverflow.com/questions/6953383/is-a-collocated-join-a-la-netezza- सैद्धांतिक रूप से -संभावित-इन-हाइव – ihadanny

+0

@ स्पीकग्रोनिम क्या आप इस हडोप प्रश्न में अंतर्दृष्टि प्रदान करने में सक्षम होंगे? [क्या मैपरेडस नौकरी को दूरस्थ डेटा तक पहुंचने से प्रतिबंधित करना संभव है?] (Http://stackoverflow.com/q/31789176/320399) – blong

1

जुड़ने के बिना, सामान्य हैडोप मानचित्र डेटा इलाके के लिए तंत्र को कम करता है (यह स्पाइक के उत्तर में वर्णित है)।
विशिष्ट रूप से हाइव के लिए मैं मानचित्र में शामिल होने का उल्लेख करता हूं। हाइव को बताना संभव है कि मानचित्र के लिए केवल तालिका में अधिकतम आकार क्या है। जब टेबल में से एक छोटा छोटा होता है तो हाइव वितरित कैश तंत्र का उपयोग करके इस तालिका को सभी नोड्स में दोहराएगा, और यह सुनिश्चित करेगा कि सभी शामिल प्रक्रिया डेटा के लिए स्थानीय रूप से होती है। प्रक्रिया का अच्छा स्पष्टीकरण है: http://www.facebook.com/note.php?note_id=470667928919

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