इस ट्यूटोरियल में, आप सीखेंगे-
- हाइव क्या है?
- हाइव आर्किटेक्चर
- हाइव के विभिन्न मोड
- Hive Server2 (HS2) क्या है?
हाइव क्या है?
Hive एक ETL और डेटा वेयरहाउसिंग टूल है, जो Hadoop Distributed File System (HDFS) के शीर्ष पर विकसित किया गया है। हाइव जैसे ऑपरेशन करने के लिए काम आसान बनाता है
- डेटा एनकैप्सुलेशन
- तदर्थ प्रश्न
- विशाल डेटासेट का विश्लेषण
हाइव की महत्वपूर्ण विशेषताएं
- हाइव में, टेबल और डेटाबेस पहले बनाए जाते हैं और फिर डेटा को इन टेबल में लोड किया जाता है।
- प्रबंधन और केवल संरचित डेटा को क्वेरी करने के लिए डिज़ाइन किए गए डेटा वेयरहाउस के रूप में हाइव करें जो तालिकाओं में संग्रहीत हैं।
- संरचित डेटा के साथ काम करते समय, मैप रिड्यूस में यूडीएफ जैसी अनुकूलन और प्रयोज्य विशेषताएं नहीं होती हैं लेकिन हाइव फ्रेमवर्क करता है। क्वेरी ऑप्टिमाइज़ेशन प्रदर्शन के संदर्भ में क्वेरी निष्पादन के प्रभावी तरीके को संदर्भित करता है।
- हाइव की SQL- प्रेरित भाषा उपयोगकर्ता को मैप कम करने की प्रोग्रामिंग की जटिलता से अलग करती है। यह संबंधपरक डेटाबेस की दुनिया से परिचित अवधारणाओं का पुन: उपयोग करता है, जैसे कि तालिकाओं, पंक्तियों, स्तंभों और स्कीमा, आदि को सीखने में आसानी के लिए।
- Hadoop की प्रोग्रामिंग फ्लैट फ़ाइलों पर काम करती है। तो, हाइव कुछ प्रश्नों पर प्रदर्शन को बेहतर बनाने के लिए "विभाजन" डेटा के लिए निर्देशिका संरचनाओं का उपयोग कर सकता है।
- स्कीमा जानकारी संग्रहीत करने के लिए हाइव यानी मेटास्टोर का एक नया और महत्वपूर्ण घटक। यह मेटास्टोर आमतौर पर एक रिलेशनल डेटाबेस में रहता है। हम जैसे तरीकों का उपयोग करके हाइव के साथ बातचीत कर सकते हैं
- वेब जीयूआई
- जावा डेटाबेस कनेक्टिविटी (JDBC) इंटरफ़ेस
- अधिकांश इंटरैक्शन एक कमांड लाइन इंटरफ़ेस (सीएलआई) पर जगह लेते हैं। हाइव, हाइव क्वेरी भाषा (HQL) का उपयोग करके हाइव प्रश्नों को लिखने के लिए एक CLI प्रदान करता है
- आमतौर पर, HQL सिंटैक्स SQL सिंटैक्स के समान होता है, जिससे अधिकांश डेटा विश्लेषक परिचित होते हैं। नीचे दी गई नमूना क्वेरी उल्लिखित तालिका नाम में मौजूद सभी रिकॉर्ड को प्रदर्शित करती है।
- नमूना प्रश्न :
से * चुनें
- नमूना प्रश्न :
- हाइव चार फ़ाइल स्वरूपों का समर्थन करता है जो TEXTFILE, SEQUENCEFILE, ORC और RCFILE (रिकॉर्ड स्तंभ फ़ाइल) हैं।
- एकल उपयोगकर्ता मेटाडेटा संग्रहण के लिए, हाइव डर्बी डेटाबेस का उपयोग करता है और कई उपयोगकर्ता मेटाडेटा या साझा मेटाडेटा केस के लिए हाइव MYSQL का उपयोग करता है।
MySQL को डेटाबेस के रूप में स्थापित करने और मेटा-डेटा जानकारी की जाँच करने के लिए ट्यूटोरियल "HIVE और MYSQL की स्थापना और विन्यास"
हाइव के बारे में कुछ मुख्य बातें:
- HQL और SQL के बीच मुख्य अंतर यह है कि Hive क्वेरी पारंपरिक डेटाबेस के बजाय Hadoop के बुनियादी ढांचे पर निष्पादित होती है।
- हाइव क्वेरी निष्पादन नौकरियों को स्वचालित रूप से उत्पन्न नक्शे को कम करने की श्रृंखला की तरह होने जा रहा है।
- जब ग्राहक क्वेरी को निष्पादित करता है तो हाइव डेटा के आसान पुनर्प्राप्ति के लिए विभाजन और बकेट अवधारणाओं का समर्थन करता है।
- हाइव डेटा क्लींजिंग, फ़िल्टरिंग आदि के लिए कस्टम विशिष्ट यूडीएफ (यूजर डिफाइंड फंक्शंस) का समर्थन करता है, प्रोग्रामर की आवश्यकताओं के अनुसार कोई भी हाइव यूडीएफ को परिभाषित कर सकता है।
छत्ता बनाम संबंधपरक डेटाबेस: -
हाइव का उपयोग करके, हम कुछ अजीब कार्यक्षमता का प्रदर्शन कर सकते हैं जो कि रिलेशनल डेटाबेस में हासिल नहीं किया गया है। पेटा-बाइट्स में डेटा की एक बड़ी मात्रा के लिए, इसे क्वेरी करना और सेकंड में परिणाम प्राप्त करना महत्वपूर्ण है। और हाइव इसे काफी कुशलता से करता है, यह प्रश्नों को तेजी से संसाधित करता है और दूसरे समय में परिणाम उत्पन्न करता है।
आइए अब देखते हैं कि हाइव कितना तेज है।
हाइव और संबंधपरक डेटाबेस के बीच कुछ प्रमुख अंतर निम्नलिखित हैं;
संबंधपरक डेटाबेस " स्कीम ऑन आरईएडी और स्कीमा ऑन राइट " हैं। पहले एक तालिका बनाना और फिर विशेष तालिका में डेटा डालना। संबंधपरक डेटाबेस तालिकाओं पर, सम्मिलन, अद्यतन और संशोधन जैसे कार्य किए जा सकते हैं।
हाइव " केवल READ पर स्कीमा " है। इसलिए, अद्यतन, संशोधन, आदि जैसे कार्य इसके साथ काम नहीं करते हैं। क्योंकि एक विशिष्ट क्लस्टर में हाइव क्वेरी कई डेटा नोड्स पर चलती है। इसलिए कई नोड्स में डेटा को अपडेट और संशोधित करना संभव नहीं है। (0.13 से नीचे के हाइव वर्जन)
इसके अलावा, हाइव " READ कई WRITE वन्स " पैटर्न का समर्थन करता है । जिसका मतलब है कि टेबल डालने के बाद हम टेबल को नवीनतम हाइव संस्करणों में अपडेट कर सकते हैं।
नोट : हालाँकि हाइव का नया संस्करण अद्यतन सुविधाओं के साथ आता है। हाइव संस्करण (हाइव 0.14) नई सुविधाओं के रूप में अपडेट और डिलीट विकल्पों के साथ आता है
हाइव आर्किटेक्चर
उपरोक्त स्क्रीनशॉट अपाचे हाइव वास्तुकला के बारे में विस्तार से बताता है
हाइव मुख्यतः 3 मुख्य भागों से मिलकर बनता है
- हाइव के ग्राहक
- हाइव सेवाएं
- छत्ता संग्रहण और कम्प्यूटिंग
छत्ता ग्राहक:
हाइव विभिन्न प्रकार के अनुप्रयोगों के साथ संचार के लिए विभिन्न ड्राइवर प्रदान करता है। थ्रिफ़्ट आधारित अनुप्रयोगों के लिए, यह संचार के लिए थ्रिफ़्ट क्लाइंट प्रदान करेगा।
जावा संबंधित अनुप्रयोगों के लिए, यह JDBC ड्राइवर प्रदान करता है। किसी अन्य प्रकार के अनुप्रयोगों के अलावा ODBC ड्राइवर प्रदान किए गए। ये ग्राहक और ड्राइवर फिर से हाइव सेवाओं में हाइव सर्वर के साथ संचार करते हैं।
छत्ता सेवाएं:
हाइव के साथ क्लाइंट इंटरैक्शन हाइव सर्विसेज के माध्यम से किया जा सकता है। यदि क्लाइंट हाइव में किसी भी क्वेरी से संबंधित संचालन करना चाहता है, तो उसे हाइव सर्विसेज के माध्यम से संवाद करना होगा।
सीएलआई कमांड लाइन इंटरफेस है जो डीडीएल (डेटा डेफिनिशन लैंग्वेज) संचालन के लिए हाइव सेवा के रूप में कार्य करता है। सभी ड्राइवर हाइव सर्वर के साथ और हाइव सेवाओं में मुख्य ड्राइवर के साथ संवाद करते हैं जैसा कि ऊपर दिए गए आर्किटेक्चर आरेख में दिखाया गया है।
हाइव सेवाओं में मौजूद ड्राइवर मुख्य चालक का प्रतिनिधित्व करता है, और यह सभी प्रकार के JDBC, ODBC और अन्य ग्राहक विशिष्ट अनुप्रयोगों का संचार करता है। ड्राइवर विभिन्न अनुरोधों से मेटा स्टोर और फील्ड सिस्टम को आगे की प्रक्रिया के लिए उन अनुरोधों को संसाधित करेगा।
छत्ता संग्रहण और कम्प्यूटिंग:
हाइव सेवाएं जैसे मेटा स्टोर, फाइल सिस्टम, और जॉब क्लाइंट बदले में हाइव स्टोरेज के साथ संचार करता है और निम्नलिखित क्रियाएं करता है
- हाइव में निर्मित तालिकाओं की मेटाडेटा जानकारी को हाइव "मेटा स्टोरेज डेटाबेस" में संग्रहीत किया जाता है।
- तालिकाओं में लोड किए गए परिणाम और डेटा HDFS पर Hadoop क्लस्टर में संग्रहीत किए जाने वाले हैं।
नौकरी की संभावना का प्रवाह:
उपरोक्त स्क्रीनशॉट से हम Hadoop के साथ Hive में नौकरी निष्पादन प्रवाह को समझ सकते हैं
हाइव में डेटा प्रवाह निम्न पैटर्न में व्यवहार करता है;
- UI से निष्पादन क्वेरी (उपयोगकर्ता इंटरफ़ेस)
- चालक योजना प्राप्त करने के लिए कंपाइलर के साथ बातचीत कर रहा है। (यहां योजना क्वेरी निष्पादन के लिए संदर्भित है) प्रक्रिया और इसके संबंधित मेटाडेटा जानकारी एकत्र करना
- कंपाइलर किसी कार्य को निष्पादित करने की योजना बनाता है। मेटाडेटा अनुरोध प्राप्त करने के लिए मेटा स्टोर के साथ संकलक संकलक
- मेटा स्टोर संकलक को मेटाडेटा जानकारी भेजता है
- कंपाइलर क्वेरी को निष्पादित करने के लिए प्रस्तावित योजना के साथ ड्राइवर के साथ संवाद कर रहा है
- निष्पादन इंजन के लिए ड्राइवर भेजने की योजना
- निष्पादन इंजन (EE) क्वेरी को संसाधित करने के लिए Hive और Hadoop के बीच एक सेतु का काम करता है। डीएफएस संचालन के लिए।
- ईई पहले तालिकाओं में संग्रहीत मूल्यों को प्राप्त करने के लिए नाम नोड और फिर डेटा नोड्स से संपर्क करें।
- ईई डेटा नोड्स से वांछित रिकॉर्ड लाने जा रहा है। तालिकाओं का वास्तविक डेटा केवल डेटा नोड में रहता है। नाम नोड से जबकि यह केवल क्वेरी के लिए मेटाडेटा जानकारी प्राप्त करता है।
- यह उल्लेखित क्वेरी से संबंधित डेटा नोड्स से वास्तविक डेटा एकत्र करता है
- निष्पादन इंजन (ईई) डीडीएल (डेटा परिभाषा भाषा) संचालन करने के लिए हाइव में मौजूद मेटा स्टोर के साथ द्वि-प्रत्यक्ष रूप से संचार करता है। यहां डीडीएल ऑपरेशन्स जैसे क्रेट, डीआरओपी और एल्टरिंग टेबल और डेटाबेस किया जाता है। मेटा स्टोर केवल डेटाबेस के नाम, टेबल के नाम और कॉलम के नाम के बारे में जानकारी संग्रहीत करेगा। यह उल्लेखित क्वेरी से संबंधित डेटा प्राप्त करेगा।
- निष्पादन इंजन (EE) Hadoop फ़ाइल सिस्टम के शीर्ष पर क्वेरी को निष्पादित करने के लिए नाम नोड, डेटा नोड्स और जॉब ट्रैकर जैसे Hadoop डेमोंस के साथ संचार करता है
- ड्राइवर से परिणाम प्राप्त करना
- निष्पादन इंजन के लिए परिणाम भेजना। एक बार जब परिणाम डेटा नोड्स से EE को प्राप्त हो जाते हैं, तो यह परिणाम ड्राइवर और UI (फ्रंट एंड) पर वापस भेज देगा
निरंतर इंजन के माध्यम से Hadoop फाइल सिस्टम और इसके डेमों के संपर्क में रहे। कार्य प्रवाह आरेख में बिंदीदार तीर Hadoop डेमन्स के साथ निष्पादन इंजन संचार को दर्शाता है।
हाइव के विभिन्न मोड
Hive Hadoop में डेटा नोड्स के आकार के आधार पर दो मोड में काम कर सकता है।
ये तरीके हैं,
- स्थानीय प्रणाली
- नक्शा कम करने का तरीका
स्थानीय मोड का उपयोग कब करें:
- यदि एक डेटा नोड के साथ छद्म मोड के तहत स्थापित Hadoop हम इस मोड में Hive का उपयोग करते हैं
- यदि एकल स्थानीय मशीन तक सीमित अवधि में डेटा का आकार छोटा है, तो हम इस मोड का उपयोग कर सकते हैं
- स्थानीय मशीन में मौजूद छोटे डेटा सेटों पर प्रसंस्करण बहुत तेज़ होगा
मैप कम मोड का उपयोग कब करें:
- यदि Hadoop में कई डेटा नोड्स हैं और डेटा विभिन्न नोड में वितरित किया जाता है, तो हम इस मोड में Hive का उपयोग करते हैं
- यह समानांतर रूप से निष्पादित करने के लिए बड़ी मात्रा में डेटा सेट और क्वेरी पर प्रदर्शन करेगा
- बेहतर प्रदर्शन के साथ बड़े डेटा सेट का प्रसंस्करण इस मोड के माध्यम से प्राप्त किया जा सकता है
हाइव में, हम यह गुण सेट करने के लिए कह सकते हैं कि हाइव किस मोड में काम कर सकता है? डिफ़ॉल्ट रूप से, यह मैप रिड्यूस मोड पर काम करता है और स्थानीय मोड के लिए आपके पास निम्न सेटिंग हो सकती है।
स्थानीय मोड सेट में काम करने के लिए छत्ता
सेट मैप किया गया।
हाइव संस्करण 0.7 से यह स्वचालित रूप से स्थानीय मोड में नौकरियों को कम करने के लिए एक मोड का समर्थन करता है।
Hive Server2 (HS2) क्या है?
HiveServer2 (HS2) एक सर्वर इंटरफ़ेस है जो निम्नलिखित कार्य करता है:
- हाइव के खिलाफ प्रश्नों को निष्पादित करने के लिए दूरस्थ क्लाइंट को सक्षम करता है
- उल्लिखित प्रश्नों के परिणामों को पुनः प्राप्त करें
नवीनतम संस्करण से इसमें थ्रिफ्ट आरपीसी के आधार पर कुछ उन्नत विशेषताएं हैं जैसे;
- मल्टी-क्लाइंट समवर्ती
- प्रमाणीकरण
सारांश:
Hive, Hadoop पारिस्थितिकी तंत्र के शीर्ष पर एक ETL और डेटा वेयरहाउस टूल है और इसका उपयोग संरचित और अर्ध संरचित डेटा के प्रसंस्करण के लिए किया जाता है।
- Hive एक डेटाबेस है जो Hadoop पारिस्थितिकी तंत्र में मौजूद है, DDL और DML संचालन करता है, और यह डेटा की बेहतर क्वेरी और प्रसंस्करण के लिए HQL जैसी लचीली क्वेरी भाषा प्रदान करता है।
- यह आरडीएमएस की तुलना में बहुत सारी सुविधाएँ प्रदान करता है जिसकी कुछ सीमाएँ हैं।
ग्राहक की आवश्यकताओं को पूरा करने के लिए उपयोगकर्ता विशिष्ट तर्क के लिए।
- यह कस्टम परिभाषित स्क्रिप्ट और उपयोगकर्ता परिभाषित कार्यों को लिखने और तैनात करने का विकल्प प्रदान करता है।
- इसके अलावा, यह भंडारण विशिष्ट लॉगिक्स के लिए विभाजन और बाल्टी प्रदान करता है।