2015-03-12 4 views
6

मूल शीर्षक: एचडीएफएस के अलावा, अन्य डीएफएस स्पार्क समर्थन (और पुनः संयोजित) क्या करता है?स्पार्क और लोचदार खोज-हडूप का उपयोग करके आप अलग-अलग लोचदार खोज क्लस्टर में कैसे पढ़ते हैं और लिखते हैं?

मैं खुशी से स्पार्क और लोचदार खोज (elasticsearch-hadoop ड्राइवर के साथ) कई विशाल समूहों के साथ खुशी से उपयोग कर रहा हूं।

समय-समय पर, मैं डेटा के पूरे समूह को खींचना चाहता हूं, प्रत्येक दस्तावेज़ को संसाधित करना चाहता हूं, और उन सभी को एक अलग Elasticsearch (ES) क्लस्टर (हाँ, डेटा माइग्रेशन भी) में डाल देना चाहता हूं।

वर्तमान में, क्लस्टर से आरडीडी में ईएस डेटा पढ़ने और आरडीडी को स्पार्क + लोचदार खोज-हडूप के साथ अलग-अलग में लिखने का कोई तरीका नहीं है, क्योंकि इसमें आरडीडी से SparkContext स्वैपिंग शामिल होगा। इसलिए मैं आरडीडी को ऑब्जेक्ट फाइलों में लिखना चाहता हूं और बाद में उन्हें SparkContext एस के साथ आरडीडी में वापस पढ़ना चाहता हूं।

हालांकि, यहां समस्या आती है: मुझे फिर अपने पूरे स्पार्क क्लस्टर में बड़ी फ़ाइलों को साझा करने के लिए एक डीएफएस (वितरित फ़ाइल सिस्टम) की आवश्यकता होती है। सबसे लोकप्रिय समाधान एचडीएफएस है, लेकिन मैं अपने ढेर में हडोप को पेश करने से बहुत ज्यादा बचूंगा। क्या कोई अन्य अनुशंसित डीएफएस है जो स्पार्क का समर्थन करता है?

अद्यतन नीचे

नीचे @Daniel Darabos के जवाब के लिए धन्यवाद, मैं अब पढ़ सकते हैं और निम्नलिखित स्काला कोड का उपयोग कर विभिन्न ElasticSearch समूहों में/से डेटा लिख ​​सकते हैं:

val conf = new SparkConf().setAppName("Spark Migrating ES Data") 
conf.set("es.nodes", "from.escluster.com") 

val sc = new SparkContext(conf) 

val allDataRDD = sc.esRDD("some/lovelydata") 

val cfg = Map("es.nodes" -> "to.escluster.com") 
allDataRDD.saveToEsWithMeta("clone/lovelydata", cfg) 

उत्तर

3

स्पार्क Hadoop का उपयोग करता है फ़ाइल एक्सेस के लिए सामान्य पुस्तकालय, इसलिए जो भी फाइल सिस्टम हैडोप समर्थन करता है स्पार्क के साथ काम करेगा। मैंने इसे एचडीएफएस, एस 3 और जीसीएस के साथ इस्तेमाल किया है।

मुझे यकीन नहीं है कि मैं समझता हूं कि आप केवल elasticsearch-hadoop का उपयोग क्यों नहीं करते हैं। आपके पास दो ईएस क्लस्टर हैं, इसलिए आपको उन्हें विभिन्न कॉन्फ़िगरेशन के साथ एक्सेस करने की आवश्यकता है। sc.newAPIHadoopFile और rdd.saveAsHadoopFilehadoop.conf.Configuration तर्क लें। तो आप बिना किसी समस्या के दो ईएस क्लस्टर का उपयोग SparkContext के साथ कर सकते हैं।

+1

प्रतिक्रिया के लिए धन्यवाद। मैं नए पढ़ने (sc.esRDD) का उपयोग कर रहा हूं और elasticsearch-hadoop द्वारा प्रस्तावित (rss.saveToEs) फ़ंक्शन लिख रहा हूं। इस तरह अलग क्लस्टर से पढ़ने और लिखने का कोई तरीका नहीं है। rdd.saveAsHadoopFile लाने के लिए धन्यवाद, मैं यह देखने के लिए देख रहा हूं कि मैं वहां से किसी भी तरह से जा सकता हूं। –

+1

आह, मुझे इन विधियों ('esRDD' और 'saveToEs') के बारे में पता नहीं था। मुझे लगता है कि वे एक 'सीएफजी: मानचित्र [स्ट्रिंग, स्ट्रिंग]' तर्क लेते हैं। क्या इसका उपयोग पढ़ने और लिखने के लिए अलग-अलग विन्यास प्रदान करने के लिए नहीं किया जा सकता है? –

+1

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

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