[HADOOP] 동적 리소스 할당을 사용하여 스파크 프로그램을 실행하는 방법
HADOOP동적 리소스 할당을 사용하여 스파크 프로그램을 실행하는 방법
spark-summit 명령을 사용하여 다음과 같은 매개 변수를 사용하여 Spark 작업을 실행합니다.
spark-submit --master yarn-cluster --driver-cores 2 \
--driver-memory 2G --num-executors 10 \
--executor-cores 5 --executor-memory 2G \
--class com.spark.sql.jdbc.SparkDFtoOracle2 \
Spark-hive-sql-Dataframe-0.0.1-SNAPSHOT-jar-with-dependencies.jar
이제 Spark의 Dynamic Resource 할당을 사용하여 동일한 프로그램을 실행하고 싶습니다. Spark 프로그램을 실행할 때 Dynamic Resource Allocation 사용에 도움을주십시오.
해결법
-
==============================
1.Spark 동적 할당에서 spark.dynamicAllocation.enabled는 기본적으로 false이기 때문에 true로 설정해야합니다.
Spark 동적 할당에서 spark.dynamicAllocation.enabled는 기본적으로 false이기 때문에 true로 설정해야합니다.
스파크 애플리케이션이 YARN에서 실행 중이므로 spark.shuffle.service.enabled를 true로 설정해야합니다. YARN의 각 노드 관리자에서 셔플 서비스를 시작하려면이 링크를 선택하십시오.
다음 구성도 관련이 있습니다.
spark.dynamicAllocation.minExecutors, spark.dynamicAllocation.maxExecutors, and spark.dynamicAllocation.initialExecutors
이 옵션들은 3 가지 방법으로 Spark 어플리케이션에 맞게 구성 될 수 있습니다.
1. Spark 제출시 --conf
= spark-submit --master yarn-cluster \ --driver-cores 2 \ --driver-memory 2G \ --num-executors 10 \ --executor-cores 5 \ --executor-memory 2G \ --conf spark.dynamicAllocation.minExecutors=5 --conf spark.dynamicAllocation.maxExecutors=30 --conf spark.dynamicAllocation.initialExecutors=10 --class com.spark.sql.jdbc.SparkDFtoOracle2 \ Spark-hive-sql-Dataframe-0.0.1-SNAPSHOT-jar-with-dependencies.jar
2. SparkConf가있는 Spark 프로그램 내부
SparkConf에서 속성을 설정 한 다음 SparkSession 또는 SparkContext를 만듭니다.
val conf: SparkConf = new SparkConf() conf.set("spark.dynamicAllocation.minExecutors", "5"); conf.set("spark.dynamicAllocation.maxExecutors", "30"); conf.set("spark.dynamicAllocation.initialExecutors", "10"); .....
3. spark-defaults.conf는 보통 $ SPARK_HOME / conf /에 있습니다.
spark-defaults.conf에 동일한 구성을 적용하여 명령 줄과 코드에서 구성을 전달하지 않으면 모든 스파크 응용 프로그램에 적용하십시오.
Spark - 동적 할당 구성
from https://stackoverflow.com/questions/40200389/how-to-execute-spark-programs-with-dynamic-resource-allocation by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브를 사용하여 1000 개의 테이블 설명을 얻으려면 어떻게해야합니까? (0) | 2019.07.20 |
---|---|
[HADOOP] 하이브에 데이터를로드하는 동안 주변 인용 부호를 필드에서 제거하십시오. (0) | 2019.07.20 |
[HADOOP] sqoop merge-key : merge-key를 사용하지 않고 여러 개의 part 파일을 만드는 것. (0) | 2019.07.20 |
[HADOOP] HDFS 파일을 입력하고 출력 파일을 HDFS에 저장하는 매퍼 또는 감속기에서 외부 프로그램을 실행하는 방법은 무엇입니까? (0) | 2019.07.20 |
[HADOOP] Distcp - 컨테이너가 실제 메모리 제한을 초과하여 실행 중입니다. (0) | 2019.07.20 |