Apache Hive
अपाचे हाइव एक डेटा वेयरहाउस सॉफ्टवेयर परियोजना है जिसे डेटा क्वेरी और विश्लेषण प्रदान करने के लिए अपाचे हडूप के ऊपर बनाया गया है। हाइव विभिन्न डेटाबेस और फ़ाइल सिस्टम में संग्रहीत डेटा को क्वेरी करने के लिए एक एसक्यूएल जैसा इंटरफेस देता है जो Hadoop के साथ एकीकृत होता है। वितरित डेटा पर एस. क्यू. एल. अनुप्रयोगों और प्रश्नों को निष्पादित करने के लिए पारंपरिक एस. क्यू. एल. प्रश्नों को मैपराइडस जावा ए. पी. आई. में लागू किया जाना चाहिए। हाइव निम्न-स्तरीय जावा एपीआई में प्रश्नों को लागू करने की आवश्यकता के बिना अंतर्निहित जावा में एसक्यूएल जैसी प्रश्नों (हाइवक्यूएल) को एकीकृत करने के लिए आवश्यक एसक्यूएल अमूर्तता प्रदान करता है। चूँकि अधिकांश डेटा वेयरहाउसिंग अनुप्रयोग एस. क्यू. एल.-आधारित पूछताछ भाषाओं के साथ काम करते हैं, हाइव हडूप के लिए एस. क्यू. एल.-आधारित अनुप्रयोगों की सुवाह्यता में सहायता करता है। जबकि शुरू में फेसबुक द्वारा विकसित किया गया था, अपाचे हाइव का उपयोग और विकास अन्य कंपनियों जैसे नेटफ्लिक्स और वित्तीय उद्योग नियामक प्राधिकरण (एफ. आई. एन. आर. ए.) द्वारा किया जाता है। अमेज़ॅन अमेज़ॅन वेब सेवाओं पर अमेज़ॅन लोचदार मानचित्र कटौती में शामिल अपाचे हाइव का एक सॉफ्टवेयर कांटा रखता है। विशेषताएँ अपाचे हाइव हडूप के एच. डी. एफ. एस. में संग्रहीत बड़े डेटासेट और अमेज़न एस3 फाइलसिस्टम और अलक्सियो जैसे संगत फाइल सिस्टम के विश्लेषण का समर्थन करता है। यह पढ़ने पर योजना के साथ हाइवक्यूएल नामक एक एसक्यूएल जैसी प्रश्न भाषा प्रदान करता है और प्रश्नों को पारदर्शी रूप से मैपरेड्यूस, अपाचे तेज और स्पार्क जॉब्स में परिवर्तित करता है। तीनों निष्पादन इंजन Hadoop के संसाधन वार्ताकार, YARN (अभी तक एक और संसाधन वार्ताकार) में चल सकते हैं। प्रश्नों में तेजी लाने के लिए, इसने अनुक्रमणिका प्रदान की, लेकिन इस सुविधा को संस्करण 3 में हटा दिया गया हाइव की अन्य विशेषताओं में शामिल हैंः विभिन्न भंडारण प्रकार जैसे सादा पाठ, आरसीफाइल, एचबेस, ओआरसी, और अन्य। एक संबंधपरक डेटाबेस प्रबंधन प्रणाली में मेटाडेटा भंडारण, क्वेरी निष्पादन के दौरान शब्दार्थ जांच करने के समय को काफी कम कर देता है। डीएफएलएटीई, बीडब्ल्यूटी, स्नैपी आदि सहित एल्गोरिदम का उपयोग करके हडूप पारिस्थितिकी तंत्र में संग्रहीत संपीड़ित डेटा पर काम करना। तिथियों, तारों और अन्य डेटा-खनन उपकरणों में हेरफेर करने के लिए अंतर्निहित उपयोगकर्ता-परिभाषित कार्य (यू. डी. एफ.)। हाइव उपयोग के मामलों को संभालने के लिए यू. डी. एफ. सेट का विस्तार करने का समर्थन करता है जो अंतर्निहित कार्यों द्वारा समर्थित नहीं है। एस. क्यू. एल. जैसे प्रश्न (हाइवक्यू. एल.), जिन्हें अप्रत्यक्ष रूप से मैपरेड्यूस या तेज, या स्पार्क जॉब्स में परिवर्तित किया जाता है। डिफ़ॉल्ट रूप से, हाइव मेटाडेटा को एक एम्बेडेड अपाचे डर्बी डेटाबेस में संग्रहीत करता है, और अन्य क्लाइंट/सर्वर डेटाबेस जैसे कि माईएसक्यूएल का वैकल्पिक रूप से उपयोग किया जा सकता है। हाइव में समर्थित पहले चार फ़ाइल प्रारूप सादे पाठ, अनुक्रम फ़ाइल, अनुकूलित पंक्ति स्तंभाकार (ओआरसी) प्रारूप और आरसीफ़ाइल थे। अपाचे पार्केट को 0.10 के बाद के संस्करणों में प्लगइन के माध्यम से पढ़ा जा सकता है और मूल रूप से 0.13 से शुरू किया जा सकता है। हाइव वास्तुकला के प्रमुख घटक हैंः एनएनः प्रत्येक तालिका के लिए स्टोर मेटाडेटा जैसे कि उनकी योजना और स्थान। इसमें विभाजन मेटाडेटा भी शामिल है जो चालक को क्लस्टर पर वितरित विभिन्न डेटा सेटों की प्रगति को ट्रैक करने में मदद करता है। डेटा को पारंपरिक आरडीबीएमएस प्रारूप में संग्रहीत किया जाता है। मेटाडेटा चालक को डेटा पर नज़र रखने में मदद करता है और यह महत्वपूर्ण है। इसलिए, एक बैकअप सर्वर नियमित रूप से डेटा की प्रतिकृति बनाता है जिसे डेटा हानि के मामले में पुनर्प्राप्त किया जा सकता है। चालकः एक नियंत्रक की तरह कार्य करता है जो हाइवक्यूएल विवरण प्राप्त करता है। यह सत्रों का निर्माण करके कथन के निष्पादन की शुरुआत करता है और जीवन चक्र और निष्पादन की प्रगति की निगरानी करता है। यह हाइवक्यूएल कथन के निष्पादन के दौरान उत्पन्न आवश्यक मेटाडेटा को संग्रहीत करता है। ड्राइवर रिड्यूस ऑपरेशन के बाद प्राप्त डेटा या क्वेरी परिणामों के संग्रह बिंदु के रूप में भी कार्य करता है। संकलकः हाइवक्यूएल क्वेरी का संकलन करता है, जो क्वेरी को निष्पादन योजना में परिवर्तित करता है। इस योजना में प्रश्न द्वारा अनुवादित आउटपुट प्राप्त करने के लिए हडूप मैपराइडस द्वारा किए जाने वाले कार्य और चरण शामिल हैं। संकलक क्वेरी को एक अमूर्त वाक्यविन्यास वृक्ष (एएसटी) में परिवर्तित करता है। संगतता की जाँच करने और समय त्रुटियों को संकलित करने के बाद, यह ए. एस. टी. को निर्देशित एसाइक्लिक ग्राफ (डी. ए. जी.) में बदल देता है। डी. ए. जी. ऑपरेटरों को इनपुट क्वेरी और डेटा के आधार पर मैपराइडस चरणों और कार्यों में विभाजित करता है। ऑप्टिमाइज़रः एक अनुकूलित डी. ए. जी. प्राप्त करने के लिए निष्पादन योजना पर विभिन्न परिवर्तन करता है। परिवर्तनों को एक साथ एकत्र किया जा सकता है, जैसे कि बेहतर प्रदर्शन के लिए जोड़ों की एक पाइपलाइन को एकल जोड़ में परिवर्तित करना। यह कार्यों को भी विभाजित कर सकता है, जैसे कि बेहतर प्रदर्शन और मापनीयता प्रदान करने के लिए कम संचालन से पहले डेटा पर परिवर्तन लागू करना। हालांकि, अनुकूलन के लिए उपयोग किए जाने वाले परिवर्तन के तर्क को किसी अन्य अनुकूलनकर्ता का उपयोग करके संशोधित या पाइपलाइन किया जा सकता है। वाईएसमार्ट नामक एक ऑप्टिमाइज़र अपाचे हाइव का एक हिस्सा है। यह सहसंबद्ध ऑप्टिमाइज़र सहसंबद्ध मैपरड्युस जॉब्स को एक एकल मैपरड्युस जॉब्स में मिला देता है, जिससे निष्पादन का समय काफी कम हो जाता है। निष्पादकः संकलन और अनुकूलन के बाद, निष्पादक कार्यों को निष्पादित करता है। यह चलाने के लिए कार्यों को निर्धारित करने के लिए Hadoop के नौकरी ट्रैकर के साथ बातचीत करता है। यह यह सुनिश्चित करके कार्यों को पाइपलाइनिंग का ध्यान रखता है कि निर्भरता के साथ एक कार्य केवल तभी निष्पादित किया जाता है जब अन्य सभी पूर्वापेक्षाएँ संचालित की जाती हैं। सी. एल. आई., यू. आई. और थ्रिफ्ट सर्वरः एक कमांड-लाइन इंटरफेस (सी. एल. आई.) एक बाहरी उपयोगकर्ता को प्रश्न, निर्देश और प्रक्रिया की स्थिति की निगरानी करके हाइव के साथ बातचीत करने के लिए एक उपयोगकर्ता इंटरफेस प्रदान करता है। थ्रिफ्ट सर्वर बाहरी ग्राहकों को नेटवर्क पर हाइव के साथ बातचीत करने की अनुमति देता है, जो जे. डी. बी. सी. या ओ. डी. बी. सी. प्रोटोकॉल के समान है। जबकि हाइवक्यूएल एसक्यूएल पर आधारित है, हाइवक्यूएल पूरी तरह से एसक्यूएल-92 मानक का पालन नहीं करता है। हाइवक्यूएल एसक्यूएल में नहीं होने वाले एक्सटेंशन प्रदान करता है, जिसमें मल्टी-टेबल इंसर्ट शामिल हैं, और चुनिंदा रूप से टेबल बनाता है। हाइवक्यूएल में लेन-देन और वास्तविक विचारों के लिए समर्थन की कमी थी, और केवल सीमित उप-पूछताछ समर्थन था। पूर्ण एसीआईडी कार्यक्षमता के साथ सम्मिलित करने, अद्यतन करने और हटाने के लिए समर्थन रिलीज 0.14 के साथ उपलब्ध कराया गया था। आंतरिक रूप से, एक संकलक हाइवक्यूएल के बयानों को मैपरेड्यूस, तेज या स्पार्क जॉब्स के निर्देशित चक्रीय ग्राफ में अनुवादित करता है, जिन्हें निष्पादन के लिए हडूप को प्रस्तुत किया जाता है। उदाहरण शब्द गणना कार्यक्रम प्रत्येक शब्द के इनपुट में आने की संख्या की गणना करता है। शब्द गणना को हाइवक्यूएल में इस प्रकार लिखा जा सकता हैः DROP TALBLE IEXIST DOCS DOCS; CREATE TALBLE DOCS (LINE STRING); LOAD DATA INPATH 'Input _ File' OVERWRRRITE IN TALBLE DOCS; CREATE TALBLE WORD _ COUNTS OVERWRRITE IN TALBLE DOCS; CREATE TALBLE WORD _ COUNTS OVERWRRRITE OVERWARDE IN TALBLE DOCS; CREATE TALBLE WORD _ COUNTS OVERWERDE TALECT WORD के रूप में, काउंट (1) काउंट फ्रॉम (SELECT FROM DOCS) टेम्प ग्रुप बाय वर्ड ऑर्डर; प्रत्येक स्टेटमेंट की संक्षिप्त व्याख्या इस प्रकार हैः डॉक्स नामक एक नई तालिका बनाता है जिसमें स्ट्रिंग प्रकार के एकल स्तंभ होते हैं जिन्हें लाइन कहा जाता है। लोड डेटा इनपुट 'इनपुट _ फाइल' ओवरराइट टेबल डॉक्स में; टेबल में निर्दिष्ट फाइल या निर्देशिका (इस मामले में "इनपुट _ फाइल") को लोड करता है। ओवरराइट निर्दिष्ट करता है कि जिस लक्ष्य तालिका में डेटा लोड किया जा रहा है, उसे फिर से लिखा जाना है; अन्यथा, डेटा जोड़ा जाएगा। टेबल वर्ड _ काउंट को सेलेक्ट वर्ड के रूप में बनाएँ, काउंट (1) जैसे-जैसे काउंट फ्रॉम (सेलेक्ट एक्सप्लोड (स्प्लिट (लाइन, '\s')) वर्ड फ्रॉम डॉक्स) टेम्प ग्रुप बाय वर्ड ऑर्डर बाय वर्ड; क्वेरी वर्ड _ काउंट नामक एक टेबल बनाता है जिसमें दो कॉलम होते हैंः वर्ड और काउंट। यह क्वेरी आंतरिक क्वेरी से अपना इनपुट खींचती है। यह प्रश्न इनपुट शब्दों को अस्थायी तालिका की विभिन्न पंक्तियों में विभाजित करने का काम करता है जिसे अस्थायी के रूप में अलग किया जाता है। परिणाम को उनकी कुंजी के आधार पर समूहित किया जाता है। इसके परिणामस्वरूप गणना कॉलम में शब्द कॉलम के प्रत्येक शब्द के लिए घटनाओं की संख्या होती है। शब्दों को वर्णानुक्रम में क्रमबद्ध करें। पारंपरिक डेटाबेस के साथ तुलना हाइव के भंडारण और पूछताछ संचालन पारंपरिक डेटाबेस के समान हैं। जबकि हाइव एक एसक्यूएल बोली है, संबंधपरक डेटाबेस की तुलना में हाइव की संरचना और कार्यप्रणाली में बहुत अंतर हैं। अंतर मुख्य रूप से इसलिए है क्योंकि हाइव को हडूप पारिस्थितिकी तंत्र के शीर्ष पर बनाया गया है, और इसे हडूप और मैपरेड्यूस के प्रतिबंधों का पालन करना पड़ता है। पारंपरिक डेटाबेस में एक तालिका पर एक योजना लागू की जाती है। इस तरह के पारंपरिक डेटाबेस में, तालिका आमतौर पर योजना को लागू करती है जब डेटा को तालिका में लोड किया जाता है। यह डेटाबेस को यह सुनिश्चित करने में सक्षम बनाता है कि दर्ज किया गया डेटा तालिका की परिभाषा द्वारा निर्दिष्ट तालिका के प्रतिनिधित्व का अनुसरण करता है। इस डिजाइन को स्किमा ऑन राइट कहा जाता है। इसकी तुलना में, हाइव लिखित तालिका योजना के खिलाफ डेटा को सत्यापित नहीं करता है। इसके बजाय, यह बाद में रन टाइम जाँच करता है जब डेटा पढ़ा जाता है। इस मॉडल को स्कीमा ऑन रीड कहा जाता है। इन दोनों पद्धतियों के अपने फायदे और नुकसान हैं। लोड समय के दौरान टेबल स्कीमा के खिलाफ डेटा की जाँच करने से अतिरिक्त ओवरहेड जुड़ जाता है, यही कारण है कि पारंपरिक डेटाबेस डेटा लोड करने में अधिक समय लेते हैं। यह सुनिश्चित करने के लिए कि डेटा दूषित नहीं है, लोड समय पर डेटा के खिलाफ गुणवत्ता जांच की जाती है। भ्रष्ट डेटा का जल्दी पता लगाना जल्दी अपवाद प्रबंधन सुनिश्चित करता है। चूँकि तालिकाओं को डेटा लोड के बाद/दौरान स्कीमा से मेल खाने के लिए मजबूर किया जाता है, इसलिए इसमें बेहतर क्वेरी समय प्रदर्शन होता है। दूसरी ओर, हाइव बिना किसी योजना जाँच के गतिशील रूप से डेटा लोड कर सकता है, जिससे एक तेज़ प्रारंभिक भार सुनिश्चित होता है, लेकिन क्वेरी समय पर तुलनात्मक रूप से धीमे प्रदर्शन की कमी के साथ। हाइव का एक लाभ होता है जब भार समय पर योजना उपलब्ध नहीं होती है, लेकिन इसके बजाय बाद में गतिशील रूप से उत्पन्न की जाती है। लेन-देन पारंपरिक डेटाबेस में प्रमुख संचालन हैं। किसी भी विशिष्ट आर. डी. बी. एम. एस. के रूप में, हाइव लेनदेन के सभी चार गुणों (ए. सी. आई. डी.) का समर्थन करता हैः परमाणुता, स्थिरता, अलगाव और स्थायित्व। हाइव में लेन-देन हाइव 0.13 में शुरू किए गए थे लेकिन केवल विभाजन स्तर तक ही सीमित थे। हाइव 0.14 के हालिया संस्करण में पूर्ण एसीआईडी गुणों का समर्थन करने के लिए इन कार्यों को पूरी तरह से जोड़ा गया था। हाइव 0.14 और बाद में विभिन्न पंक्ति स्तर के लेनदेन जैसे कि INSERT, DELETE और UPDATE प्रदान करता है। INSERT, UPDATE, और DELETE लेनदेन को सक्षम करने के लिए कॉन्फ़िगरेशन गुणों जैसे hive.support.concurrency, hive.enforce.bucketing, और hive.exec.dynamic.partition.mode के लिए उपयुक्त मान निर्धारित करने की आवश्यकता होती है। सुरक्षा हाइव v0.7.0 ने Hadoop सुरक्षा के साथ एकीकरण जोड़ा। Hadoop ने सुरक्षा प्रदान करने के लिए कर्बेरोस प्राधिकरण समर्थन का उपयोग करना शुरू किया। केरबेरोस क्लाइंट और सर्वर के बीच पारस्परिक प्रमाणीकरण की अनुमति देता है। इस प्रणाली में, टिकट के लिए ग्राहक के अनुरोध को अनुरोध के साथ पारित किया जाता है। Hadoop के पिछले संस्करणों में कई समस्याएं थीं जैसे कि उपयोगकर्ता hadoop.job.ugi गुण सेट करके अपने उपयोगकर्ता नाम को धोखा देने में सक्षम थे और साथ ही एक ही उपयोगकर्ताः Hadoop या मानचित्रित के तहत चलाए जा रहे मानचित्र कटौती संचालन। हाइव v0.7.0 के Hadoop सुरक्षा के साथ एकीकरण के साथ, इन मुद्दों को काफी हद तक ठीक कर दिया गया है। टास्कट्रैकर कार्य उस उपयोगकर्ता द्वारा चलाए जाते हैं जिसने इसे शुरू किया था और उपयोगकर्ता नाम को अब hadoop.job.ugi गुण सेट करके धोखा नहीं दिया जा सकता है। हाइव में नई बनाई गई फ़ाइलों के लिए अनुमतियाँ एच. डी. एफ. एस. द्वारा निर्धारित की जाती हैं। Hadoop वितरित फ़ाइल सिस्टम प्राधिकरण मॉडल तीन संस्थाओं का उपयोग करता हैः उपयोगकर्ता, समूह और अन्य तीन अनुमतियों के साथः पढ़ें, लिखें और निष्पादित करें। नव निर्मित फ़ाइलों के लिए डिफ़ॉल्ट अनुमतियाँ हाइव कॉन्फ़िगरेशन चर hive.files.umask.value के लिए अनमास्क मान को बदलकर निर्धारित की जा सकती हैं। यह भी देखें कि अपाचे पिग स्कूप अपाचे इम्पाला अपाचे ड्रिल अपाचे फ्लूम अपाचे एचबेस ट्रिनो (एसक्यूएल क्वेरी इंजन) संदर्भ बाहरी लिंक 2015 सॉफ्टवेयर हाइव क्लाउड कंप्यूटिंग फेसबुक सॉफ्टवेयर जावा में प्रोग्राम किया गया फ्री सॉफ्टवेयर (प्रोग्रामिंग भाषा) अपाचे लाइसेंस का उपयोग करके फ्री सिस्टम सॉफ्टवेयर Hadoop सॉफ्टवेयर