2015-05-21 26 views
18

मेरे पास स्पार्क नौकरी है जो एक स्रोत तालिका पढ़ती है, कई नक्शा/फ़्लैटन/संचालन को कम करती है और फिर परिणाम को एक अलग तालिका में संग्रहीत करती है जिसका हम रिपोर्टिंग के लिए उपयोग करते हैं। वर्तमान में यह नौकरी spark-submit स्क्रिप्ट का उपयोग कर मैन्युअल रूप से चलाया जाता है। मैं इसे हर रात चलाने के लिए शेड्यूल करना चाहता हूं ताकि परिणाम दिन की शुरुआत के लिए पूर्व-आबादी वाले हों। क्या मैं:अनुसूचित स्पार्क नौकरी चलाना

  1. spark-submit स्क्रिप्ट को कॉल करने के लिए क्रॉन नौकरी सेट अप करें?
  2. मेरी नौकरी कक्षा में शेड्यूलिंग जोड़ें, ताकि यह एक बार सबमिट किया जाए लेकिन हर रात कार्रवाई करता है?
  3. क्या स्पार्क में एक अंतर्निहित तंत्र है या एक अलग लिपि है जो मुझे ऐसा करने में मदद करेगी?

हम स्टैंडअलोन मोड में स्पार्क चला रहे हैं।

किसी भी सुझाव की सराहना की!

+1

'cron' मेरे लिए काफी उचित लगता है। – maasg

+0

http://bytepadding.com/big-data/spark/how-to-submit-spark-job-through-oozie/ ओज़ी के माध्यम से नौकरी कैसे सबमिट करें। – KrazyGautam

उत्तर

7

स्पार्क में कोई अंतर्निहित तंत्र नहीं है जो मदद करेगा। एक क्रॉन नौकरी आपके मामले के लिए उचित लगता है। यदि आप स्वयं को नियत नौकरी पर लगातार निर्भरता जोड़ते हैं, तो Azkaban आज़माएं।

9

आप एक क्रॉन टैब का उपयोग कर सकते हैं, लेकिन वास्तव में जब आप स्पार्क नौकरियां शुरू करते हैं जो अन्य स्पार्क नौकरियों पर निर्भर करते हैं तो मैं समन्वय के लिए पिनबॉल की सिफारिश करता हूं। https://github.com/pinterest/pinball

काम कर रहे इस तरह के रूप

#!/bin/bash 
cd /locm/spark_jobs 

export SPARK_HOME=/usr/hdp/2.2.0.0-2041/spark 
export HADOOP_CONF_DIR=/etc/hadoop/conf 
export HADOOP_USER_NAME=hdfs 
export HADOOP_GROUP=hdfs 

#export SPARK_CLASSPATH=$SPARK_CLASSPATH:/locm/spark_jobs/configs/* 

CLASS=$1 
MASTER=$2 
ARGS=$3 
CLASS_ARGS=$4 
echo "Running $CLASS With Master: $MASTER With Args: $ARGS And Class Args: $CLASS_ARGS" 

$SPARK_HOME/bin/spark-submit --class $CLASS --master $MASTER --num-executors 4 --executor-cores 4 $ARGS spark-jobs-assembly*.jar $CLASS_ARGS >> /locm/spark_jobs/logs/$CLASS.log 2>&1 

फिर से

  1. crontab -e
  2. सम्मिलित 30 1 * * */पथ एक crontab बनाने मैं आवरण स्क्रिप्ट बनाने हैं एक सरल crontab प्राप्त करने के लिए /TO/SCRIPT.sh $ क्लास "यार्न-क्लाइंट"
+0

अच्छा, मैं पिनबॉल भर पहले नहीं आए हैं, मैं इसे बाहर की जाँच करेंगे। एक बिल्कुल नई परियोजना की तरह दिखता है - क्या आपको पता है कि यह स्थिर/उत्पादन गुणवत्ता है या नहीं? – Matt

