2016-07-08 54 views
0

当我有取一个文件,提取文本,并运行其进而运行的蜂房脚本外壳脚本的流动。 (我只是从文件中提取一个日期并将其作为-hivevar传递)。我的shell脚本看起来是这样的:ExecuteStreamCommand挂起执行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 Session时。当我减小查询大小并且作业不挂起时,AM就马上完成状态。 - 通过命令行手动运行完整查询或脚本可以正常工作。
  • 行为不一致。有时它不会挂,有时它会...(大部分时间它会..)

任何想法?在app.log或应用程序日志

回答

0

当您运行在命令行,它产生大量输出的(无论是/两标准输出和/或标准差),如TEZ找不到任何东西/ MR进展?

尝试直线与--silent = true选项(除非你真的需要出于某种原因输出),或(尽管不建议使用)“蜂巢”客户端-S。如果输出是问题,这应该减轻它。