我有一个获取文件,提取文本和运行shell脚本的流程,后者又运行一个配置单元脚本。 (我只是从文件中提取日期并将其作为-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
hive脚本完成并且数据被插入到我的表中但是ExecuteStreamCommand无限期地保持运行(1保持在顶角)并且我必须重新启动nifi ..(有更好的方法来处理这个吗?)。
我注意到了一些事情:
有什么想法吗?无法在app.log或应用程序日志中找到任何内容
答案 0 :(得分:0)
当你从命令行运行它时,是否会产生大量输出(标准输出和/或标准输出中的任何一个/两者),例如Tez / MR进度?
使用--silent = true选项直接尝试(除非您出于某种原因确实需要输出),或者使用-S(尽管已弃用)“hive”客户端。如果输出是问题,这应该可以缓解它。
答案 1 :(得分:0)
我认为您的案例可能与我在https://issues.apache.org/jira/browse/NIFI-5024中解决的问题有关。
如果您的脚本已经足够记录到stderr(我可以用1mb重现该bug,但可能会更少),那么运行hive脚本和ExecuteStreamCommand处理器的unix进程将进入死锁状态。细节在上面的jira问题中。