我试图在集群模式下从Airflow进行spark提交,我想在submit操作符中指定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)
我能想到两种可能的方法
>
log4j
属性作为spark
配置
spark-submit
命令中的这行相同的效果:--conf“spark.executor.extrajavaoptions=-dlog4j.configuration=log4j.properties”
sparksubmitoperator
conf
参数传递
运算符
以在远程系统上执行spark-submit
,传递log4j
配置文件可能具有挑战性问题内容: 我已经为“ Debian Linux”创建了一个Java应用程序。现在,我希望该应用程序读取放置在指定该应用程序的jar文件的目录中的文件。那么在File Object的参数中要指定什么呢? 在上述声明中,作为参数指定相对文件路径的参数是什么,该相对文件路径表示放置应用程序的jar文件的路径? 问题答案: 如果您知道文件的名称,那么当然 如果您不知道名称,则可以使用File对象的lis
问题内容: 如果我有方法 如何在不进行强制转换的情况下使用数字参数来调用它? 给出一个错误。 问题答案: 你不能。基本数字常量被认为是整数(如果后面跟有“ L”,则为整数),因此必须将其显式下转换为字节,以将其作为参数传递。据我所知,没有捷径可走。
我在redis stream文档中看到了这一点,它说: 是时候试着用消费者群体来阅读一些东西了: XREADGROUP回复与XREAD回复一样。请注意,尽管上面提供了一个组,但它声明我希望使用消费者组mygroup从流中读取数据,我是消费者Alice。每次使用者对使用者组执行操作时,都必须指定其名称,以便在组内唯一标识此使用者。 在上面的命令行中还有另一个非常重要的细节,在强制流选项之后,为密钥m
问题内容: 在网络上快速搜索发现三个或四个变种人如何被指定和在。 指定JPA 2.1版的“正确”方式是什么? 我正在使用 问题答案: 根据官方文档,它必须是(像您的一样):
通过调试,我发现fxmlloader.this.resources为null,这导致了NPE。起初我以为我只是给出了一个错误的文件路径,但请注意,这发生在ResourceBundle甚至尝试加载属性文件之前! 有什么办法可以解决这个问题,这样资源就可以加载了吗? 下面是我的档案。它们都在同一个目录中(为了简单起见,默认包)。 完整StackTrace: