2015-07-24 10 views
19

स्पार्कएसक्यूएल सीएलआई आंतरिक रूप से हिवेक्यूएल का उपयोग करता है और स्पार्क (हाइव -7292) पर हाइव के मामले में, हाइव बैकएंड इंजन के रूप में स्पार्क का उपयोग करता है। क्या कोई और प्रकाश डाल सकता है, वास्तव में ये दोनों परिदृश्य अलग-अलग हैं और दोनों दृष्टिकोणों के पेशेवर और विपक्ष कैसे हैं?स्पार्क एसक्यूएल बनाम स्पार्क पर हाइव - अंतर और पेशेवरों और विपक्ष?

उत्तर

5

डाटाबेस से blog देखें। हालांकि बहुत विस्तार से नहीं, यह इसके पीछे के इतिहास और किस चीज का उपयोग करने के बारे में बात करता है।

11
  1. जब SparkSQL छत्ता का उपयोग करता

    SparkSQL HiveMetastore उपयोग कर सकते हैं HDFS में संग्रहीत डेटा के मेटाडाटा को प्राप्त करने के लिए। यह मेटाडाटा SparkSQL को निष्पादित क्वेरी के बेहतर अनुकूलन करने में सक्षम बनाता है। यहां स्पार्क क्वेरी प्रोसेसर है।

  2. हाइव स्पार्क See the JIRA entry: HIVE-7292

    यहाँ डेटा चिंगारी के माध्यम से पहुँचा जा सकता है का उपयोग करता है। और हाइव क्वेरी प्रोसेसर है। इसलिए हमारे पास लाभ लेने के लिए स्पार्क कोर की सभी विनम्र विशेषताएं हैं। लेकिन इस हाइव के लिए एक बड़ा सुधार वहाँ हाइव का उपयोग किए बिना SparkSQL

    SparkSQL उपयोग के साथ डेटा की प्रक्रिया करने के लिए एक तीसरा विकल्प है और अभी भी "प्रगति में" 2 फ़र, 2016

  3. के रूप में। यहां स्पार्क एसक्यूएल को हाइव मेटास्टोर से मेटाडेटा तक पहुंच नहीं है। और प्रश्न धीमे चलते हैं। मैंने विकल्प 1 और 3 की तुलना में कुछ प्रदर्शन परीक्षण किए हैं। परिणाम here हैं।

+0

3 विकल्प अगर SparkSQL छत्ता metastore उपयोग नहीं करता है में (जो डिफ़ॉल्ट रूप से डर्बी है या mysql हो सकता है), तो हम साथ ही जैसे हम हाइव के लिए क्या करने का उपयोग SparkSQL के लिए सेटअप metastore की जरूरत है? –

+1

स्पार्कएसक्यूएल के लिए मेटास्टोर सेट करने की आवश्यकता नहीं है। SparkSQL कई तरीकों से इस्तेमाल किया जा सकता है। लेकिन इस विकल्प में, मेटास्टोर सेटअप की आवश्यकता नहीं है। हाइव मेटास्टोर कनेक्शन स्थापित किए बिना भी, हम स्पार्कस्क्ल-क्ली से हाइव कॉन्टेक्स्ट क्लास का उपयोग कर सकते हैं। इस अवधारणा को देखने का एक और तरीका: स्पार्कएसक्यूएल अन्य डेटा स्रोतों जैसे सीएसवी फाइलों का उपयोग कर सकता है, जहां मेटास्टोर अवधारणा प्रासंगिक नहीं है। – prajod

+0

यदि मेटास्टोर की आवश्यकता नहीं है तो स्पार्क एसक्यूएल टेबल के मेटाडेटा का ट्रैक कैसे रखता है। इसे कहीं भी उस जानकारी को स्टोर करना होगा। अगर यह HiveContext की मदद लेता है तो इसका मतलब है कि यह अभी भी हाइव मेटास्टोर पर भरोसा करता है। –

8

SparkSQL बनाम स्पार्क एपीआई आप बस कल्पना कर सकते हैं आप आरडीबीएमएस दुनिया में कर रहे हैं:

SparkSQL शुद्ध एसक्यूएल है, और स्पार्क एपीआई संग्रहीत प्रक्रिया लेखन के लिए भाषा का है

हाइव स्पार्क पर SparkSQL के समान है , यह एक शुद्ध एसक्यूएल इंटरफ़ेस है जो स्पार्क को निष्पादन इंजन के रूप में उपयोग करता है, स्पार्कएसक्यूएल हाइव के सिंटैक्स का उपयोग करता है, इसलिए एक भाषा के रूप में, मैं कहूंगा कि वे लगभग समान हैं।

लेकिन हाइव स्पार्क पर छत्ता सुविधाओं, विशेष रूप से hiveserver2 और सुरक्षा सुविधाओं के लिए एक बहुत अच्छा समर्थन हासिल है, SparkSQL में छत्ता सुविधाओं वहाँ SparkSQL में एक hiveserver2 impl है, लेकिन नवीनतम रिलीज संस्करण (1.6.x) में, वास्तव में गाड़ी है, SparkSQL में hiveserver2 अब hivevar और hiveconf तर्क के साथ काम नहीं करता है, और JDBC के माध्यम से प्रवेश के लिए उपयोगकर्तानाम या तो काम नहीं करता है ...

