Spark executor 에서 메모리가 부족할 경우 yarn 은 자동적으로 이 잡을 죽여버린다.
이때에 worker 의 log 를 보면 "Container killed on request. Exit code is 137" 이라는 메시지가 남게 되고, executor 의 stdout까지 잘 살펴보면 "java.lang.OutOfMemoryError: Java heap space" 이런 메시지가 있단걸 확인할 수 있다.
spark.executor.memory
혹은 spark.driver.memory
의 parameter 값을 튜닝한다.spark.executor.memory
혹은 spark.driver.memory
의 값들을 수정한다.val numPartitions= 500
val newDF=df.repartition(numPartitions)
spark.sql.shuffle.partitions
의 값을 200이상으로 바꿔주거나spark.executor.cores
의 값을 줄여주거나,