错误:执行气流dag时找不到或加载主类Dlog4j.configuration

时间:2020-03-05 11:09:37

标签: apache-spark kubernetes log4j amazon-eks airflow-operator

我有这个EKS集群,我在那里运行气流障碍物。我想在运行spark作业时添加一个log4j.properties文件(对于不同的代码库而言是不同的)。通过登录到其中一个容器进行火花提交时,它运行良好。

命令:

spark-submit 
 --conf spark.kubernetes.authenticate.driver.serviceAccountName=XXXX
 --files "/tmp/log4j.properties"
 --driver-java-options "-Dlog4j.debug=true -Dlog4j.configuration=file:/tmp/log4j.properties"
--conf "spark.executor.extraJavaOptions=-Dlog4j.debug=true -Dlog4j.configuration=file:/tmp/log4j.properties"
--conf spark.executor.instances=5
--conf spark.app.name=SparkPi
--conf spark.kubernetes.driver.container.image=XXXX:XX
--conf spark.kubernetes.executor.container.image=XXXX:XX
 local:///XXXX/XXXX.py

但是当我通过dags运行相同的代码时,出现此Error: Could not find or load main class Dlog4j.configuration错误。 下面是我为log4提到的配置。

conf_dict = {
"Dlog4j.configuration": "file:/tmp/p8vl-customer-segmentation"
                            "/segmentation_de/log/log4j.properties",
"spark.driver.extraJavaOptions": "Dlog4j.configuration="
                                     "file:/tmp/p8vl-customer-segmentation/"
                                     "segmentation_de/log/log4j.properties"
}

conf_dict包含与群集相关的其他配置。现在,我将此conf_dict传递给SparkSubmitOperator

SparkSubmitOperator(
    task_id='XXXX',
    conn_id='spark_default',
    name='XXXX',
    py_files='{0}/code.zip,{0}/venv2.zip'.format(local_path),
    application='{}/XXXX.py'.format(local_path),
    files = "{}/log/log4j.properties".format(local_path),
    conf=conf_dict,
    verbose=True,
    dag=dag
)

但是执行dags时,出现上述错误。

0 个答案:

没有答案