2015-04-17 16 views
6

Merhaba Bağımsız modda bir Spark kümem var, yani dizüstü bilgisayarımda bir Spark-master işlemi ve üç Spark-slave işlemi var (Spark aynı makinedeki küme.Spark sbin/klasöründe stop-all.sh işlevi tüm bağımlı düğümleri durdurmuyor

Master ve slave'lerin çalıştırılması sadece komutları Spark_Folder/sbin/start-master.sh ve Spark_Folder/sbin/stop-master.sh dizinlerinde çalıştırmaktır.

Bununla birlikte, Spark_Folder/sbin/stop-all.sh komutunu çalıştırdığımda, yalnızca bir master ve bir tane çalışmayı durduruyorum, çünkü üç slave çalışıyorum, stop-all.sh çalıştırdıktan sonra hala iki slave çalışıyorum. .

Senaryonun "stop-slaves.sh" içine kazmak ve aşağıda bulunan:

if [ "$SPARK_WORKER_INSTANCES" = "" ]; then 
    "$sbin"/spark-daemons.sh stop org.apache.spark.deploy.worker.Worker 1 
else 
    for ((i=0; i<$SPARK_WORKER_INSTANCES; i++)); do 
    "$sbin"/spark-daemons.sh stop org.apache.spark.deploy.worker.Worker $(($i + 1)) 
    done 
fi 

komut dosyası "SPARK_WORKER_INSTANCES" sayısına dayalı durdurma gibi görünüyor. Ama sayı olmayan bir isim kullanarak köle başlatırsam ne olur?

Ve tüm kıvılcım kümesini tek bir tıklamayla kapatma fikri var mı? ("Pkill -f kıvılcımı *" yi çalıştırmayı biliyorum))).

cevap

6

Sadece çözüm çözmek:

"SPARK_WORKER_INSTANCES = 3" (veya numarası "/usr/lib/spark/conf/spark-env.sh", extra parametre eklemek içinde köle örnekleri), sonra "/usr/lib/spark/sbin/stop-all.sh" çalıştırın ve tüm örnekleri durdu.

Ancak, "stop-all.sh" örneğin, sayıları kullanmaya başladı köleler için çalışır:

/usr/lib/spark/sbin/start-slave.sh 1 spark://master-address:7077 
/usr/lib/spark/sbin/start-slave.sh 2 spark://master-address:7077 
/usr/lib/spark/sbin/start-slave.sh 3 spark://master-address:7077 

sonra "stop-all.sh" çalışmıyor keyfi adlarını kullanarak köle başlarsa, örneğin: Terminal

çıktıda

/usr/lib/spark/sbin/start-slave.sh myWorer1 spark://master-address:7077 
/usr/lib/spark/sbin/start-slave.sh myWorer2 spark://master-address:7077 
/usr/lib/spark/sbin/start-slave.sh myWorer3 spark://master-address:7077 
+0

Yani keyfi bir adla bir köle başlatılabilir, ancak bir tamsayı adlı keşke bunu durdurmak? Bir böcek gibi geliyor. Bunu, Spark projesi kapsamında [Apache JIRA] (https://issues.apache.org/jira/) hakkında rapor etmeyi düşünüyor musunuz? –

+0

@NickChammas henüz rapor vermeyi denedim, ancak JIRA bileti oluşturma hakkım yok gibi görünüyor – keypoint

3

kullanın jps komut bu

gibi olurdu
5417 NameNode 
8480 Jps 
13311 Elasticsearch 
5602 DataNode 
5134 Worker 
5849 SecondaryNameNode 
4905 Master 

Usta ve işçinin işlemini durdurun. Bu

kill 5134 
kill 4905 

Master ve köle ikisi gibi

durdurulacaktır.

Bunlar yeniden yeniden başlatılırsa, sisteminizi ana ve bağımlıları durdurarak kapattığınız anlamına gelir. Sisteminizi yeniden başlatmanız gerekir.

0

Benzer bir sorun yaşadım. Bende sadece 8 makineye sarılmak zorunda kaldım ve tüm ilgili süreçlerde -9'u öldürmek zorunda kaldım. Ps -ef kullanmıştım | süreç kimliklerini bulmak için grep kıvılcımı. Tedious, ama işe yaradı.

0

kill -9 $(jps -l | grep spark | awk -F ' ' '{print $1}')

İlgili konular