2016-10-12 3 views
6

어떻게 스파크 스트리밍을 중지합니까? 내 스파크 스트리밍 작업이 계속 실행 중입니다. 나는 우아한 방식으로 멈추고 싶다.Spark Streaming 응용 프로그램을 정상적으로 중지하는 방법

아래에서 스트리밍 응용 프로그램을 종료하는 옵션을 보았습니다.

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

Spark configuration: available properties

하지만, 내가 어떻게 실행중인 응용 프로그램에서이 매개 변수를 업데이트하는 방법은 무엇입니까?

+3

sparkcontext의 생성 후에 sparkcontext의 sparkConf를 설정할 수 없습니다. – Knight71

+0

당신이 우아한 말을 할 때 당신은 무엇을 의미합니까? 앱이 멈췄을 때 아무 일도 일어나지 않습니까? –

+0

응용 프로그램을 완전히 중지하고 싶습니다. 두 가지 시나리오가 있습니다. 나는 어떤 오류가 발생했을 때 그것을 멈추는 방법에 대해 명확하다, 나는 코드에서 그것을 가지고있다. 하지만 내가 수동으로 멈추고 싶다면, 나는 메커니즘을 찾고있다. – AKC

답변

11

this blogpost을 살펴보십시오. 그것은 내가 겪었던 스트리밍 작업을 정상적으로 종결시키는 "가장 좋은"방법입니다. 종료 신호를 전달하는 방법을

는 :

이제 우리는 불꽃 스트리밍에서 정상 종료를 확인하는 방법을 알고있다. 그러나 스트리밍을 촉발시키기 위해 어떻게 종료 신호를 전달할 수 있습니까? 하나의 순진한 옵션은 우리가 드라이버 프로그램을 실행하는 화면 터미널에서 CTRL + C 명령을 사용하는 것입니다.하지만 분명히 좋은 옵션은 아닙니다. 내가 사용하고있는 하나의 솔루션은 스파크 스트리밍의 드라이버 프로세스를 grep하고 SIGTERM 신호를 보내는 것입니다. 드라이버가이 신호를 받으면 응용 프로그램을 정상적으로 종료합니다. 다음과 같이 쉘 스크립트에서 명령어를 작성하고 스크립트를 실행하여 종료 신호를 전달할 수 있습니다.

ps -ef | grep 스파크 | grep | awk '{print $ 2}'| xargs kill -SIGTERM

예 : ps -ef | grep 스파크 | grep DataPipelineStreamDriver | awk '{print $ 2}'| xargs kill -SIGTERM

+0

위 명령을 실행하기 전에 sparkConf.set ("spark.streaming.stopGracefullyOnShutdown", "true")를 설정해야합니까? – AKC

+1

예, 설정이 필요합니다. :) 그러나 전체 블로그 게시물을 읽어보십시오. –

+0

그것은 .. 가능할 때 예외가 발생하면 내 코드에서 정상적으로 종료하는 방법 – AKC

관련 문제