본문 바로가기
Spark

[Spark] yarn cluster 모드 시 한글 깨짐 현상(UnicodeEncodeError)

by 초이MS 2020. 6. 4.

상황

  • spark-submit시(master=yarn, deploy-mode=cluster) parameter를 한글로 주는 경우 한글이 깨지는 현상이 발생한다.
  • -Dfile.encoding=utf-8의 옵션을 driver, executor에 적용 시 UnicodeEncodeError가 발생한다.

해결 과정

  1. spark 내에서 환경변수를 확인 시 'LANG': 'ko_KR.eucKR'와 같은 결과를 확인하였다.
  2. utf-8 인코딩이 적용되지 않아 한글이 깨진 것으로 보였다.
  3. yarn을 이용할 경우 spark.yarn.appMasterEnv.[EnvironmentVariableName] 옵션을 이용하여 환경변수를 설정 할 수 있다.
  4. appMasterEnv 옵션을 이용하여 환경변수 LANG을 변경한다.

결론

  1. spark-submit 시에 --conf spark.yarn.appMasterEnv.LANG=ko_KR.UTF-8 옵션을 추가한다.
  2. yarn cluster 모드 시에는 spark-env.sh 에 적용 시킨 환경변수들이 적용이 되지 않을 수 있다.
  3. 추후 모든 yarn cluster 모드 작업에 LANG옵션을 추가하고 싶을 경우는 spark-defaults.conf 파일에 해당 옵션을 추가한다.

참고

반응형

댓글