Как подавить предупреждение hive

#hive

#улей

Вопрос:

Я новичок в Hive. Пытаюсь выполнить один запрос, который выводит данные в один файл.

Ниже приведен мой запрос :

hive -e «УСТАНОВИТЕ hive.auto.convert.join=false;установите hive.server2.logging.operation.уровень = ОТСУТСТВУЕТ; УСТАНОВИТЕ mapreduce.map.memory.mb = 16384; УСТАНОВИТЕ mapreduce.map.java.opts=’-Djava.net.preferIPv4Stack=true -Xmx13107M’; УСТАНОВИТЕ mapreduce.reduce.memory.mb = 13107; УСТАНОВИТЕ mapreduce.reduce.java.opts=’-Djava.net.preferIPv4Stack=true -Xmx16384M’; установите hive.support .параллелизм = false; УСТАНОВИТЕ hive.exec.dynamic.partition=true; УСТАНОВИТЕ hive.exec.dynamic.partition.mode=nonstrict; УСТАНОВИТЕ hive.exec.max.dynamic.partitions.pernode=10000; УСТАНОВИТЕ hive.exec.max.dynamic.partitions=100000; УСТАНОВИТЕ hive.exec.max.created.files= 1000000;УСТАНОВИТЕ mapreduce.input.fileinputformat.split.maxsize=128000000; УСТАНОВИТЕ hive.hadoop.supports.splittable.combineinputformat=true;установите hive.execution.engine=mr; установите hive.enforce.bucketing = true;запрос улья здесь;» > /tmp/analysis

Но в файле /tmp / analysis я вижу предупреждения, а также приведенные ниже.

ПРЕДУПРЕЖДЕНИЕ: класс метода org.apache.commons.был вызван logging.impl.SLF4JLogFactory#release(). ПРЕДУПРЕЖДЕНИЕ: Пожалуйста, смотрите http://www.slf4j.org/codes.html#release для объяснения.

Как я могу подавить это?

Ответ №1:

Из документа Hive https://cwiki.apache.org/confluence/display/Hive/LanguageManual Cli

Ведение журнала:

Hive использует log4j для ведения журнала. По умолчанию CLI не отправляет журналы на консоль. Уровень ведения журнала по умолчанию — WARN для выпусков Hive до версии 0.13.0. Начиная с Hive 0.13.0, уровень ведения журнала по умолчанию — INFO. По умолчанию Hive будет использовать hive-log4j.default в conf/ каталоге установки Hive, который записывает журналы в /tmp/<userid>/hive.log и использует WARN уровень.

Часто желательно отправлять журналы в стандартный вывод и / или изменять уровень ведения журнала в целях отладки. Это можно сделать из командной строки следующим образом:

  $HIVE_HOME/bin/hive --hiveconf hive.root.logger=INFO,console
  

hive.root.logger определяет уровень ведения журнала, а также место назначения журнала. Указание консоли в качестве целевого объекта отправляет журналы в стандартную ошибку (вместо файла журнала).

По желанию пользователя, журналы могут быть отправлены на консоль путем добавления аргументов, показанных ниже:

 bin/hive --hiveconf hive.root.logger=INFO,console  //for HiveCLI (deprecated)
bin/hiveserver2 --hiveconf hive.root.logger=INFO,console
  

В качестве альтернативы пользователь может изменить уровень ведения журнала, только используя:

 bin/hive --hiveconf hive.root.logger=INFO,DRFA //for HiveCLI (deprecated)
bin/hiveserver2 --hiveconf hive.root.logger=INFO,DRFA
  

Другим вариантом ведения журнала является политика регистрации на основе времени (применимо для Hive 1.1.0 и выше, HIVE-9001), предоставляя ЕЖЕДНЕВНУЮ опцию, как показано ниже:

 bin/hive --hiveconf hive.root.logger=INFO,DAILY //for HiveCLI (deprecated)
bin/hiveserver2 --hiveconf hive.root.logger=INFO,DAILY
  

Надеюсь, это поможет!

Ответ №2:

Используйте беззвучный режим hive, который не печатает никаких журналов в выходных данных

 hive -S -e "SET hive.auto.convert.join=false;set hive.server2.logging.operation.level=NONE;SET mapreduce.map.memory.mb = 16384; SET mapreduce.map.java.opts='-Djava.net.preferIPv4Stack=true -Xmx13107M';SET mapreduce.reduce.memory.mb = 13107; SET mapreduce.reduce.java.opts='-Djava.net.preferIPv4Stack=true -Xmx16384M';set hive.support.concurrency = false; SET hive.exec.dynamic.partition=true;SET hive.exec.dynamic.partition.mode=nonstrict; SET hive.exec.max.dynamic.partitions.pernode=10000;SET hive.exec.max.dynamic.partitions=100000; SET hive.exec.max.created.files=1000000;SET mapreduce.input.fileinputformat.split.maxsize=128000000; SET hive.hadoop.supports.splittable.combineinputformat=true;set hive.execution.engine=mr; set hive.enforce.bucketing = true;hive query over here;" > /tmp/analysis