Apache spark 在驱动程序日志中输出Spark应用程序名称
我需要在驱动程序日志的每行中输出Spark应用程序名称(Apache spark 在驱动程序日志中输出Spark应用程序名称,apache-spark,log4j,apache-spark-standalone,spark2.4.4,Apache Spark,Log4j,Apache Spark Standalone,Spark2.4.4,我需要在驱动程序日志的每行中输出Spark应用程序名称(Spark.app.name)(以及消息和日期等其他属性)。 到目前为止,我没有找到正确的log4j配置或任何其他提示。 怎么可能呢 我将感谢任何帮助 使用Spark独立模式。一种似乎有效的方法包括以下两个步骤: 创建自定义log4j.properties文件并更改布局: ... # this is just an example layout config # remember the rest of the configuration
Spark.app.name
)(以及消息和日期等其他属性)。
到目前为止,我没有找到正确的log4j配置或任何其他提示。
怎么可能呢
我将感谢任何帮助
使用Spark独立模式。一种似乎有效的方法包括以下两个步骤:
log4j.properties
文件并更改布局:
...
# this is just an example layout config
# remember the rest of the configuration
log4j.appender.stdout.layout.ConversionPattern=${appName}--%d{yyyy-mm-dd HH:mm:ss,SSS} [%-5p] [%c] - %m%n
此文件必须位于类路径的根目录下(对于大多数构建工具,如在src/main/resources
中),或者在集群中的服务器上编辑/conf/log4j.properties
System.setProperty("appName", "application-name");
SparkSession spark = SparkSession.builder().appName("application-name")
...
spark submit
,而不是手动在代码中设置变量
--conf 'spark.driver.extraJavaOptions=-DappName=application-name'
对于更持久的更改,您可能需要使用布局更改编辑
/conf/log4j.properties
(如果文件不存在,则复制模板),并使用系统属性调用spark submit
/spark shell
,等等。小注释:似乎没有必要引入appName
,可以使用默认变量spark.app.name
。太好了,谢谢。我不知道那房子。
--conf 'spark.driver.extraJavaOptions=-DappName=application-name'