2014-07-08 14 views
6

वर्तमान में हम शार्क का उपयोग करने वाले डेटा स्टोर के रूप में एक रिपोर्टिंग प्लेटफॉर्म बना रहे हैं। चूंकि शार्क के विकास को रोक दिया गया है, इसलिए हम स्पार्क एसक्यूएल का मूल्यांकन करने के चरण में हैं। उपयोग के मामलों के आधार पर हमारे पास कुछ प्रश्न हैं।स्पार्क एसक्यूएल जेडीबीसी समर्थन

1) हमारे पास विभिन्न स्रोतों (MySQL, Oracle, Cassandra, Mongo) से डेटा है। हम जानना चाहते हैं कि हम स्पार्क एसक्यूएल में यह डेटा कैसे प्राप्त कर सकते हैं? क्या कोई उपयोगिता मौजूद है जिसका हम उपयोग कर सकते हैं? क्या यह उपयोगिता डेटा के निरंतर ताज़ा करने का समर्थन करती है (एसक्यूएल स्पार्क में डेटा स्टोर पर नए ऐड/अपडेट/डिलीट की सिंक?

2) स्पार्क एसक्यूएल में एकाधिक डेटाबेस बनाने का एक तरीका है?

3) रिपोर्टिंग यूआई के लिए हम जैस्पर का उपयोग करते हैं, हम जैस्पर से स्पार्क एसक्यूएल से कनेक्ट करना चाहते हैं। जब हमने अपनी प्रारंभिक खोज की, तो हमें पता चला कि वर्तमान में जेडीबीसी के माध्यम से स्पार्क एसक्यूएल को कनेक्ट करने के लिए उपभोक्ता के लिए कोई समर्थन नहीं है, लेकिन भविष्य में रिलीज में आप इसे जोड़ना चाहते हैं। हम जानना चाहते हैं कि स्पार्क एसक्यूएल के पास एक स्थिर रिलीज होगा जिसमें जेडीबीसी सपोर्ट होगा? इस बीच हमने https://github.com/amplab/shark/tree/sparkSql से स्रोत कोड लिया लेकिन हमें इसे स्थानीय रूप से स्थापित करने और मूल्यांकन करने में कुछ कठिनाई हुई। यह बहुत अच्छा होगा अगर आप सेटअप निर्देशों के साथ हमारी मदद कर सकते हैं। (मैं जिस मुद्दे का सामना कर रहा हूं उसे साझा कर सकता हूं कृपया मुझे बताएं कि मैं त्रुटि लॉग कहां पोस्ट कर सकता हूं)

4) हमें एक एसक्यूएल प्रॉम्प्ट की भी आवश्यकता होगी जहां हम कर सकते हैं क्वेरी निष्पादित करें, वर्तमान में स्पार्क शैल एससीएएलएए प्रॉम्प्ट प्रदान करता है जहां एससीएएलए कोड से एससीएएलए कोड निष्पादित किया जा सकता है, हम एसक्यूएल प्रश्नों को फायर कर सकते हैं। शार्क की तरह हम स्पार्क एसक्यूएल में एसक्यूएल प्रॉम्प्ट करना चाहते हैं। जब हमने अपनी खोज की तो हमने पाया कि भविष्य में स्पार्क की रिहाई में इसे जोड़ा जाएगा। यह बहुत अच्छा होगा अगर आप हमें बता सकें कि स्पार्क की कौन सी रिलीज इसे संबोधित करेगी।

+0

हाय, मैं अपाचे स्पार्क से डेटा को mysql में स्टोर करने की कोशिश कर रहा हूं। क्या आपको अपने प्रश्न का कोई समाधान मिला है? यदि हाँ, क्या आप कृपया स्पार्क और MySQL के बीच संचार स्थापित करने के तरीके साझा कर सकते हैं? यह मेरे लिए एक बड़ी मदद होगी। धन्यवाद –

उत्तर

1

मैं जवाब कर सकते हैं (1):

अपाचे Sqoop रिलेशनल डेटाबेस के लिए इस समस्या को हल करने के लिए विशेष रूप से बनाया गया था। यह उपकरण एचडीएफएस, एचबीएएस, और हाइव के लिए बनाया गया था - क्योंकि इसका उपयोग एचडीएफएस और हाइव मेटास्टोर के माध्यम से स्पार्क को डेटा उपलब्ध कराने के लिए किया जा सकता है।

http://sqoop.apache.org/

मेरा मानना ​​है कि कैसेंड्रा DataStax से इस कनेक्टर के माध्यम से SparkContext लिए उपलब्ध है: https://github.com/datastax/spark-cassandra-connector - जो मैं इस्तेमाल कभी नहीं किया है।

मुझे मोंगोडीबी के किसी भी कनेक्टर से अवगत नहीं है।

0

स्पार्क एसक्यूएल स्पार्क ढांचे की एक क्षमता है। इसकी तुलना शार्क से नहीं की जानी चाहिए क्योंकि शार्क एक सेवा है। (याद रखें कि शार्क के साथ, आप एक थ्रिफ्टसेवर चलाते हैं जिसे आप अपने थ्रिफ्ट ऐप या यहां तक ​​कि ओडीबीसी से कनेक्ट कर सकते हैं।)

क्या आप "स्पार्क एसक्यूएल में यह डेटा प्राप्त करने" के बारे में बता सकते हैं?

2
के लिए

3) स्पार्क 1.1 SparkSQL ThriftServer इंटरफ़ेस है, जो आप JDBC इंटरफ़ेस के लिए उपयोग कर सकते हैं के लिए बेहतर समर्थन प्रदान करता है के रूप में

। वी। 0.12.0 का समर्थन करने वाले एचआईवी जेडीबीसी क्लाइंट ऐसे सर्वर से कनेक्ट और इंटरफेस करने में सक्षम हैं।

4) स्पार्क 1.1 स्पार्कएसक्यूएल सीएलआई इंटरफ़ेस भी प्रदान करता है जिसका उपयोग क्वेरी में प्रवेश के लिए किया जा सकता है। उसी तरह से हाइव सीएलआई या इंपला शैल।

कृपया, 1 और 2 के लिए प्राप्त करने की कोशिश कर रहे हैं के बारे में अधिक जानकारी प्रदान करें।

1

1) हम विभिन्न स्रोतों (MySQL, ओरेकल, कैसेंड्रा, मोंगो)

आप प्रत्येक मामले के लिए अलग-अलग ड्राइवर का उपयोग करने के लिए है से डेटा है। कैसंद्रा के लिए datastax driver है (लेकिन मुझे स्पार्कएसक्यूएल के साथ कुछ संगतता समस्याओं का सामना करना पड़ा)। किसी भी SQL सिस्टम के लिए आप जेडीबीसीआरडीडी का उपयोग कर सकते हैं। उपयोग सरल है, the scala example को देखो:

test("basic functionality") { 
    sc = new SparkContext("local", "test") 
    val rdd = new JdbcRDD(
     sc, 
    () => { DriverManager.getConnection("jdbc:derby:target/JdbcRDDSuiteDb") }, 
     "SELECT DATA FROM FOO WHERE ? <= ID AND ID <= ?", 
     1, 100, 3, 
     (r: ResultSet) => { r.getInt(1) }).cache() 

    assert(rdd.count === 100) 
    assert(rdd.reduce(_+_) === 10100) 
    } 

लेकिन धारणा है कि यह सिर्फ एक RDD है, ताकि आप के माध्यम से इस डेटा के साथ काम करना चाहिए API में नक्शे-कम करने, SQLContext में नहीं।

क्या कोई उपयोगिता मौजूद है जिसका हम उपयोग कर सकते हैं?

अपाचे स्क्वाप परियोजना है लेकिन यह सक्रिय विकास स्थिति में है। वर्तमान स्थिर संस्करण भी लकड़ी के प्रारूप में फ़ाइलों को सहेजता नहीं है। MongoDB कनेक्टर्स -

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