天天看点

parquet.hadoop 狂打日志,不受控制

说坑

Confluent 将数据写入hadfs时,会调用parquet的接口。基本每写一次数据,就会打日志。有两点让人很崩溃:

  1. 对快速的流式来说,日志一直打一直打;
  2. 不受kafka connect的log4j配置控制;

查坑

版本说明:

  1. kafka confluent 2.0.0
  2. 对应parquet版本 1.7.0

1.7.0版本日志控制采用的是java.util.logging,日志等级的控制是硬编码,在类加载时进行设置。

参考:

https://github.com/apache/parquet-mr/pull/290

他们自己也受不了这种日志控制方式了,改成slf4j。在最新的版本中已经看到改掉了,但是在顶级pom.xml中控制也是让人抗拒的。

解坑

改硬编码呗,改了如下文件:

parquet-common/src/main/java/org/apache/parquet/Log.java
           

将默认日志等级改成了WARNING,这个就随心所欲了。重编译,然后然后修改kafka connect的LIB: