2014-10-02 2 views
9

SparkConfigSparkContext을 갖는 실행 프로그램의 Java (또는 스칼라) 코드 양을 어떻게 구성 할 수 있습니까? 나는 끊임없이 2 명의 유언 집행자를 본다. spark.default.parallelism과 같은 모양은 작동하지 않으며 다른 것에 관한 것입니다.스파크 집행자의 수를 설정하는 방법은 무엇입니까?

실행 프로그램의 양을 클러스터 크기와 동일하게 설정하면되지만, 항상 2 개만 있습니다. 내 클러스터 크기를 알아. 이 문제가 있으면 나는 원숭이를 먹는다.

답변

16

OK, 알겠습니다. 집행자의 수는 실제로 스파크 속성 자체가 아니라 YARN에 작업을 배치하는 데 사용되는 드라이버입니다. 그래서 나는 SparkSubmit 클래스를 드라이버로 사용하고 있으며 적절한 --num-executors 매개 변수를 필요로합니다.

업데이트 : 난 더 이상 SparkSubmit 접근 방식을 따르지 않는 일부 작업의 경우

. 스파크 작업이 애플리케이션 구성 요소 중 하나 일뿐 아니라 선택적 일 수도있는 애플리케이션의 경우 주로이를 수행 할 수 없습니다. 이 경우에는 클러스터 구성에 spark-defaults.conf을 연결하고 그 안에 spark.executor.instances 속성을 사용합니다. 이 접근 방식은 훨씬 더 보편적이어서 클러스터 (개발자 워크 스테이션, 준비, 프로덕션)에 따라 리소스 균형을 올바르게 조정할 수 있습니다.

+0

spark.default.parallelism 속성은 join, reduceByKey, groupBy와 같은 줄이기 연산을위한 것입니다. – Rags

5

"spark.executor.instances"및 "spark.executor.cores"매개 변수를 SparkConf 개체에 설정하여 프로그래밍 방식으로 설정할 수도 있습니다.

예 :

SparkConf conf = new SparkConf() 
     // 4 workers 
     .set("spark.executor.instances", "4") 
     // 5 cores on each workers 
     .set("spark.executor.cores", "5"); 

두번째 매개 변수는 YARN 독립형 모드이다. 해당 작업자에 충분한 코어가있는 경우 응용 프로그램에서 동일한 작업자에 대해 여러 실행 프로그램을 실행할 수 있습니다.

관련 문제