Как мы указываем driver-java-options -Dlog4j.configuration в SparkSubmitOperator - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь сделать искробезопасную отправку из Airflow в режиме кластера, я хотел указать свойства log4j в операторе отправки

task_id='spark_submit_job',
conn_id='spark_default',
files='/usr/hdp/current/spark-client/conf/hive-site.xml',
jars='/usr/hdp/current/spark-client/lib/datanucleus-api-jdo-3.2.6.jar,/usr/hdp/current/spark-client/lib/datanucleus-rdbms-3.2.9.jar,/usr/hdp/current/spark-client/lib/datanucleus-core-3.2.10.jar',
java_class='com.xxx.eim.job.SubmitSparkJob',
application='/root/airflow/code/eimdataprocessor.jar',
total_executor_cores='4',
executor_cores='4',
executor_memory='5g',
num_executors='4',
name='airflow-spark-example',
verbose=False,
driver_memory='10g',
application_args=["XXX"],
conf={'master':'yarn',
     'spark.yarn.queue'='priority',
     'spark.app.name'='XXX',
     'spark.dynamicAllocation.enabled'='true'},
     'spark.local.dir'='/opt/eim',
     'spark.shuffle.service.enabled'='true',
     'spark.hadoop.mapreduce.fileoutputcommitter.cleanup-failures.ignored'='true',
     'spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version'='2'
     },
dag=dag)

1 Ответ

0 голосов
/ 09 января 2019

Я могу придумать два возможных пути

  1. Log4J свойства как Spark конфигурация

    • В основном пытаемся добиться того же эффекта, что и эта строка в вашей команде spark-submit: --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties"
    • Передается через conf параметр in SparkSubmitOperator
    • Обратите внимание, что если вы пишете custom operator для выполнения spark-submit в удаленной системе, передавая конфигурацию Log4J файл может быть сложным
  2. Как Application-Args

    • Аргументы приложения добавлены как есть в spark-submit, поэтому убедитесь, что вы передали их с помощью любой --prefix (es ), при необходимости
    • Передано через application_args in SparkSubmitOperator
...