代码之家  ›  专栏  ›  技术社区  ›  Shruf

拼花警告在Amazon EMR上的Hive MapReduce中填充日志

  •  1
  • Shruf  · 技术社区  · 8 年前

    我在一张桌子上运行一个自定义的UDAF,它作为拼花地板存储在Tez的Hive上。我们的蜂箱工作是在纱线上运行的,所有这些都是在亚马逊电子病历中设置的。然而,由于我们的拼花数据是用旧版本的拼花(1.5)生成的,我收到了一个警告,它正在填充纱线日志,并导致磁盘在作业完成之前用完空间。

    这是警告:

    统计数字

    它还打印堆栈轨迹。我一直试图使警告日志保持沉默,但没有任何效果。除了这个警告,我几乎关闭了所有类型的日志。我尝试过使用AWS配置修改几乎每个Log4j设置文件,如前所述 here .

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

    1. (以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. 我有以下设置 。这些设置有效地关闭了我的纱线日志中发生的所有日志记录,但有问题的警告除外。

        "mapreduce.map.log.level": "OFF",
        "mapreduce.reduce.log.level": "OFF",
        "yarn.app.mapreduce.am.log.level": "OFF"
      
    3. log4j.属性

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

    老实说,在这一点上,我只是想找到一些方法,关闭日志,让工作以某种方式运行。我读到过类似的问题,比如 link 他们通过更改log4j设置来修复它,但这是为了Spark,它似乎在Hive/Tez和Amazon上不起作用。感谢您的帮助。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Community Mohan Dere    6 年前

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

    org.apache.parquet.level=严重