2016-10-12 21 views
6

Kıvılcımı nasıl engellerim? Kıvılcım akışı işim sürekli çalışıyor. Zarif bir şekilde durmak istiyorum.Spark Streaming uygulamasını nasıl çalıştıracaksınız?

Akış uygulamasını kapatmak için aşağıdaki seçeneği gördüm.

sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true") 

Spark configuration: available properties

Fakat, nasıl bir çalışan uygulama bu parametreyi güncelleyebilirim?

+3

öldürür. – Knight71

+0

Zarif dediğiniz zaman ne demek istiyorsunuz? Uygulamanız durduğunda bir sorun mu var? –

+0

Uygulama manully durdurmak istiyorum. iki senaryo var. Bir hata oluştuğunda bunu nasıl durduracağım, kodda var. ama el ile durdurmak istiyorsam, bir mekanizma arıyorum. – AKC

cevap

11

this blogpost'a bakın. Karşılaştığım bir akış işini incelikle sonlandırmak için "en güzel" yol. Kapatma Sinyali geçmesine nasıl

:

Şimdi kıvılcım akışı içinde düzgün biçimde kapatma sağlamak için biliyorum. Ancak kapatma sinyalini kıvılcım akışına nasıl geçirebiliriz. Bir saf seçenek, sürücü programını çalıştırdığımız ekran terminalinde CTRL + C komutunu kullanmaktır, ancak açıkçası iyi bir seçenek değildir. Kullanmakta olduğum bir çözüm, kıvılcım akışının sürücü işlemini grep ve bir SIGTERM sinyali gönderir. Sürücü bu sinyali aldığında, uygulamanın zarif bir şekilde kapatılmasını başlatır. Komutu aşağıdaki komut satırına yazabiliriz ve komut satırını kapatmak için komut dosyasını çalıştırabiliriz:

ps -ef | grep kıvılcım | grep | awk '{print $ 2}' | xargs -SIGTERM

örn. ps -ef | grep kıvılcım | grep DataPipelineStreamDriver | awk '{print $ 2}' | Xargs Sen sparkContext oluşturulmasından sonra sparkcontext ait sparkConf ayarlayamıyor -SIGTERM

+0

Yukarıdaki komutu çalıştırmadan önce sparkConf.set ("spark.streaming.stopGracefullyOnShutdown", "true") 'u ayarlamam gerekiyor mu? – AKC

+1

Evet, ayarlara da ihtiyacınız var :) Ama lütfen tam blog mesajını okuyun. –

+0

Bu, etkinleştirildiğinde, bazı istisnalar meydana gelirse kodumda incelikle nasıl kapatılacağını gösterir – AKC