我正在编写一个shell脚本,它执行一个配置单元命令,将日志和输出信息写入两个单独的文件:
hive -S -f pdr_extrator.sql 2> pdr_extrator_log.txt | sed 's / [\ t] / | / g' 1> pdr_extrator_out.txt
执行结束时的日志文件如下所示:
log4j:警告org.apache.log4j.dailyrollingfileappender中没有此类属性[maxbackupindex]。log4j:警告org.apache.log4j.dailyrollingfileappender中没有此类属性[maxfilesize]。slf4j:类路径包含多个slf4j绑定。slf4j:在[jar:file:/usr/hdp/2.2.6.0-2800/hadoop/lib/slf4j-log4j12-1.7.5.jar]中找到绑定/org/slf4j/impl/staticloggerbinder.class]slf4j:在[jar:file:/usr/hdp/2.2.6.0-2800/hive/lib/hive-jdbc-0.14.0.2.2.6.0-2800-standalone.jar!/org/slf4j/impl/staticloggerbinder.class]slf4j:请参阅http://www.slf4j.org/codes.html#multiple_bindings 为了解释。slf4j:实际绑定的类型为[org.slf4j.impl.log4jloggerfactory]
通过命令行运行时,可以获得特定查询的applicationid,如下所示:
applicationid-hive命令行
我想知道是否有办法通过日志获取applicationid。
今天我在使用命令 yarn application -list -appTypes TEZ
并监视出现在查询开始附近的进程,以便以后使用该命令 yarn application -status application_XXXXX
只监视我的执行。
问题是这个方法有缺陷,因为另一个进程可能在类似的时间进入队列。
谢谢你的帮助。
1条答案
按热度按时间ojsjcaue1#
您正在用运行配置单元查询文件
-S
选项,该选项禁止与yarn application id
.试着跑
如果重定向,您必须能够在控制台或文件上看到如下日志。