我有一个获取文件、提取文本并运行 shell 脚本的流程,该脚本又运行 hive 脚本。(我只是从文件中提取日期并将其作为 -hivevar 传递)。我的 shell 脚本看起来像这样:
#!/bin/bash
endDate=$1
CONNECT="jdbc:hive2://master2:10000/default"
beeline -u "$CONNECT" -n root -hivevar endDate="$endDate" -f /pathToScript/Hive_scipt.hql
蜂巢脚本完成并将数据插入到我的表中,但 ExecuteStreamCommand 无限期地保持运行(1 停留在顶角),我必须重新启动 nifi ..(有更好的方法来处理这个问题吗?)。
我注意到了一些事情:
- 如果我减小查询的大小(我的配置单元查询是多个联合),则 ExecuteStreamCommand 不会挂起。
- 当作业挂起时,资源管理器上的 AM 会保持运行相当长的一段时间 ~ 10 分钟。有点像当您使用 1 个容器创建 Hive CLI Tez 会话时。当我减小查询大小并且作业没有挂起时,AM 会立即进入完成状态。- 通过命令行手动运行完整查询或脚本工作正常。
- 行为不一致。有时它不会挂起,有时它会......(大多数时候它会......)
有任何想法吗?在 app.log 或应用程序日志中找不到任何内容