修改Hadoop日志格式为json

进入CM界面HDFS组件–>配置–>搜索DataNode log
进入CM界面HDFS组件–>配置–>搜索NameNode log
找到”DataNode 日志记录高级配置代码段(安全阀)”如果英文版则是”DataNode Logging Advanced Configuration Snippet (Safety Valve)”,同理找到NameNode的位置,依次改成

log4j.appender.RFA.layout.ConversionPattern = {"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logtype":"%p","loginfo":"%c:%m"}%n

然后保存重启。

Apache 版

不是使用的CDH可以修改Hadoop的log4j的配置文件log4j.properties,把log4j.appender.RFA.layout.ConversionPattern对应的改成{"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logtype":"%p","loginfo":"%c:%m"}%n

注意

我当初修改的时候,看到log4j.properties配置的是console,就把log4j.appender.console.layout.ConversionPattern给修改了。

# Define some default values that can be overridden by system properties
hadoop.root.logger=INFO,console
hadoop.log.dir=.
hadoop.log.file=hadoop.log

结果并不生效,后来发现了注释的话:Define some default values that can be overridden by system properties,也就是说这些属性可以被系统设置覆盖,而所谓的系统属性其实是hadoop-env.shhadoop-daemon.sh(一个在${HADOOP_HOME}/etc/hadoop,一个在${HADOOP_HOME}/sbin)。
查看hadoop-daemon.sh可以看到:

export HADOOP_ROOT_LOGGER=${HADOOP_ROOT_LOGGER:-"INFO,RFA"}

系统属性是RFA而不是console。所以应该修改log4j.appender.RFA.layout.ConversionPattern这个。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值