हाइव क्या है? Archiटेक्चर और मोड
हाइव क्या है?
हाइव एक ETL और डेटा वेयरहाउसिंग टूल है जिसे Hadoop डिस्ट्रिब्यूटेड फ़ाइल सिस्टम (HDFS) के शीर्ष पर विकसित किया गया है। हाइव निम्न प्रकार के ऑपरेशन करने के काम को आसान बनाता है
- डेटा एनकैप्सुलेशन
- तदर्थ प्रश्न
- विशाल डेटासेट का विश्लेषण
हाइव की महत्वपूर्ण विशेषताएं
- हाइव में, पहले तालिकाएं और डेटाबेस बनाए जाते हैं और फिर इन तालिकाओं में डेटा लोड किया जाता है।
- डेटा वेयरहाउस के रूप में हाइव को केवल तालिकाओं में संग्रहीत संरचित डेटा के प्रबंधन और क्वेरी के लिए डिज़ाइन किया गया है।
- संरचित डेटा से निपटने के दौरान, मैप रिड्यूस में UDFs की तरह अनुकूलन और प्रयोज्यता सुविधाएँ नहीं होती हैं, लेकिन हाइव फ्रेमवर्क में होती हैं। क्वेरी ऑप्टिमाइज़ेशन प्रदर्शन के संदर्भ में क्वेरी निष्पादन का एक प्रभावी तरीका है।
- हाइव की SQL-प्रेरित भाषा उपयोगकर्ता को मैप रिड्यूस प्रोग्रामिंग की जटिलता से अलग करती है। यह रिलेशनल डेटाबेस की दुनिया से परिचित अवधारणाओं का पुनः उपयोग करती है, जैसे कि टेबल, रो, कॉलम और स्कीमा, आदि सीखने में आसानी के लिए।
- हाडोप की प्रोग्रामिंग फ्लैट फाइलों पर काम करती है। इसलिए, हाइव कुछ क्वेरीज़ पर प्रदर्शन को बेहतर बनाने के लिए डेटा को "विभाजित" करने के लिए निर्देशिका संरचनाओं का उपयोग कर सकता है।
- हाइव का एक नया और महत्वपूर्ण घटक है स्टोर, जिसका उपयोग स्कीमा जानकारी को संग्रहीत करने के लिए किया जाता है। यह स्टोर आमतौर पर एक रिलेशनल डेटाबेस में स्थित होता है। हम हाइव के साथ निम्नलिखित विधियों का उपयोग करके इंटरैक्ट कर सकते हैं:
- वेब जीयूआई
- Java डेटाबेस कनेक्टिविटी (JDBC) इंटरफ़ेस
- ज़्यादातर इंटरैक्शन कमांड लाइन इंटरफ़ेस (CLI) पर होते हैं। हाइव क्वेरी लैंग्वेज (HQL) का उपयोग करके हाइव क्वेरी लिखने के लिए हाइव एक CLI प्रदान करता है।
- सामान्यतः, HQL सिंटैक्स समान है एसक्यूएल सिंटैक्स जिससे अधिकांश डेटा विश्लेषक परिचित हैं। नीचे दिया गया नमूना क्वेरी उल्लिखित तालिका नाम में मौजूद सभी रिकॉर्ड प्रदर्शित करता है।
- नमूना प्रश्न : से * का चयन करें
- हाइव चार फ़ाइल स्वरूपों का समर्थन करता है जो हैं टेक्सटफाइल, सीक्वेंसफाइल, ओआरसी और आरसीफाइल (रिकॉर्ड स्तंभाकार फ़ाइल).
- एकल उपयोगकर्ता मेटाडेटा संग्रहण के लिए, Hive डर्बी डेटाबेस का उपयोग करता है और एकाधिक उपयोगकर्ता डेटा या साझा डेटा मामले में Hive MYSQL का उपयोग करता है।
स्थापित करने के लिए MySQL डेटाबेस के रूप में और संग्रहीत करने के लिए-डेटा जानकारी जाँच ट्यूटोरियल “HIVE और MYSQL की स्थापना और कॉन्फ़िगरेशन”
हाइव के बारे में कुछ मुख्य बातें:
- HQL और SQL के बीच मुख्य अंतर यह है कि हाइव क्वेरी पारंपरिक डेटाबेस के बजाय Hadoop के बुनियादी ढांचे पर निष्पादित होती है।
- हाइव क्वेरी का निष्पादन स्वचालित रूप से उत्पन्न मैप रिड्यूस जॉब्स की श्रृंखला की तरह होगा।
- जब क्लाइंट क्वेरी निष्पादित करता है तो डेटा की आसान पुनर्प्राप्ति के लिए हाइव विभाजन और बकेट अवधारणाओं का समर्थन करता है।
- हाइव डेटा क्लीन्ज़िंग, फ़िल्टरिंग आदि के लिए कस्टम विशिष्ट UDF (यूज़र डिफ़ाइंड फंक्शन्स) का समर्थन करता है। प्रोग्रामर की आवश्यकताओं के अनुसार हाइव UDF को परिभाषित किया जा सकता है।
हाइव बनाम रिलेशनल डेटाबेस
हाइव का उपयोग करके, हम कुछ अनोखी कार्यक्षमताएं कर सकते हैं जो रिलेशनल डेटाबेस में हासिल नहीं की जा सकती हैं। पेटा-बाइट्स में मौजूद बहुत बड़ी मात्रा में डेटा के लिए, इसे क्वेरी करना और सेकंड में परिणाम प्राप्त करना महत्वपूर्ण है। और हाइव यह काफी कुशलता से करता है, यह क्वेरी को तेज़ी से प्रोसेस करता है और सेकंड के समय में परिणाम देता है।
अब देखते हैं कि हाइव को इतना तेज़ क्या बनाता है।
हाइव और रिलेशनल डेटाबेस के बीच कुछ प्रमुख अंतर निम्नलिखित हैं;
रिलेशनल डेटाबेस “पढ़ने पर स्कीमा और लिखने पर स्कीमा"पहले एक टेबल बनाना और फिर उस विशेष टेबल में डेटा डालना। रिलेशनल डेटाबेस टेबल पर, इन्सर्ट, अपडेट और मॉडिफिकेशन जैसे फ़ंक्शन किए जा सकते हैं।
हाइव है “स्कीमा केवल पढ़ने के लिए"इसलिए, अपडेट, संशोधन आदि जैसे फ़ंक्शन इसके साथ काम नहीं करते हैं। क्योंकि एक सामान्य क्लस्टर में हाइव क्वेरी कई डेटा नोड्स पर चलती है। इसलिए कई नोड्स में डेटा को अपडेट और संशोधित करना संभव नहीं है। (हाइव संस्करण 0.13 से नीचे)
इसके अलावा, हाइव “ का समर्थन करता हैकई बार पढ़ें एक बार लिखें” पैटर्न। जिसका अर्थ है कि तालिका सम्मिलित करने के बाद हम नवीनतम हाइव संस्करणों में तालिका को अपडेट कर सकते हैं।
ध्यान दें: हालाँकि हाइव का नया संस्करण अपडेटेड सुविधाओं के साथ आता है। हाइव संस्करण (हाइव 0.14) नई सुविधाओं के रूप में अपडेट और डिलीट विकल्पों के साथ आता है
करंड Archiटेक्चर
उपरोक्त स्क्रीनशॉट बताता है अपाचे हाइव वास्तुकला विस्तार से
हाइव में मुख्य रूप से 3 मुख्य भाग होते हैं
- हाइव ग्राहक
- हाइव सेवाएं
- हाइव भंडारण और कम्प्यूटिंग
हाइव ग्राहक:
हाइव अलग-अलग प्रकार के अनुप्रयोगों के साथ संचार के लिए अलग-अलग ड्राइवर प्रदान करता है। थ्रिफ्ट आधारित अनुप्रयोगों के लिए, यह संचार के लिए थ्रिफ्ट क्लाइंट प्रदान करेगा।
के लिए Java संबंधित अनुप्रयोगों के लिए, यह JDBC ड्राइवर प्रदान करता है। किसी भी प्रकार के अनुप्रयोगों के अलावा ODBC ड्राइवर प्रदान किए जाते हैं। ये क्लाइंट और ड्राइवर बदले में हाइव सेवाओं में हाइव सर्वर के साथ संवाद करते हैं।
हाइव सेवाएँ:
हाइव के साथ क्लाइंट इंटरैक्शन हाइव सेवाओं के माध्यम से किया जा सकता है। यदि क्लाइंट हाइव में कोई क्वेरी से संबंधित ऑपरेशन करना चाहता है, तो उसे हाइव सेवाओं के माध्यम से संवाद करना होगा।
CLI कमांड लाइन इंटरफ़ेस है जो DDL (डेटा डेफ़िनेशन लैंग्वेज) ऑपरेशन के लिए हाइव सेवा के रूप में कार्य करता है। सभी ड्राइवर हाइव सर्वर और हाइव सेवाओं में मुख्य ड्राइवर के साथ संचार करते हैं जैसा कि ऊपर दिए गए आर्किटेक्चर आरेख में दिखाया गया है।
हाइव सेवाओं में मौजूद ड्राइवर मुख्य ड्राइवर का प्रतिनिधित्व करता है, और यह सभी प्रकार के JDBC, ODBC और अन्य क्लाइंट विशिष्ट अनुप्रयोगों को संचारित करता है। ड्राइवर आगे की प्रक्रिया के लिए विभिन्न अनुप्रयोगों से मेटा स्टोर और फ़ील्ड सिस्टम तक उन अनुरोधों को संसाधित करेगा।
हाइव स्टोरेज और कंप्यूटिंग:
हाइव सेवाएं जैसे स्टोर, फ़ाइल सिस्टम और जॉब क्लाइंट बदले में हाइव स्टोरेज के साथ संचार करते हैं और निम्नलिखित क्रियाएं करते हैं
- हाइव में बनाई गई तालिकाओं की डेटा जानकारी हाइव "मेटा स्टोरेज डेटाबेस" में संग्रहीत की जाती है।
- क्वेरी परिणाम और तालिकाओं में लोड किया गया डेटा HDFS पर Hadoop क्लस्टर में संग्रहीत किया जाएगा।
कार्य निष्पादन प्रवाह:
उपरोक्त स्क्रीनशॉट से हम Hadoop के साथ Hive में जॉब निष्पादन प्रवाह को समझ सकते हैं
हाइव में डेटा प्रवाह निम्नलिखित पैटर्न में व्यवहार करता है;
- UI(यूजर इंटरफ़ेस) से क्वेरी निष्पादित करना
- ड्राइवर योजना प्राप्त करने के लिए कंपाइलर के साथ बातचीत कर रहा है। (यहां योजना क्वेरी निष्पादन को संदर्भित करती है) प्रक्रिया और इससे संबंधित मेटाडेटा जानकारी एकत्र करना
- कंपाइलर निष्पादित होने वाले कार्य के लिए योजना बनाता है। कंपाइलर संचार कर रहा है मेटाडेटा अनुरोध प्राप्त करने के लिए स्टोर
- स्टोर मेटाडेटा जानकारी संकलक को वापस भेजता है
- क्वेरी को निष्पादित करने के लिए प्रस्तावित योजना के साथ ड्राइवर के साथ संचार करने वाला कंपाइलर
- ड्राइवर निष्पादन इंजन को निष्पादन योजनाएँ भेज रहा है
- निष्पादन इंजन (EE) क्वेरी को संसाधित करने के लिए हाइव और हाडोप के बीच एक पुल के रूप में कार्य करता है। DFS संचालन के लिए।
- तालिकाओं में संग्रहीत मान प्राप्त करने के लिए EE को पहले नाम नोड से और फिर डेटा नोड से संपर्क करना चाहिए।
- ईई डेटा नोड्स से वांछित रिकॉर्ड लाने जा रहा है। तालिकाओं का वास्तविक डेटा केवल डेटा नोड में रहता है। जबकि नाम नोड से यह केवल क्वेरी के लिए मेटाडेटा जानकारी प्राप्त करता है।
- यह उल्लिखित क्वेरी से संबंधित डेटा नोड्स से वास्तविक डेटा एकत्र करता है
- एक्ज़ीक्यूशन इंजन (EE) द्विदिशात्मक रूप से संचार करता है Hive में मौजूद स्टोर के साथ DDL (डेटा डेफिनिशन लैंग्वेज) ऑपरेशन करने के लिए। यहाँ CREATE, DROP और ALTERING टेबल और डेटाबेस जैसे DDL ऑपरेशन किए जाते हैं। स्टोर केवल डेटाबेस नाम, टेबल नाम और कॉलम नाम के बारे में जानकारी संग्रहीत करेगा। यह उल्लिखित क्वेरी से संबंधित डेटा प्राप्त करेगा।
- एक्ज़ीक्यूशन इंजन (EE) बदले में हैडूप डेमन्स जैसे नेम नोड, डेटा नोड और जॉब के साथ संचार करता है। tracहैडूप फाइल सिस्टम के ऊपर क्वेरी को निष्पादित करने के लिए ker का उपयोग करें
- ड्राइवर से परिणाम प्राप्त किए जा रहे हैं
- निष्पादन इंजन को परिणाम भेजना। एक बार जब परिणाम डेटा नोड्स से ईई तक पहुंच जाते हैं, तो यह परिणामों को ड्राइवर और यूआई (फ्रंट एंड) को वापस भेज देगा।
हाइव लगातार एक्जीक्यूशन इंजन के माध्यम से Hadoop फ़ाइल सिस्टम और उसके डेमॉन के संपर्क में रहता है। जॉब फ्लो डायग्राम में बिंदीदार तीर Hadoop डेमॉन के साथ एक्जीक्यूशन इंजन संचार को दर्शाता है।
हाइव के विभिन्न तरीके
हडॉप में डेटा नोड्स के आकार के आधार पर हाइव दो मोड में काम कर सकता है।
ये मोड हैं,
- स्थानीय प्रणाली
- मानचित्र कम करने का मोड
स्थानीय मोड का उपयोग कब करें:
- यदि Hadoop को छद्म मोड के तहत एक डेटा नोड के साथ स्थापित किया गया है, तो हम इस मोड में Hive का उपयोग करते हैं
- यदि डेटा का आकार एकल स्थानीय मशीन तक सीमित होने के संदर्भ में छोटा है, तो हम इस मोड का उपयोग कर सकते हैं
- स्थानीय मशीन में मौजूद छोटे डेटा सेट पर प्रसंस्करण बहुत तेज़ होगा
मैप रिड्यूस मोड का उपयोग कब करें:
- यदि Hadoop में कई डेटा नोड हैं और डेटा विभिन्न नोड में वितरित है तो हम इस मोड में Hive का उपयोग करते हैं
- यह बड़ी मात्रा में डेटा सेट पर कार्य करेगा और क्वेरी समानांतर तरीके से निष्पादित होगी
- इस मोड के माध्यम से बेहतर प्रदर्शन के साथ बड़े डेटा सेट का प्रसंस्करण प्राप्त किया जा सकता है
हाइव में, हम यह गुण सेट कर सकते हैं कि हाइव किस मोड पर काम कर सकता है? डिफ़ॉल्ट रूप से, यह मैप रिड्यूस मोड पर काम करता है और स्थानीय मोड के लिए आप निम्न सेटिंग कर सकते हैं।
हाइव को स्थानीय मोड में कार्य करने के लिए सेट करें
SET mapred.job.tracकेर=स्थानीय;
हाइव संस्करण 0.7 से यह स्थानीय मोड में मैप रिड्यूस जॉब्स को स्वचालित रूप से चलाने के लिए एक मोड का समर्थन करता है।
हाइव सर्वर2 (HS2) क्या है?
हाइवसर्वर2 (HS2) एक सर्वर इंटरफ़ेस है जो निम्नलिखित कार्य करता है:
- दूरस्थ क्लाइंट को हाइव के विरुद्ध क्वेरी निष्पादित करने में सक्षम बनाता है
- उल्लिखित प्रश्नों के परिणाम पुनः प्राप्त करें
नवीनतम संस्करण से इसमें थ्रिफ्ट आरपीसी पर आधारित कुछ उन्नत विशेषताएं हैं जैसे;
- बहु-ग्राहक समवर्ती
- प्रमाणीकरण
सारांश
हाइव, हाडोप पारिस्थितिकी तंत्र के शीर्ष पर एक ईटीएल और डेटा वेयरहाउस उपकरण है और इसका उपयोग संरचित और अर्ध संरचित डेटा के प्रसंस्करण के लिए किया जाता है।
- हाइव, हाडोप पारिस्थितिकी तंत्र में मौजूद एक डाटाबेस है जो डीडीएल और डीएमएल परिचालन करता है, तथा यह डेटा की बेहतर क्वेरी और प्रसंस्करण के लिए एचक्यूएल जैसी लचीली क्वेरी भाषा प्रदान करता है।
- यह आरडीएमएस की तुलना में बहुत सारी सुविधाएँ प्रदान करता है, जबकि आरडीएमएस की कुछ सीमाएँ हैं।
ग्राहक आवश्यकताओं को पूरा करने के लिए उपयोगकर्ता विशिष्ट तर्क के लिए।
- यह कस्टम परिभाषित स्क्रिप्ट और उपयोगकर्ता परिभाषित फ़ंक्शन लिखने और तैनात करने का विकल्प प्रदान करता है।
- इसके अतिरिक्त, यह भंडारण विशिष्ट तर्कशास्त्र के लिए विभाजन और बकेट प्रदान करता है।


