Hive व्यवसायमा व्यापक रूपमा प्रयोग हुने बिग डाटा एनालिटिक्स उपकरण हो, र यदि तपाईं बिग डाटामा नयाँ हुनुहुन्छ भने यो सुरू गर्नको लागि यो उत्कृष्ट स्थान हो। यो Apache Hive पाठ Apache Hive को आधारभूत कुराहरूमा जान्छ, Hive किन आवश्यक छ, यसका सुविधाहरू, र तपाईंले जान्नुपर्ने सबै कुरा।
पहिले Hadoop फ्रेमवर्क बुझौं जसमा Apache Hive निर्मित छ।
अपाचे हडोप
Apache Hadoop एक नि: शुल्क र खुला-स्रोत गीगाबाइट देखि पेटाबाइट सम्मको आकारमा ठूला डाटासेटहरू भण्डारण र प्रशोधन गर्ने प्लेटफर्म। Hadoop ले डेटा भण्डारण र विश्लेषण गर्न एकल ठूला कम्प्युटरलाई आवश्यक नभई समानान्तर रूपमा विशाल डाटासेटहरू विश्लेषण गर्न असंख्य कम्प्युटरहरूलाई क्लस्टर गर्न अनुमति दिन्छ।
MapReduce र Hadoop वितरित फाइल प्रणाली दुई कम्पोनेन्टहरू हुन्:
- मानचित्र - MapReduce कमोडिटी हार्डवेयर क्लस्टरहरूमा संगठित, अर्ध-संरचित, र असंरचित डेटाको विशाल मात्रा ह्यान्डल गर्नको लागि एक समानान्तर प्रोग्रामिङ प्रविधि हो।
- एचडीएफएस - HDFS (Hadoop वितरित फाइल प्रणाली) एक Hadoop फ्रेमवर्क घटक हो जसले डाटा भण्डारण र प्रक्रिया गर्दछ। यो एक दोष-सहिष्णु फाइल प्रणाली हो जुन मानक हार्डवेयरमा चल्छ
Hadoop इकोसिस्टममा Sqoop, Pig, र Hive सहित विभिन्न उप-परियोजनाहरू (उपकरणहरू) Hadoop मोड्युलहरूलाई सहायता गर्न प्रयोग गरिन्छ।
- Hive - Hive SQL-शैली स्क्रिप्टहरू लेख्नको लागि एक रूपरेखा हो जसले MapReduce गणनाहरू प्रदर्शन गर्दछ।
- सुँगुर - सुँगुर एक प्रक्रियात्मक प्रोग्रामिङ भाषा हो जुन MapReduce प्रक्रियाहरूको लागि लिपि सिर्जना गर्न प्रयोग गर्न सकिन्छ।
- स्कूप - Sqoop HDFS र RDBMS बीच डाटा आयात र निर्यात गर्न को लागी एक उपकरण हो।
के हो अपाचे Hive?
Apache Hive एक खुला स्रोत हो डाटा गोदाम Apache Hadoop Distributed File System (HDFS) वा Apache HBase जस्ता अन्य डाटा भण्डारण प्रणालीहरूमा सिधै भण्डारण गरिएका विशाल डेटा सेटहरू पढ्न, लेख्न र व्यवस्थापन गर्नका लागि कार्यक्रम।
SQL विकासकर्ताहरूले Hive को प्रयोग गर्न सक्छन् Hive Query Language (HQL) कथनहरू डेटा क्वेरी र विश्लेषणको लागि जुन नियमित SQL कथनहरूसँग तुलना गर्न सकिन्छ। यो लामो जाभा कोड सिक्न र लेख्ने आवश्यकता हटाएर MapReduce प्रोग्रामिङलाई सजिलो बनाउनको लागि सिर्जना गरिएको थियो। यसको सट्टा, तपाईंले आफ्नो प्रश्नहरू HQL मा लेख्न सक्नुहुन्छ, र Hive ले नक्सा निर्माण गर्नेछ र तपाईंको लागि कार्यहरू कम गर्नेछ।
Apache Hive को SQL-जस्तो इन्टरफेस एड-हक खोजहरू प्रदर्शन गर्न, सारांश, र Hadoop डेटा विश्लेषण गर्नको लागि गोल्ड मानक भएको छ। क्लाउडमा समावेश गर्दा कम्प्युटिंग नेटवर्कहरू, यो समाधान विशेष गरी लागत-प्रभावी र स्केलेबल छ, त्यसैले Netflix र Amazon सहित धेरै फर्महरूले Apache Hive को विकास र सुधार गर्न जारी राख्छन्।
इतिहास
फेसबुक मा आफ्नो समय को समयमा, जोयदीप सेन सरमा र आशिष थुसुले Apache Hive को सह-निर्माण गरे। तिनीहरू दुवैले Hadoop बाट धेरै भन्दा धेरै फाइदा लिनको लागि, तिनीहरूले केही जटिल Java Map-Reduce कार्यहरू सिर्जना गर्नुपर्नेछ भनेर बुझे। तिनीहरूले आफ्नो द्रुत रूपमा विस्तार भइरहेको इन्जिनियरिङ् र विश्लेषक टोलीहरूलाई उनीहरूले कम्पनीमा Hadoop को लाभ उठाउन आवश्यक पर्ने सीपहरू सिकाउन सक्षम नहुने कुरा बुझे। ईन्जिनियरहरू र विश्लेषकहरूले प्रायः प्रयोगकर्ता इन्टरफेसको रूपमा SQL लाई प्रयोग गर्थे।
जबकि SQL ले बहुसंख्यक एनालिटिक्स आवश्यकताहरू पूरा गर्न सक्छ, विकासकर्ताहरूले पनि Hadoop को प्रोग्रामेबिलिटी समावेश गर्ने उद्देश्य राखेका थिए। Apache Hive यी दुई उद्देश्यहरूबाट उत्पन्न भयो: SQL-आधारित घोषणात्मक भाषा जसले विकासकर्ताहरूलाई SQL पर्याप्त नभएको बेला आफ्नै लिपि र कार्यक्रमहरू ल्याउन सक्षम बनायो।
डाटा-संचालित संस्थाहरूको निर्माणलाई सजिलो बनाउन कम्पनीमा सबै डाटासेटहरूको बारेमा केन्द्रीकृत मेटाडेटा (हडूप-आधारित) होल्ड गर्न यो पनि विकसित गरिएको थियो।
Apache Hive कसरी काम गर्छ?
संक्षेपमा, Apache Hive ले HiveQL (SQL-जस्तै) भाषामा लेखिएको इनपुट प्रोग्रामलाई एक वा बढी Java MapReduce, Tez, वा Spark कार्यहरूमा रूपान्तरण गर्छ। (यी सबै कार्यान्वयन इन्जिनहरू Hadoop YARN सँग उपयुक्त छन्।) त्यसपछि, Apache Hive ले Hadoop वितरित फाइल प्रणाली HDFS को लागि तालिकाहरूमा डेटा व्यवस्थित गर्दछ) र जवाफ प्राप्त गर्न क्लस्टरमा कार्यहरू गर्दछ।
तथ्याङ्क
Apache Hive तालिकाहरू समान रूपमा व्यवस्थित गरिएका छन् जसरी रिलेसनल डाटाबेसमा तालिकाहरू व्यवस्थित छन्, डेटा एकाइहरू ठूला देखि साना सम्मको आकारमा। डाटाबेसहरू टेबलहरू मिलेर बनेका हुन्छन् जुन डिभिजनहरूमा विभाजित हुन्छन्, जसलाई थप बाल्टीहरूमा विभाजित गरिन्छ। HiveQL (Hive Query Language) डाटा पहुँच गर्न प्रयोग गरिन्छ, जुन परिवर्तन वा जोड्न सकिन्छ। तालिका डेटा प्रत्येक डेटाबेस भित्र क्रमबद्ध गरिएको छ, र प्रत्येक तालिकाको आफ्नै HDFS निर्देशिका छ।
वास्तुकला
अब हामी Hive आर्किटेक्चरको सबैभन्दा महत्त्वपूर्ण पक्षको बारेमा कुरा गर्नेछौं। Apache Hive को कम्पोनेन्टहरू निम्नानुसार छन्:
मेटास्टोर - यसले प्रत्येक तालिकाको बारेमा जानकारी ट्र्याक राख्छ, जस्तै यसको संरचना र स्थान। विभाजन मेटाडेटा पनि Hive मा समावेश छ। यसले ड्राइभरलाई क्लस्टरमा फैलिएको विभिन्न डाटा सेटहरूको प्रगति ट्र्याक राख्न अनुमति दिन्छ। डाटा परम्परागत RDBMS ढाँचामा भण्डारण गरिएको छ। हाइभ मेटाडेटा ड्राइभरका लागि डाटाको ट्र्याक कायम राख्नको लागि अत्यन्त महत्त्वपूर्ण छ। ब्याकअप सर्भरले नियमित आधारमा डाटा डुप्लिकेट गर्दछ ताकि डाटा हराएको अवस्थामा यसलाई पुन: प्राप्त गर्न सकिन्छ।
चालक - HiveQL कथनहरू चालकद्वारा प्राप्त हुन्छन्, जसले नियन्त्रकको रूपमा कार्य गर्दछ। सत्रहरू स्थापना गरेर, चालकले बयानको कार्यान्वयन सुरु गर्दछ। यसले कार्यकारीको जीवनकाल र प्रगतिको ट्रयाक राख्छ। HiveQL स्टेटमेन्टको कार्यान्वयनको क्रममा, ड्राइभरले आवश्यक मेटाडेटा बचत गर्दछ। यसले घटाउने प्रक्रिया पछि डेटा वा क्वेरी परिणाम सङ्कलन बिन्दुको रूपमा पनि कार्य गर्दछ।
कम्पाइलर - यसले HiveQL क्वेरी संकलनलाई कार्यान्वयन गर्दछ। क्वेरी अब कार्यान्वयन योजनामा रूपान्तरण गरिएको छ। कार्यहरू योजनामा सूचीबद्ध छन्। यसमा नतिजा प्राप्त गर्नका लागि MapReduce ले चाल्नु पर्ने चरणहरू पनि समावेश गर्दछ जुन क्वेरीद्वारा अनुवाद गरिएको हो। Hive's compiler (AST) द्वारा क्वेरीलाई एब्स्ट्र्याक्ट सिन्ट्याक्स ट्रीमा रूपान्तरण गरिएको छ। अनुकूलता र कम्पाइल-टाइम गल्ती (DAG) को लागि जाँच गरेपछि AST लाई निर्देशित एसाइक्लिक ग्राफमा रूपान्तरण गर्दछ।
अनुकूलक - यसले कार्यान्वयन योजनामा विभिन्न परिवर्तनहरू प्रदर्शन गरेर DAG लाई अप्टिमाइज गर्दछ। यसले सुधारिएको दक्षताका लागि रूपान्तरणहरू संयोजन गर्दछ, जस्तै जोड्ने पाइपलाइनलाई एकल जोड्नेमा बदल्ने। गति सुधार गर्न, अप्टिमाइजरले गतिविधिहरू विभाजन गर्न सक्छ, जस्तै घटाउने कार्य गर्नु अघि डेटामा रूपान्तरण लागू गर्ने।
कार्यकारी - कम्पाइलेशन र अप्टिमाइजेसन समाप्त भएपछि कार्यकारीले कार्यहरू चलाउँछ। कार्यहरू कार्यकारी द्वारा पाइपलाइन छन्।
CLI, UI, र Thrift सर्भर - कमाण्ड-लाइन इन्टरफेस (CLI) एक प्रयोगकर्ता इन्टरफेस हो जसले बाह्य प्रयोगकर्तालाई Hive सँग सञ्चार गर्न अनुमति दिन्छ। Hive को थ्रिफ्ट सर्भर, JDBC वा ODBC प्रोटोकलहरू जस्तै, बाह्य ग्राहकहरूलाई Hive सँग नेटवर्क मार्फत सञ्चार गर्न अनुमति दिन्छ।
सुरक्षा
Apache Hive Hadoop सुरक्षासँग एकीकृत छ, जसले क्लाइन्ट-सर्भर आपसी प्रमाणीकरणको लागि Kerberos प्रयोग गर्दछ। HDFS ले Apache Hive मा भर्खरै उत्पन्न गरिएका फाइलहरूको लागि अनुमतिहरू निर्धारण गर्दछ, तपाईंलाई प्रयोगकर्ता, समूह र अन्यहरूद्वारा अनुमोदन गर्न अनुमति दिन्छ।
मुख्य विशेषताहरु
- Hive ले बाह्य तालिकाहरूलाई समर्थन गर्दछ, जसले तपाईंलाई HDFS मा भण्डारण नगरीकन डाटा प्रशोधन गर्न दिन्छ।
- यसले गति बढाउनको लागि तालिका स्तरमा डेटा विभाजनलाई पनि सक्षम बनाउँछ।
- Apache Hive उत्कृष्ट रूपमा Hadoop को निम्न-स्तर इन्टरफेस आवश्यकता पूरा गर्दछ।
- Hive ले डेटा सारांश, क्वेरी, र विश्लेषण सजिलो बनाउँछ।
- HiveQL लाई कुनै प्रोग्रामिङ कौशल आवश्यक पर्दैन; SQL प्रश्नहरूको सरल बुझाइ पर्याप्त छ।
- हामी डेटा विश्लेषणको लागि एड-हक प्रश्नहरू सञ्चालन गर्न Hive प्रयोग गर्न सक्छौं।
- यो मापनयोग्य, परिचित, र अनुकूलनीय छ।
- HiveQL लाई कुनै प्रोग्रामिङ कौशल आवश्यक पर्दैन; SQL प्रश्नहरूको सरल बुझाइ पर्याप्त छ।
लाभ
Apache Hive ले दिनको अन्तिम रिपोर्टहरू, दैनिक लेनदेन मूल्याङ्कनहरू, तदर्थ खोजहरू, र डेटा विश्लेषणको लागि अनुमति दिन्छ। Apache Hive द्वारा प्रदान गरिएको व्यापक अन्तर्दृष्टिले महत्त्वपूर्ण प्रतिस्पर्धात्मक लाभहरू दिन्छ र तपाईंलाई बजार मागहरूको प्रतिक्रिया दिन सजिलो बनाउँछ।
यस्ता जानकारी सजिलै उपलब्ध हुनुका केही फाइदाहरू यहाँ छन्:
- प्रयोग मा सजिलो - यसको SQL-जस्तो भाषाको साथ, क्वेरी डेटा बुझ्नको लागि सरल छ।
- द्रुत डेटा सम्मिलन - किनभने Apache Hive ले तालिका प्रकार वा स्कीमा परिभाषा प्रमाणित नगरी स्किमा पढ्छ, डाटाबेसको आन्तरिक ढाँचामा डिस्कमा डाटा पढ्न, पार्स, र क्रमबद्ध गरिनु पर्दैन। यसको विपरित, परम्परागत डाटाबेसमा, डाटा प्रत्येक पटक थप्दा मान्य हुनुपर्छ।
- उत्कृष्ट स्केलेबिलिटी, लचिलोपन, र लागत-प्रभावकारिता - किनभने डाटा HDFS मा भण्डारण गरिएको छ, Apache Hive ले डाटाको 100s पेटाबाइटहरू समात्न सक्छ, यसलाई सामान्य डाटाबेस भन्दा धेरै स्केलेबल विकल्प बनाउँदछ। Apache Hive, क्लाउड-आधारित Hadoop सेवाको रूपमा, ग्राहकहरूलाई परिवर्तनशील कार्यभारहरू पूरा गर्न भर्चुअल सर्भरहरू द्रुत रूपमा स्पिन गर्न अनुमति दिन्छ।
- व्यापक कार्य क्षमता - ठूला डाटासेटहरूले प्रति घण्टा 100,000 प्रश्नहरू ह्यान्डल गर्न सक्छन्।
सीमितता
- सामान्यतया, Apache Hive क्वेरीहरूको धेरै उच्च विलम्बता हुन्छ।
- Subquery समर्थन सीमित छ।
- वास्तविक-समय प्रश्नहरू र पङ्क्ति-स्तर परिवर्तनहरू Apache Hive मा उपलब्ध छैनन्।
- भौतिक विचारहरूको लागि कुनै समर्थन छैन।
- Hive मा, अद्यावधिक र मेटाउने कार्यहरू समर्थित छैनन्।
- OLTP (अनलाइन संक्रमणकालीन प्रक्रिया) को लागी अभिप्रेत छैन।
Apache Hive को साथ सुरु गर्दै
Apache Hive एक बलियो Hadoop साझेदार हो जसले तपाइँको कार्यप्रवाहलाई सरल र सुव्यवस्थित गर्दछ। Apache Hive बाट धेरै भन्दा धेरै प्राप्त गर्न, निर्बाध एकीकरण आवश्यक छ। पहिलो चरणमा जानु हो वेबसाइट.
1. एक स्थिर रिलीजबाट स्थापना Hive
Apache डाउनलोड मिररहरू मध्ये एकबाट Hive को सबैभन्दा हालको स्थिर रिलीज डाउनलोड गरेर सुरू गर्नुहोस् (हेर्नुहोस्। Hive विज्ञप्ति)। टारबल त्यसपछि अनप्याक हुनुपर्छ। यसले hive-xyz भनिने सबफोल्डर सिर्जना गर्नेछ (जहाँ xyz रिलीज नम्बर हो):
स्थापना डाइरेक्टरीमा पोइन्ट गर्न वातावरण चर HIVE_HOME सेट गर्नुहोस्:
अन्तमा, आफ्नो मा $HIVE_HOME/bin थप्नुहोस् PATH
:
2. चलिरहेको Hive
Hive प्रयोग गर्दछ Hadoop, त्यसैले:
- तपाईं आफ्नो बाटो मा Hadoop हुनुपर्छ वा
3. DLL सञ्चालन
Hive तालिका सिर्जना गर्दै
दुई स्तम्भहरू भएको पोक्स नामको तालिका उत्पन्न गर्दछ, जसको पहिलो पूर्णांक र दोस्रो स्ट्रिङ हो।
तालिकाहरू मार्फत ब्राउज गर्दै
सबै तालिकाहरू सूचीबद्ध गर्दै
परिवर्तन र छाड्ने तालिकाहरू
तालिका नामहरू परिवर्तन गर्न सकिन्छ र स्तम्भहरू थप्न वा बदल्न सकिन्छ:
यो नोट गर्न लायक छ कि REPLACE COLUMNS ले सबै अवस्थित स्तम्भहरूलाई प्रतिस्थापन गर्दछ जबकि केवल तालिकाको संरचना परिवर्तन गर्दछ र डेटा होइन। तालिकामा नेटिभ SerDe प्रयोग गर्नुपर्छ। REPLACE COLUMNS लाई तालिकाको स्कीमाबाट स्तम्भहरू हटाउन पनि प्रयोग गर्न सकिन्छ:
ड्रपिङ टेबलहरू
Apache Hive मा धेरै अतिरिक्त अपरेशनहरू र सुविधाहरू छन् जुन तपाईंले आधिकारिक वेबसाइटमा गएर सिक्न सक्नुहुन्छ।
निष्कर्ष
Hive परिभाषा अपाचे Hadoop को शीर्ष मा निर्मित विशाल डेटासेटहरूको लागि क्वेरी र विश्लेषणको लागि डाटा प्रोग्राम इन्टरफेस हो। पेशेवरहरूले यसलाई अन्य कार्यक्रमहरू, उपकरणहरू, र सफ्टवेयरहरूमा छनौट गर्छन् किनभने यो मुख्य रूपमा Hive विस्तृत डेटाको लागि डिजाइन गरिएको हो र प्रयोग गर्न सजिलो छ।
आशा छ यो ट्यूटोरियलले तपाईंलाई Apache Hive सँग किकस्टार्ट गर्न र तपाईंको कार्यप्रवाहहरूलाई अझ प्रभावकारी बनाउन मद्दत गर्दछ। हामीलाई टिप्पणीहरूमा थाहा दिनुहोस्।
जवाफ छाड्नुस्