【问题标题】:Parquet Warning Filling up Logs in Hive MapReduce on Amazon EMR在 Amazon EMR 上的 Hive MapReduce 中填充日志的 Parquet 警告
【发布时间】:2017-12-01 06:28:53
【问题描述】:

我正在 Tez 上 Hive 上存储为镶木地板的表上运行自定义 UDAF。我们的 Hive 作业在 YARN 上运行,全部设置在 Amazon EMR 中。但是,由于我们拥有的 Parquet 数据是使用旧版本的 Parquet (1.5) 生成的,我收到一条警告,该警告正在填满 YARN 日志并导致磁盘在作业完成之前耗尽空间。

这是警告:

PM 警告:org.apache.parquet.CorruptStatistics:忽略 统计数据 因为 created_by 无法解析(参见 PARQUET-251):parquet-mr 版本

它还打印一个堆栈轨迹。我一直试图使警告日志静音但无济于事。除了这个警告,我已经设法关闭了几乎所有类型的日志。我尝试使用here 概述的 AWS 配置修改几乎每个 Log4j 设置文件。

到目前为止我尝试过的事情:

  1. 我在 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"
    
  2. 我在 mapred-site.xml 上有以下设置。这些设置有效地关闭了我的 YARN 日志中发生的所有日志记录,但有问题的警告除外。

      "mapreduce.map.log.level": "OFF",
      "mapreduce.reduce.log.level": "OFF",
      "yarn.app.mapreduce.am.log.level": "OFF"
    
  3. 我在几乎所有其他 log4j.properties 文件中都有这些设置。我在之前的 AWS 链接中显示的列表中找到了这些设置。

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

老实说,在这一点上,我只是想找到一些方法来关闭日志并以某种方式运行工作。我读过类似的问题,例如link,他们通过更改 log4j 设置来修复它,但这是针对 Spark 的,它似乎不适用于 Hive/Tez 和 Amazon。任何帮助表示赞赏。

【问题讨论】:

    标签: hive hadoop-yarn emr parquet tez


    【解决方案1】:

    好的,所以我最终通过修改 EMR 中每个数据节点和主节点的 java logging.properties 文件来解决这个问题。就我而言,该文件位于 /etc/alternatives/jre/lib/logging.properties

    我在引导操作文件中添加了一个shell命令,以自动将以下两行添加到属性文件的末尾:

    org.apache.parquet.level=严重

    org.apache.parquet.CorruptStatistics.level = 严重

    只是想更新,以防其他人遇到同样的问题,因为亚马逊确实没有正确设置,需要大量的试验和错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-07
      • 2020-08-25
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2015-08-10
      • 1970-01-01
      相关资源
      最近更新 更多