Amazon EMR Studio Workspace에서 Spark 구성을 수정하려고 합니다.
간략한 설명
Amazon Elastic Compute Cloud(Amazon EC2) 또는 EMR Serverless 원격 클러스터의 Spark 구성을 사용자 지정하려면 Sparkmagic 명령을 사용하여 executorMemory, executorCores 및 리소스 할당을 변경하십시오.
Amazon Elastic Kubernetes Service(Amazon EKS) 원격 클러스터의 경우 SparkContext 객체에서 Spark 구성을 설정합니다. Amazon EKS는 Sparkmagic 명령을 지원하지 않습니다. 자세한 내용은 고려 사항 및 제한 사항을 참조하십시오.
해결 방법
Amazon EC2 또는 EMR Serverless 원격 클러스터의 Spark 구성 사용자 지정
다음 단계를 완료하십시오.
-
작업 구성을 수정하려면 Workspace 셀에서 %%configure 명령을 실행합니다.
예:
%%configure -f
{"executorMemory":"4G"}
참고: 앞의 예시에서 executorMemory를 Spark 작업에 맞게 수정했습니다.
-
-conf 옵션과 함께 전달하는 추가 구성에 대해서는 중첩된 JSON 객체를 사용하십시오.
참고: 객체를 SparkContext 또는 Sparksession으로 전달하려면 conf 대신 -conf를 사용합니다. 자세한 내용은 Apache Livy 웹 사이트의 Spark 구성을 참조하십시오.
-
예:
%%configure -f
{
"driverMemory": "4G",
"driverCores": 4,
"executorMemory" : "8G",
"executorCores": 2,
"conf": {
"spark.dynamicAllocation.maxExecutors" : 10,
"spark.dynamicAllocation.minExecutors": 1
}
}
Amazon EKS 클러스터에 연결된 Workspace에서 Spark 구성을 사용자 지정하려면 SparkContext 객체에서 Spark 구성을 설정하십시오.
spark.conf.set("spark.executor.memory", "8g")
Spark 구성 확인
다음 작업을 수행하십시오.
-
Amazon EC2 및 EMR Serverless의 경우 클라이언트 측 Workspace에서 %%info 명령을 실행합니다.
출력 예시:
Current session configs: {'driverMemory': '4G', 'driverCores': 4, 'executorMemory': '8G', 'executorCores': 2, 'conf': {'spark.dynamicAllocation.maxExecutors': 10, 'spark.dynamicAllocation.minExecutors': 1}, 'proxyUser': 'assumed-role_Admin_biditdas-Isengard', 'kind': 'pyspark'}
-
Amazon EC2의 경우 클러스터의 프라이머리 노드에 있는 /var/log/livy/livy-livy-server.out에서 로그를 확인합니다. Spark 세션이 시작된 경우 다음과 유사한 로그 항목이 표시됩니다.
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]]
-
Amazon EKS의 경우 Spark UI를 사용합니다.
관련 정보
magic 명령으로 커널 향상
Apache Livy 웹 사이트의 REST API
GitHub 웹 사이트의 새 커널에서 사용 가능한 기능