spark-submit 명령을 사용하여 32 코어, 64GB 서버에서 pyspark 응용 프로그램을 실행하고 있습니다. 응용에java.lang.OutOfMemoryError 가져 오기 : pyspark 응용 프로그램 제출시
단계 : =로드
DF1 CSV 파일에서 500 만 세트 (필드 1, 2 필드, FIELD3, 입력란 4).
df2 = mongodb (spark mongo 어댑터 사용)에서 500 만 개의 항목을로드하십시오 (field1, field2, field3).
왼쪽 (: Java 힙 공간 단계 던지고 예외 java.lang.OutOfMemoryError와 같은) 조작 가입
df_output = df1.join (DF2, [ "필드 1", "2 필드", "FIELD3"], "left_outer"). select ("*")
추가 모드로 df_output을 사용하여 몽고 컬렉션을 업데이트합니다./spark-env.sh의 conf에
구성 :
- SPARK_EXECUTOR_INSTANCES = 10
- SPARK_EXECUTOR_CORES = 3
- SPARK_EXECUTOR_MEMORY = 5기가바이트
- SPARK_WORKER_CORES = 30
- SPARK_WORKER_MEMORY = 50기가바이트
거기에 더 많은 매개 변수가 기본값으로 설정되어 있습니다.
명령으로 마스터 및 1 명의 작업자 설정. 명령
sbin/start-master.sh
/sbin/start-slave.sh master_ip
스크립트 실행이 데이터 집합에 대한 최적의 성능을 위해 조정 구성 매개 변수에 대한 최선의 방법이 될 더한해야합니까
nohup bin/spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:2.0.0 --master master_ip ../test_scripts/test1.py > /logs/logs.out &
우리는 어떻게해야 모든 데이터 세트에 대해 위의 매개 변수를 구성 하시겠습니까?