Hadoop 如何运行查询配置单元并通过日志获取应用程序ID

Hadoop 如何运行查询配置单元并通过日志获取应用程序ID,hadoop,hive,yarn,apache-tez,Hadoop,Hive,Yarn,Apache Tez,我正在编写一个执行配置单元命令的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:警告

我正在编写一个执行配置单元命令的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:有关说明,请参阅。 SLF4J:实际绑定的类型为[org.SLF4J.impl.Log4jLoggerFactory]

通过命令行运行时,可以获取特定查询的applicationID,如下所示:

我想知道是否有办法通过日志获取应用程序ID

今天,我使用命令
warn application-list-appTypes TEZ
并监视出现在我的查询开始附近的过程,以便稍后使用命令
warn application-status application\uuuxxxxx
仅监视我的执行

问题在于,这种方法存在缺陷,例如,另一个进程可能在类似的时间进入队列


非常感谢您的帮助。

您正在使用
-S
选项运行配置单元查询文件,该选项禁止与
应用程序id相关的日志记录

试着跑

hive -f pdr_extrator.sql
若重定向,您必须能够在控制台或文件上看到如下日志

Status: Running (Executing on YARN cluster with App id application_1579987899994_341626)