카테고리 없음

스파크잡 applicationId를 applicationName으로 얻기

devwriter 2020. 5. 26. 13:38

스파크잡 배포를 도커라이즈로 처리했어요. 도커이미지를 k8s(쿠버네티스)에 배포하면 컨테이너가 뜨면서 spark-submit을 이용해서 잡 submit을 해요. 

 

보통 웹어플리케이션은 쿠버네티스 배포하면서 이전 컨테이너를 바꿔치기하니까 이전 어플리케이션을 따로 kill할 필요가 없죠. 하지만 yarn 클러스터에 배포되 스파크잡은 따로 kill을 해야 합니다.

 

스파크잡 kill은 yarn application -kill {applictionaId}로 하면 되죠. 그러니 spark-submit을 하기전에 application kill을 하면 됩니다. 그런데 spark-submit때마다 바뀌는 applicationId는 어떻게 알죠?

 

applicationName을 이용하면 됩니다. spark-submit --name {applicationNmae} 옵션을 이용합니다. 그리고 applicationName을 이용해서 applicationId를 알아 오면 됩니다.

 

application_id=$(yarn application -list | awk '$2 == "applicationNmae" { print $1 }')

yarn application -kill {application_id}