Amazon EMR 노트북에서 Spark 구성을 수정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 24일

Amazon EMR 노트북에서 Apache Spark 작업에 대한 구성을 사용자 지정하려면 어떻게 해야 합니까?

간략한 설명

Amazon EMR 노트북은 서버리스 Jupyter 노트북입니다. Jupyter 노트북은 Apache Livy 서버를 통해 원격 EMR 클러스터에서 Spark 작업을 대화식으로 수행하기 위해 Sparkmagic 커널을 클라이언트로 사용합니다. Sparkmagic 명령을 사용하여 Spark 구성을 사용자 지정할 수 있습니다. 사용자 지정 구성은 다음을 수행할 때 유용합니다.

  • Spark 작업에 대한 실행기 메모리 및 실행기 코어 변경
  • Spark에 대한 리소스 할당 변경

​해결 방법

현재 세션 수정

1.    Jupyter 노트북 셀에서 %%configure 명령을 실행하여 작업 구성을 수정합니다. 다음 예제에서 명령은 Spark 작업에 대한 실행기 메모리를 변경합니다.

%%configure -f
{"executorMemory":"4G"}

2.    일반적으로 --conf 옵션을 사용하여 전달하는 추가 구성의 경우 다음 예제와 같이 중첩된 JSON 객체를 사용합니다. conf 객체를 SparkContext 또는 SparkSession에 명시적으로 전달하는 대신, 이 메서드를 사용합니다.

%%configure -f
{"conf":{"spark.dynamicAllocation.enabled":"false"}}

구성 변경에 성공했는지 확인

1.    클라이언트 측의 Jupyter에서 %%info 명령을 실행하여 현재 세션 구성을 확인합니다. 예제 출력:

Current session configs: {'executorMemory': '4G', 'conf': {'spark.dynamicAllocation.enabled': 'false'}, 'kind': 'pyspark'}

2.     서버 측의 EMR 클러스터에서 /var/log/livy/livy-livy-server.out 로그를 확인합니다. SparkSession이 시작된 경우 다음과 같은 로그 항목이 표시됩니다.

20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?