+1

, देव में यह मूल्यांकन करने की प्रक्रिया में थे, हालांकि मैं जानता हूँ Pinterest उत्पादन में इसे इस्तेमाल करता है तो मैं कहूंगा कि यह होना चाहिए कुछ stable.That ने कहा कि यह Pinterest करने के मामलों का उपयोग अनुरूप होना जा रहा है चाहता हूँ। एक दूसरे पर https://github.com/spotify/luigi है देख रहे थे मैं अगर यह यह हमारे लिए उत्पादों के लिए बनाता सवाल अद्यतन करेगा। –

+0

सुविधाजनक उर्फ: "/ usr/HDP/वर्तमान/चिंगारी से ग्राहक/bin/चिंगारी के लिये भेज" – xgMz

3

क्रोंटैब केवल इतना अच्छा है I एफ आपको उच्च उपलब्धता की परवाह नहीं है, क्योंकि यह एक ऐसी मशीन पर चलेगा जो असफल हो सकती है।

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

क्रोंटैब का एक विकल्प (हालांकि यह इस समय उच्च उपलब्धता के मुद्दों से ग्रस्त है) एयरबैन के एयरफ्लो है। यह इस तरह के उपयोग मामलों के लिए बनाया गया था (दूसरों के बीच) यहां देखें: http://airflow.incubator.apache.org/scheduler.html

मेसोस उपयोगकर्ता क्लोनर्स का उपयोग करने का प्रयास कर सकते हैं जो क्लस्टर के लिए क्रॉन जॉब है: https://github.com/mesos/chronos

ओज़ी भी है जो हैडोप दुनिया http://blog.cloudera.com/blog/2013/01/how-to-schedule-recurring-hadoop-jobs-with-apache-oozie/ से आता है।

यदि यह एक मिशन महत्वपूर्ण है, तो आप इसे स्वयं प्रोग्राम भी कर सकते हैं यदि आप कंसुल/जुकेपर या अन्य चुनावों का उपयोग करते हैं जो लीडर चुनाव प्रदान करते हैं - बस अपनी प्रक्रियाएं कई मशीनों पर चलती हैं, क्या वे नेतृत्व पर प्रतिस्पर्धा करते हैं और नेता को सुनिश्चित करते हैं स्पार्क को नौकरी जमा करता है।

आप काम प्रस्तुत करने और अधिक सुरुचिपूर्ण बनाने के लिए चिंगारी काम सर्वर का उपयोग कर सकते हैं: https://github.com/spark-jobserver/spark-jobserver

+0

वायु प्रवाह के लिए एक महान हालांकि है, वायु प्रवाह नहीं स्पार्क स्ट्रीमिंग या तूफान अंतरिक्ष में, यह Oozie या Azkaban के लिए और अधिक तुलनीय है। –

+0

प्रश्न बैच नौकरी स्ट्रीमिंग नहीं करता है, इसलिए वायु प्रवाह सही उपकरण है। –

3

सबसे मानक अनुसूचक कि अपाचे Hadoop के सभी वितरण के साथ आता है Oozie है।

https://oozie.apache.org/docs/4.2.0/DG_SparkActionExtension.html

मेरे अनुभव शुरू में अपने में थोड़ा XML के साथ काम करने के लिए कड़ी मेहनत एक बार आप इसे का उपयोग करना सीख मिलता है, यह एक आकर्षण की तरह काम करता है।

+0

क्या यह समय-समय पर नौकरी चलाने का समर्थन करता है? मुझे ओजी वर्कफ़्लो या गुण फ़ाइल में अवधि/अंतराल पैरामीटर दिखाई नहीं देता है –

1

आप सभ्य यूआई स्क्रीन के साथ जॉब के समयबद्धन के Rundeck का उपयोग काम विफलताओं और अधिसूचना का प्रबंधन कर सकते हैं।

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