[SCALA] 어떻게 작업을 점화하는 -D 매개 변수 나 환경 변수를 전달하는 방법?
SCALA어떻게 작업을 점화하는 -D 매개 변수 나 환경 변수를 전달하는 방법?
나는 DEV / 자극 환경에서 스파크 작업의 형태 보증 설정을 변경하고 싶습니다. 이 작업을 수행하는 가장 쉬운 방법은 작업에 -Dconfig.resource = ENVNAME을 통과하는 것입니다 날 것으로 보인다. 그런 형태 보증 설정 라이브러리는 나를 위해 일을 할 것입니다.
작업에 직접 해당 옵션을 전달하는 방법이 있습니까? 아니면 런타임에 작업 설정을 변경하는 것이 더 나은 방법은 무엇입니까?
편집하다:
해결법
-
==============================
1.변경 세 가지 옵션을 추가 명령 줄을 스파크 제출 :
변경 세 가지 옵션을 추가 명령 줄을 스파크 제출 :
-
==============================
2.여기 내 스파크 프로그램은 또한 자바 옵션으로 실행됩니다
여기 내 스파크 프로그램은 또한 자바 옵션으로 실행됩니다
/home/spark/spark-1.6.1-bin-hadoop2.6/bin/spark-submit \ --files /home/spark/jobs/fact_stats_ad.conf \ --conf spark.executor.extraJavaOptions=-Dconfig.fuction.conf \ --conf 'spark.driver.extraJavaOptions=-Dalluxio.user.file.writetype.default=CACHE_THROUGH -Dalluxio.user.file.write.location.policy.class=alluxio.client.file.policy.MostAvailableFirstPolicy -Dconfig.file=/home/spark/jobs/fact_stats_ad.conf' \ --class jobs.DiskDailyJob \ --packages com.databricks:spark-csv_2.10:1.4.0 \ --jars /home/spark/jobs/alluxio-core-client-1.2.0-RC2-jar-with-dependencies.jar \ --driver-memory 2g \ /home/spark/jobs/convert_to_parquet.jar \ AD_COOKIE_REPORT FACT_AD_STATS_DAILY | tee /data/fact_ad_stats_daily.log
당신이 볼 수 있듯이 사용자 지정 설정 파일 --files /home/spark/jobs/fact_stats_ad.conf
집행자 자바 옵션 --conf spark.executor.extraJavaOptions = -Dconfig.fuction.conf
드라이버 자바 옵션을 제공합니다. --conf 'spark.driver.extraJavaOptions = -Dalluxio.user.file.writetype.default = CACHE_THROUGH -Dalluxio.user.file.write.location.policy.class = alluxio.client.file.policy.MostAvailableFirstPolicy -Dconfig.file = / 가정 / 스파크 / 작업 / fact_stats_ad.conf '
그것을 할 수있는 희망이 도움이됩니다.
-
==============================
3.내가 그것에 대해 내 블로그 게시물에서 견적을 추가 한 실행 프로그램과 드라이버를 촉발 -D 매개 변수를 지나가는 많은 문제가 있었다 : " 매개 변수를 전달하는 올바른 방법은 속성을 통해입니다 : "spark.driver.extraJavaOptions"와 "spark.executor.extraJavaOptions" 나는 Log4j의 구성 속성과 내가 구성에 필요한 매개 변수를 모두 통과했습니다. (드라이버에 난 단지 log4j 구성을 통과 할 수 있었다). 예를 들어 ( "-Properties 파일"로 제출 스파크 전달 특성 파일에 기록 된) : "
내가 그것에 대해 내 블로그 게시물에서 견적을 추가 한 실행 프로그램과 드라이버를 촉발 -D 매개 변수를 지나가는 많은 문제가 있었다 : " 매개 변수를 전달하는 올바른 방법은 속성을 통해입니다 : "spark.driver.extraJavaOptions"와 "spark.executor.extraJavaOptions" 나는 Log4j의 구성 속성과 내가 구성에 필요한 매개 변수를 모두 통과했습니다. (드라이버에 난 단지 log4j 구성을 통과 할 수 있었다). 예를 들어 ( "-Properties 파일"로 제출 스파크 전달 특성 파일에 기록 된) : "
spark.driver.extraJavaOptions –Dlog4j.configuration=file:///spark/conf/log4j.properties - spark.executor.extraJavaOptions –Dlog4j.configuration=file:///spark/conf/log4j.properties -Dapplication.properties.file=hdfs:///some/path/on/hdfs/app.properties spark.application.properties.file hdfs:///some/path/on/hdfs/app.properties
“
당신은 불꽃의 전체 구성에 대한 내 블로그 게시물을 읽을 수 있습니다. 나뿐만 아니라 원사에서 실행하고 있어요.
-
==============================
4.--files
--conf 'spark.executor.extraJavaOptions = -Dconfig.resource = 응용 프로그램' --conf 'spark.driver.extraJavaOptions = -Dconfig.resource = 응용 프로그램' --files
--conf 'spark.executor.extraJavaOptions = -Dconfig.resource = 응용 프로그램' --conf 'spark.driver.extraJavaOptions = -Dconfig.resource = 응용 프로그램' 이 방법으로 작성하는 경우, 나중에 --conf는 작업 환경 탭에서 시작 후에는 sparkUI보고이를 확인할 수 있습니다, 이전을 덮어 쓰게됩니다.
그래서 올바른 방법은 다음과 같은 줄 아래의 옵션을 넣어하는 것입니다 : --conf 'spark.executor.extraJavaOptions = -DA -DC = D = B' 이 작업을 수행 할 경우, 당신은 모든 설정이 sparkUI 아래에 표시됩니다 찾을 수 있습니다.
-
==============================
5.나는 다른 스칼라 응용 프로그램 내에서 실행 스파크 제출 명령을 통해 내 스파크 응용 프로그램을 시작하고있다. 그래서 나는 배열 등이있다
나는 다른 스칼라 응용 프로그램 내에서 실행 스파크 제출 명령을 통해 내 스파크 응용 프로그램을 시작하고있다. 그래서 나는 배열 등이있다
Array(".../spark-submit", ..., "--conf", confValues, ...)
어디 confValues은 다음과 같습니다
이 곳 (안) 시세 및 공간을 탈출하기 위해,하지만 이해하기 조금 까다 롭습니다. 당신은 시스템 속성 값에 대한 스파크 웹 인터페이스를 확인할 수 있습니다.
-
==============================
6.
spark-submit --driver-java-options "-Denv=DEV -Dmode=local" --class co.xxx.datapipeline.jobs.EventlogAggregator target/datapipeline-jobs-1.0-SNAPSHOT.jar
위의 명령은 나를 위해 작동합니다 :
-Denv = DEV =이> DEV의 ENV 특성 파일을 읽고,하기 로컬 -Dmode = => 로컬에 SparkContext를 만드는 - .setMaster를 ( "로컬 [*]")
-
==============================
7.당신을 위해 도움이 될 수 있습니다, 아래의 명령에 같은 방법을 사용합니다 -
당신을 위해 도움이 될 수 있습니다, 아래의 명령에 같은 방법을 사용합니다 -
나는 또한 제안 정말 도움이 점화 후 아래 제목을 갈 것이라고, 나는 시도하고 그것은 나를 위해 일한 - https://spark.apache.org/docs/latest/running-on-yarn.html
-
==============================
8.원래는이 설정 파일을했다 :
원래는이 설정 파일을했다 :
my-app { environment: dev other: xxx }
내 스파크 스칼라 코드에서 내 설정을로드하고있어 방법이다 :
val config = ConfigFactory.parseFile(File<"my-app.conf">) .withFallback(ConfigFactory.load()) .resolve .getConfig("my-app")
내가 지금처럼 내 스파크 작업을 시작 할 때 형태 보증 구성 설명서와 모든 다른 답변의 말에도 불구하고이 설정과 시스템 특성 재 지정은 나를 위해 작동하지 않았다 :
spark-submit \ --master yarn \ --deploy-mode cluster \ --name my-app \ --driver-java-options='-XX:MaxPermSize=256M -Dmy-app.environment=prod' \ --files my-app.conf \ my-app.jar
그것이 내가 내 설정 파일을 변경했다 작동하도록하려면 :
my-app { environment: dev environment: ${?env.override} other: xxx }
다음과 같이 그것을 실행 :
spark-submit \ --master yarn \ --deploy-mode cluster \ --name my-app \ --driver-java-options='-XX:MaxPermSize=256M -Denv.override=prod' \ --files my-app.conf \ my-app.jar
from https://stackoverflow.com/questions/28166667/how-to-pass-d-parameter-or-environment-variable-to-spark-job by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라의 "접미사 작전" (0) | 2019.11.02 |
---|---|
[SCALA] 어떻게 스칼라에서 미래를 취소하려면? (0) | 2019.11.02 |
[SCALA] 스칼라 "<-"이해를위한 (0) | 2019.11.02 |
[SCALA] 최적화 된 꼬리 재귀 함수를 보장하기 위해 스칼라 주석 무엇입니까? (0) | 2019.11.02 |
[SCALA] 어떻게 스파크 스트리밍 방송 변수를 업데이트 할 수 있습니다? (0) | 2019.11.02 |