Parquet地板警告填充木箱mapreduce在亚马逊电子病历

bmp9r5qi  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(434)

我在一张table上运行一个定制的udaf,这个table在tez的hive上存储为Parquet地板。我们的Hive工作都是在Yarn上运行的,都是在亚马逊emr中设置的。但是,由于事实上,我们的Parquet地板数据是用旧版本的Parquet地板(1.5)生成的,我得到一个警告,它正在填充Yarn日志,并导致磁盘在作业完成之前耗尽空间。
这是警告:
pm警告:org.apache.parquet.corruptstatistics:忽略统计信息,因为无法解析创建者(请参阅parquet-251):parquet mr version
它还打印堆栈轨迹。我一直试图使警告日志静音,但没有用。我已经设法关闭了几乎所有类型的日志,除了这个警告。我尝试过使用aws配置修改几乎每个log4j设置文件,如下所述。
到目前为止我尝试过的事情:
我在tez-site.xml中设置了以下设置(使用json格式编写它们,因为这是aws配置所需的格式),当然在实际示例中是使用正确的xml格式。

"tez.am.log.level": "OFF",
"tez.task.log.level": "OFF",
"tez.am.launch.cluster-default.cmd-opts": "-Dhadoop.metrics.log.level=OFF -Dtez.root.logger=OFF,CLA",
"tez.task-specific.log.level": "OFF;org.apache.parquet=OFF"

我在mapred-site.xml上有以下设置。这些设置有效地关闭了我的Yarn日志中发生的所有日志记录,但有问题的警告除外。

"mapreduce.map.log.level": "OFF",
  "mapreduce.reduce.log.level": "OFF",
  "yarn.app.mapreduce.am.log.level": "OFF"

我在几乎所有其他log4j.properties文件中都有这些设置。

"log4j.logger.org.apache.parquet.CorruptStatistics": "OFF",
  "log4j.logger.org.apache.parquet": "OFF",
  "log4j.rootLogger": "OFF, console"

老实说,在这一点上,我只是想找到一些方法关闭日志,让工作运行不知何故。我读到过类似的问题,比如这个链接,他们通过更改log4j设置来修复它,但是这是针对spark的,在hive/tez和amazon上似乎不起作用。感谢您的帮助。

ui7jx7zq

ui7jx7zq1#

好的,我最终通过修改emr中每个数据节点和主节点的java logging.properties文件来解决这个问题。在我的例子中,文件位于/etc/alternatives/jre/lib/logging.properties
我向引导操作文件中添加了一个shell命令,以自动将以下两行添加到属性文件的末尾:
org.apache.parquet.level=严重
org.apache.parquet.corruptstatistics.level=严重
只是想更新的情况下,其他人面临同样的问题,因为这是真的没有设置正确的亚马逊和需要大量的试验和错误。

相关问题