У меня есть этот кластер EKS, где я запускаю свои воздушные потоки. Я хочу добавить файл 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
)
Но при выполнении команды dag я получаю вышеупомянутую ошибку.