我在dataproc中运行一个spark任务。我正在使用作业的Hive连接。
出于我自己的需要,我希望以json格式输出所有日志,并且在我配置的当前测试中 /etc/spark/conf/log4j.properties
使用:
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.hadoop.log.Log4Json
这将以json格式输出spark日志。
现在我在输出中看到一些奇怪的行:
...
ivysettings.xml file not found in HIVE_HOME or HIVE_CONF_DIR,/etc/hive/conf.dist/ivysettings.xml will be used
{"name":"DependencyResolver","time":1618431755337,"date":"2021-04-14 20:22:35,337","level":"INFO","thread":"nioEventLoopGroup-2-2","message":"ivysettings.xml file not found in HIVE_HOME or HIVE_CONF_DIR,/etc/hive/conf.dist/ivysettings.xml will be used"}
我的假设是,非json行是配置单元日志输出,实现为:
// If HIVE_HOME is not defined or file is not found in HIVE_HOME/conf then load default ivysettings.xml from class loader
if (ivysettingsPath == null || !(new File(ivysettingsPath).exists())) {
ivysettingsPath = ClassLoader.getSystemResource("ivysettings.xml").getFile();
_console.printInfo("ivysettings.xml file not found in HIVE_HOME or HIVE_CONF_DIR," + ivysettingsPath + " will be used");
}
问题是我看不出这个输出是在哪里配置的。我找到了两个文件:
/etc/hive/conf/hive-log4j2.properties文件
/etc/hive/conf/hive-exec-log4j2.properties文件
其中没有一个包含信息输出的配置。
有没有一种方法可以集中配置spark/hadoop/hive或者实现统一的日志记录?
暂无答案!
目前还没有任何答案,快来回答吧!