2012-10-07 21 views
6

जब मैं "हैडोप जॉब -स्टैटस xxx" चलाता हूं, तो निम्नलिखित कुछ सूची आउटपुट करें।रैक-स्थानीय मानचित्र कार्यों और डेटा-स्थानीय मानचित्र कार्यों के बीच क्या अंतर है?

Rack-local map tasks=124 
Data-local map tasks=6 

रैक-स्थानीय मानचित्र कार्यों और डेटा-स्थानीय मानचित्र कार्यों के बीच क्या अंतर है?

+3

थॉमा का जवाब सही है, लेकिन मैं रैक-स्थानीय कार्यों बनाम डेटा-लोकल की संख्या के बारे में चिंतित हूं। आप उससे अधिक डेटा-स्थानीय कार्यों को चाहते हैं। बड़े क्लस्टर पर मैं आमतौर पर ~ 95% डेटा स्थानीय स्थानीय देखता हूं। तुम्हारे साथ यह विपरीत है। –

+0

@DonaldMiner हाँ, यह अच्छा नहीं है। हालांकि, यह इस बात पर निर्भर करता है कि उस क्लस्टर पर कितनी नौकरियां चल रही हैं। कभी-कभी आपको नौकरी के प्रदर्शन को त्यागने की ज़रूरत होती है, ताकि दूसरा तेज़ हो सके। –

+0

@ थॉमसजंगब्लूट वह संख्या अभी भी सही नहीं है। 3x प्रतिकृति के साथ बड़े क्लस्टर पर, पूर्ण स्लॉट क्षमता के साथ भी, मैंने यह संख्या बहुत अधिक देखी है। –

उत्तर

9

डेटा-स्थानीय कार्य में, कुछ भी कॉपी करने की आवश्यकता नहीं है। ऐसा इसलिए है क्योंकि ब्लॉक भौतिक रूप से गणना के समान सर्वर पर है।

अगला स्तर रैक-स्थानीय कार्य है, यहां डेटा की प्रतिलिपि बनाई जानी चाहिए, क्योंकि वांछित ब्लॉक की कोई स्थानीय प्रति उपलब्ध नहीं है। ध्यान दें कि रैक-लोकल केवल नेटवर्क के रैक-स्थानीय स्विचिंग के भीतर कॉपी करता है।

सबसे खराब मामला भी है, जहां डेटा स्थानीय उपलब्ध नहीं है, न ही उसी रैक पर। तो यह मेजबानों को दो स्विचों पर कॉपी किया जाना चाहिए जहां गणना चलती है। मुझे नहीं पता कि इसके लिए कोई काउंटर है, लेकिन मूल रूप से यह #all tasks - #data-local tasks - #rack-local tasks होना चाहिए।

1

मैं इंगित करता हूं कि एक ही रैक के भीतर कंप्यूटर के बीच गीगाबिट (या तेज़) नेटवर्क प्रदान करना बहुत सस्ता है कि बड़ी संख्या में कंप्यूटरों के लिए।
मूल कारण यह तथ्य है कि ईथरनेट स्विच स्केलेबल नहीं हैं और हमारे पास उचित मूल्य में सैकड़ों बंदरगाहों के लिए ऐसा स्विच नहीं हो सकता है।
क्योंकि हडूप कम से कम उसी रैक में कार्यों को चलाने की कोशिश करता है, अगर नोड पर ऐसा नहीं किया जा सकता है जहां डेटा संग्रहीत किया जाता है।

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