1

스파크 스트리밍을 위해 AWS EMR을 사용합니다. Kinesis 스트림에서 데이터를 읽는 EMR에 단계를 추가합니다. 필요한 것은이 단계를 중단하고 새 단계를 추가하는 접근법입니다.AWS EMR에서 장시간 실행되는 스파크 스트리밍 단계를 중지하는 방법

지금 Spark 드라이버에서 스레드를 생성하고 메시지에 대한 SQS 대기열을 수신하고 메시지를 받으면 sparkContext.stop()으로 전화합니다. 나는 배치 자동화에 Chef를 사용합니다. 그래서 새로운 인공물이있을 때, 메시지는 SQS에 넣어지고, EMR은 그것을 읽고 단계를 멈춘다. 그러면 요리사가 EMR API를 사용하여 새로운 단계를 추가합니다.

내 질문은 이것이 EMR에서 장기간 스트리밍 작업을 중단하는 올바른 방법일까요? EMR이 아닌 독립 실행 형 클러스터에 어떻게 설치 되었습니까?

답변

0

EMR STEP API는 현재 STOPPING을 지원하지 않습니다. 단계를 제출할 때 EMR은 대개 사용자가 제공 한 인수로 hadoop jar 명령을 실행합니다. 계단 유형이 스파크이면 spark-submit 명령이 실행됩니다. 이 명령이 0 종료 코드를 반환하면 STEP은 FINISHED로 표시되고 다른 종료 코드를 반환하면 FAILED로 표시됩니다. 상태는 현재 실행중인 YARN 응용 프로그램에 의존 할 수도 있습니다. 현재 진행중인 YARN 앱 (특히 STEP에 의해 생성되지는 않음)이 해당 기간 동안 실행 중이면 EMR이 STEP FINISHED로 표시되지 않는지 테스트하고 관찰 할 수 있습니다.

spark-submit에 메인 클래스/JAR을 사용하고 커스텀 코드를 작성하여 원하는 종료 코드를 눌러 원하는 STEP 상태에 도달 할 수 있습니다.

STEP의 controller.log를보고 EMR이 STEP을 변환하는 명령에 대해 자세히 알 수 있습니다.

관련 문제