देख https://issues.apache.org/jira/browse/SPARK-13983

मुझे विश्वास चिंगारी परियोजना में छत्ता समर्थन वास्तव में बहुत कम है प्राथमिकता सामान ...

दुर्भाग्य से स्पार्क इंटीग्रेटियो पर हाइव n कि आसान नहीं है, निर्भरता संघर्ष का एक बहुत देखते हैं ... इस तरह के https://issues.apache.org/jira/browse/HIVE-13301

और, जब मैं चिंगारी एकीकरण के साथ छत्ता कोशिश कर रहा हूँ, डिबग प्रयोजन के लिए के रूप में, मैं हमेशा इस तरह छत्ता CLI शुरू कर:

export HADOOP_USER_CLASSPATH_FIRST=true 
bin/hive --hiveconf hive.root.logger=DEBUG,console 

हमारी आवश्यकता एक सुरक्षित तरीका (प्रमाणीकरण और प्राधिकरण के साथ) में hiveserver2 साथ चिंगारी उपयोग कर रहा है, वर्तमान में SparkSQL अकेले इस प्रदान नहीं कर सकते, हम स्पार्क पर रेंजर/संतरी + हाइव का उपयोग कर रहे हैं।

आशा है कि यह मदद कर सकता है एक बेहतर विचार किस दिशा तुम्हें जाना चाहिए प्राप्त करने के लिए।

+0

धन्यवाद! बहुत सराहना की। –

0
यहाँ

जवाब मैं छत्ता आधिकारिक वेबसाइट में मिल संबंधित है:
1.3 शार्क के साथ तुलना और SQL स्पार्क स्पार्क पारिस्थितिकी तंत्र में दो संबंधित परियोजनाओं कि स्पार्क पर हाइव QL सहायता प्रदान कर रहे हैं: शार्क और SQL स्पार्क। ● शार्क प्रोजेक्ट हाइव द्वारा उत्पन्न अपने स्वयं के प्रतिनिधित्व में क्वेरी योजनाओं का अनुवाद करता है और उन्हें स्पार्क पर निष्पादित करता है। ● स्पार्क एसक्यूएल स्पार्क में एक विशेषता है। यह दृश्यपटल हाइव QL सहायता प्रदान करने के रूप में हाइव के पार्सर का उपयोग करता है। स्पार्क एप्लिकेशन डेवलपर को आसानी से अपने कोड में एसक्यूएल में अपने डाटा प्रोसेसिंग तर्क है, साथ ही अन्य स्पार्क ऑपरेटरों, व्यक्त कर सकते हैं। स्पार्क एसक्यूएल हाइव तुलना में एक अलग उपयोग के मामले का समर्थन करता है।

शार्क और स्पार्क एसक्यूएल की तुलना में, डिजाइन द्वारा हमारा दृष्टिकोण हाइव क्यूएल (और भविष्य के विस्तार) सहित सभी मौजूदा हाइव सुविधाओं का समर्थन करता है, और हाइव का प्रमाणीकरण, निगरानी, ​​लेखा परीक्षा और अन्य परिचालन उपकरण के साथ एकीकरण का समर्थन करता है।

3. हाइव-लेवल डिज़ाइन जैसा कि परिचय में उल्लेख किया गया है, यह प्रोजेक्ट शार्क या स्पार्क एसक्यूएल से अलग दृष्टिकोण लेता है, इस अर्थ में कि हम स्पार्क के प्राइमेटिव का उपयोग करके एसक्यूएल सेमेन्टिक्स को लागू नहीं करेंगे। इसके विपरीत, हम इसे MapReduce पुरातन का उपयोग कर को लागू करेगा। यहाँ केवल नए बात यह है कि इन MapReduce पुरातन स्पार्क में निष्पादित किया जाएगा है। वास्तव में, केवल एक चिंगारी की पुरातन की कुछ इस डिजाइन में इस्तेमाल किया जाएगा।

स्पार्क पर हाइव के MapReduce पुरातन को क्रियान्वित करने के दृष्टिकोण है कि क्या शार्क या स्पार्क एसक्यूएल करता है निम्नलिखित प्रत्यक्ष फायदे से अलग है: 1.Spark उपयोगकर्ताओं को स्वचालित रूप हाइव की समृद्ध सुविधाओं के पूरे सेट, किसी भी नई सुविधाओं सहित मिल जाएगा कि हाइव भविष्य में परिचय हो सकता है। 2. इस दृष्टिकोण से बचा जाता है या हाइव के स्पार्क निष्पादन इंजन में किसी भी अनुकूलन काम करने की आवश्यकता कम कर देता है।
3.It भी परियोजना के विस्तार को सीमित और हाइव-ऑन-स्पार्क रखने हाइव MapReduce और तेज़ करने के लिए अनुकूल द्वारा दीर्घकालिक रखरखाव कम हो जाएगा।

संबंधित मुद्दे