2015-01-30 28 views
8

पर प्रसंस्करण प्रसंस्करण प्रसंस्करण किया है। मेरे पास संसाधन प्रबंधक के रूप में यार्न का उपयोग करके क्लॉडर सीडीएच 5.3 क्लस्टर पर स्पार्क चल रहा है। मैं पाइथन (पायस्पार्क) में स्पार्क ऐप्स विकसित कर रहा हूं।पीईएसपार्क ने एक यार्न क्लस्टर

मैं नौकरियां जमा कर सकता हूं और वे सफलतापूर्वक दौड़ते हैं, हालांकि वे कभी भी एक से अधिक मशीन (स्थानीय मशीन I से सबमिट नहीं) पर चलते हैं।

मैंने विभिन्न विकल्पों की कोशिश की है, जैसे कि क्लस्टर के लिए तैनाती मोड और यार्न-क्लाइंट और यार्न-क्लस्टर के लिए - अभी तक यह एक से अधिक सर्वर पर नहीं चल रहा है।

मैं इसे --मास्टर स्थानीय [8] जैसे कुछ पास करके एक से अधिक कोर पर चलाने के लिए प्राप्त कर सकता हूं, लेकिन यह स्पष्ट रूप से एकाधिक नोड्स पर प्रसंस्करण को वितरित नहीं करता है।

मैं बहुत तरह HDFS से एक बहुत ही बस पायथॉन लिपि डाटा प्रोसेसिंग है:

import simplejson as json 
from pyspark import SparkContext 
sc = SparkContext("", "Joe Counter") 

rrd = sc.textFile("hdfs:///tmp/twitter/json/data/") 

data = rrd.map(lambda line: json.loads(line)) 

joes = data.filter(lambda tweet: "Joe" in tweet.get("text","")) 

print joes.count() 

और मैं की तरह एक आदेश प्रस्तुत चला रहा हूँ:

spark-submit atest.py --deploy-mode client --master yarn-client 

क्या मैं नौकरी रन सुनिश्चित करने के लिए क्या कर सकते हैं क्लस्टर में समानांतर में?

उत्तर

8

क्या आप आदेश के लिए तर्कों को स्वैप कर सकते हैं? atest.py

--master यार्न-ग्राहक --deploy मोड ग्राहक चिंगारी सबमिट करें आदेश के लिए मदद टेक्स्ट देखते हैं:

Usage: spark-submit [options] <app jar | python file> 
-2

ऐसा लगता है कि स्पास्कार्क स्पार्क/यार्न का उपयोग करके वितरित मोड में नहीं चलता है - आपको स्पार्क मास्टर सर्वर के साथ स्टैंड-अलोन स्पार्क का उपयोग करने की आवश्यकता है। उस स्थिति में, मेरी पायस्पार्क लिपि क्लस्टर में प्रति कोर/नोड के पाइथन प्रक्रिया के साथ बहुत अच्छी तरह से दौड़ गई।

+4

मुझे लगता है कि यह सच नहीं है, Pyspark एक यार्न क्लस्टर पर चला सकते हैं। –

+0

यदि आप Pyspark चलाने के लिए चाहते हैं। आज़माएं: pyspark --deploy-mode क्लाइंट --मास्टर यार्न-क्लाइंट – kennyut

4

मेरा मानना ​​है कि चिंगारी के लिये भेज @ श्री क्रिस्टीन सही है - आपके द्वारा निर्दिष्ट विकल्प झंडे को आपकी पाइथन लिपि में पास किया जा रहा है, न कि स्पार्क-सबमिट करने के लिए। इसके अतिरिक्त, आप --executor-cores और --num-executors निर्दिष्ट करना चाहते हैं क्योंकि डिफ़ॉल्ट रूप से यह एक कोर पर चलाएगा और दो निष्पादकों का उपयोग करेगा।

0

यह सच नहीं है कि पाइथन स्क्रिप्ट क्लस्टर मोड में नहीं चलती है। मुझे पिछले संस्करणों के बारे में निश्चित नहीं है लेकिन यह हॉर्टनवर्क्स क्लस्टर पर स्पार्क 2.2 संस्करण में निष्पादित है।

कमान: चिंगारी के लिये भेज --master यार्न --num-निष्पादकों 10 --executor-कोर 1 --driver स्मृति 5G /pyspark-example.py

अजगर कोड:

from pyspark import SparkConf, SparkContext 
from pyspark.sql import SQLContext 

conf = (SparkConf() 
     .setMaster("yarn") 
     .setAppName("retrieve data")) 
sc = SparkContext(conf = conf) 

sqlContext = SQLContext(sc) 
parquetFile = sqlContext.read.parquet("/<hdfs-path>/*.parquet") 

parquetFile.createOrReplaceTempView("temp") 
df1 = sqlContext.sql("select * from temp limit 5") 
df1.show() 
df1.write.save('/<hdfs-path>/test.csv', format='csv', mode='append') 
sc.stop() 

आउटपुट: इसका बड़ा इसलिए मैं पेस्ट नहीं कर रहा हूं। लेकिन यह सही चलाता है।

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