Предупреждение о паркете Заполнение журналов в Hive MapReduce на Amazon EMR

Я запускаю пользовательский UDAF на столе, хранящемся как паркет в Hive на Tez. Наши задания Hive выполняются на YARN, и все они настроены в Amazon EMR. Однако из-за того, что данные паркета, которые у нас есть, были сгенерированы с помощью более старой версии Parquet (1.5), я получаю предупреждение, которое заполняет журналы YARN и приводит к нехватке места на диске до завершения задания.

Это предупреждение:

ПРЕДУПРЕЖДЕНИЕ PM: org.apache.parquet.CorruptStatistics: Игнорирование статистики, поскольку не удалось проанализировать created_by (см. PARQUET-251): версия parquet-mr

Он также печатает дорожку стека. Я пытался отключить журналы предупреждений, но безрезультатно. Мне удалось отключить почти все типы журналов, кроме этого предупреждения. Я попытался изменить почти каждый файл настроек Log4j, используя конфигурацию AWS, как описано здесь.

Вещи, которые я пробовал до сих пор:

  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"
    

Честно говоря, на данный момент я просто хочу найти способ отключить журналы и как-то запустить работу. Я читал о похожих проблемах, таких как эта ссылка, где они исправили ее, изменение настроек log4j, но это для Spark и, похоже, не работает на Hive/Tez и Amazon. Любая помощь приветствуется.


person Shruf    schedule 28.06.2017    source источник


Ответы (1)


Итак, в итоге я исправил это, изменив файл java logging.properties для КАЖДОГО отдельного узла данных и главного узла в EMR. В моем случае файл находился в /etc/alternatives/jre/lib/logging.properties.

Я добавил команду оболочки в файл действия начальной загрузки, чтобы автоматически добавить следующие две строки в конец файла свойств:

org.apache.parquet.level=СЕРЬЕЗНЫЙ

org.apache.parquet.CorruptStatistics.level = СЕРЬЕЗНЫЙ

Просто хотел обновить на случай, если кто-то еще столкнется с той же проблемой, поскольку Amazon действительно неправильно настроил ее и потребовал много проб и ошибок.

person Shruf    schedule 30.06.2017