hadoop - 如何运行查询配置单元并通过日志获取 applicationID
问题描述
我正在编写一个执行 hive 命令的 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:文件:/usr/hdp/2.2.6.0-2800/hadoop/lib/slf4j-log4j12-1.7.5.jar 中找到绑定!/Org/slf4j/impl/StaticLoggerBinder.class] SLF4J:在 [jar: 文件中找到绑定:/usr/hdp/2.2.6.0-2800/hive/lib/hive-jdbc-0.14.0.2.2.6.0-2800-独立的.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:见http://www.slf4j.org/codes.html#multiple_bindings的解释。SLF4J:实际绑定的类型为 [org.slf4j.impl.Log4jLoggerFactory]
当我通过命令行运行时,可以获取我的具体查询的applicationID,如下图:
我想知道是否有任何方法可以通过日志获取 applicationID。
今天我正在使用该命令yarn application -list -appTypes TEZ
并监视查询开始附近出现的进程,以便稍后使用该命令yarn application -status application_XXXXX
仅监视我的执行。
问题是这种方法是有缺陷的,例如,另一个进程可能会在类似的时间进入队列。
感谢您的帮助。
解决方案
您正在运行带有选项的配置单元查询文件,-S
该选项抑制与yarn application id
.
尝试运行
hive -f pdr_extrator.sql
如果重定向,您必须能够在控制台或文件上看到如下日志。
Status: Running (Executing on YARN cluster with App id application_1579987899994_341626)
推荐阅读
- firebase - 注册活动开始并出现,而 admob 打开应用程序广告仍未被用户关闭
- php - PHP strpos() 作为一种实现脏话过滤器的方法
- python - 如何修复 Django Duplicate key form 无效和保存?
- go - 即使使用互斥锁和延迟运行 goroutines 也会感到恐慌
- c++ - Clang tidy 不适用于 StaticConstantCase
- forms - 从下一页按下移动返回按钮时,取消离子页面中的 OTP 字段
- spring - Lombok toBuilder 空值检查
- node.js - Mongoose:带过滤的无限滚动
- node.js - 如何防止第二个功能在响应发送后执行
- java - 通过 Java servlet 动态加载图像