हैडोप क्या है?
कल्पना कीजिए निम्नलिखित challange: आप डेटा का एक बहुत है, और बहुत से मैं कम से कम टेराबाइट पर मतलब है। आप इस डेटा को बदलना चाहते हैं या कुछ सूचनाएं निकालना चाहते हैं और इसे एक प्रारूप में संसाधित करना चाहते हैं जो अनुक्रमित, संपीड़ित या "पच गया" है ताकि आप इसके साथ काम कर सकें।
हैडोप इस तरह के प्रसंस्करण नौकरी को समानांतर करने में सक्षम है और यहां सबसे अच्छा हिस्सा आता है, फाइलों के अनावश्यक भंडारण जैसी चीजों का ख्याल रखता है, क्लस्टर आदि पर विभिन्न मशीनों पर कार्य का वितरण करता है (हां, आपको क्लस्टर की आवश्यकता है , अन्यथा हैडोप ढांचे के प्रदर्शन हानि को भरने में सक्षम नहीं है)।
यदि आप हडोप पारिस्थितिकी तंत्र पर पहली बार देखते हैं तो आपको 3 बड़े शब्द मिलेंगे: एचडीएफएस (हैडोप फाइल सिस्टम), हैडोप स्वयं (मैपरेडस के साथ) और एचबीएएस ("डेटाबेस" कभी-कभी कॉलम स्टोर, जो बिल्कुल ठीक नहीं है)
एचडीएफएस हैडोप और एचबेस दोनों द्वारा उपयोग की जाने वाली फाइल सिस्टम है। यह आपके मेजबान पर नियमित फाइल सिस्टम के शीर्ष पर एक अतिरिक्त परत है। एचडीएफएस अपलोड की गई फ़ाइलों को टुकड़ों (आमतौर पर 64 एमबी) में स्लाइस करता है और उन्हें क्लस्टर में उपलब्ध रखता है और उनकी प्रतिकृति का ख्याल रखता है।
Hadoop निष्पादित करने के लिए एक कार्य हो जाता है है, यह HDFS, वांछित आउटपुट पथ, एक मैपर और एक प्रसारण क्लास पर इनपुट फ़ाइलों का पथ हो जाता है। मैपर और रेड्यूसर आमतौर पर एक जेएआर फ़ाइल में पारित जावा क्लास होता है। (लेकिन Hadoop Streaming के साथ आप अपने इच्छित कॉमंडलाइन टूल का उपयोग कर सकते हैं)। मैपर को प्रत्येक प्रविष्टि को संसाधित करने के लिए कहा जाता है (आमतौर पर लाइन द्वारा, उदाहरण के लिए: इनपुट लाइनों में लाइन में एक खराब एफ * शब्द "होता है, तो वापसी 1), आउटपुट को रेड्यूसर में पास किया जाता है, जो एकल आउटपुट को वांछित में विलीन करता है अन्य प्रारूप (उदाहरण: संख्याओं के अतिरिक्त)। यह "बुरा शब्द" काउंटर पाने का एक आसान तरीका है।
अच्छी बात: मैपिंग की गणना नोड पर की जाती है: आप लाइनों को रैखिक रूप से संसाधित करते हैं और आप नेटवर्क पर केवल अर्ध-पचाने वाले (आमतौर पर छोटे) डेटा को रेड्यूसर में ले जाते हैं।
और यदि नोड्स में से एक मर जाता है: एक ही डेटा वाला एक और है।
HBase फ़ाइलों के वितरित भंडारण का लाभ लेता है और उसके टेबल, क्लस्टर पर मात्रा में splitted संग्रहीत करता है। एचबीएएस, हैडोप के विपरीत, डेटा तक यादृच्छिक पहुंच देता है।
जैसा कि आप देखते हैं कि एचबीएएस और हाडोप आरडीएमबीएस के लिए काफी अलग हैं। इसके अलावा एचबीएएस में आरडीबीएमएस की कई अवधारणाओं की कमी है। ट्रिगर्स, तैयारस्टेटमेंट्स, विदेशी कुंजी इत्यादि के साथ मॉडलिंग डेटा ऐसा नहीं है, जिसे एचबीएएस को करने के लिए सोचा गया था (मुझे इस बारे में 100% यकीन नहीं है, इसलिए मुझे सही करें ;-))
क्या डैंजो हडोप के साथ एकीकृत हो सकता है?
जावा के लिए यह आसान है: Hadoop जावा में लिखा है और सभी एपीआई वहाँ का उपयोग करने के लिए तैयार हैं,।
पाइथन/Django के लिए मुझे नहीं पता (अभी तक), लेकिन मुझे यकीन है कि आप अंतिम उपाय के रूप में हैडोप स्ट्रीमिंग/जैथन के साथ कुछ कर सकते हैं। मुझे निम्न मिला है: Hadoopy और Python in Mappers and Reducers।
मैंने हडोप का उपयोग नहीं किया है। मैंने बस सामने वाले पृष्ठ को पढ़ा। मुझे लगता है कि यह सिर्फ एक फाइल सिस्टम समाधान है। यह एक आरडीबीएमएस को प्रतिस्थापित नहीं करेगा, और एक के साथ अच्छी तरह से काम नहीं कर सकता है। मुझे लगता है कि कई मशीनों में फैले लॉजिकल ड्राइव पर डेटाबेस डालने से गंभीर प्रदर्शन समस्याएं हो सकती हैं; यदि आप इसे आजमाने के लिए जा रहे हैं तो अधिक शोध की गारंटी देता है। – dokkaebi
हैडोप सादे बड़ी फाइलों पर काम करता है और इसमें कोई अनुक्रमण नहीं है। यदि आप डेटा को यादृच्छिक पहुंच चाहते हैं तो आपको HBase की आवश्यकता है। वे दोनों एचडीएफएस पर निर्माण करते हैं, जो क्लस्टर में बड़ी फाइलों का प्रबंधन करता है। मैं बाद में एक बेहतर स्पष्टीकरण दूंगा :-) – romedius
@romedius कृपया, मैं इसके लिए इंतजार नहीं कर सकता :)। अब तक मेरे द्वारा किए गए सभी रीडिंग्स मुझे और अधिक भ्रमित कर देते हैं। –