我有这个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时,出现上述错误。