如何从hive终端内运行hql文件?

时间:2017-01-11 05:39:03

标签: linux bash shell hadoop hive

我需要运行一个HQL文件并根据结果执行操作。 HQL文件创建一个表。以下是我从bash脚本调用脚本的方法。

if echo -e "hive -f $table_create_file -hiveconf database='$hive_db' -hiveconf table='$hive_table_name' -hiveconf query='$hive_query'"
then 
      echo "success"
else
      echo "error message"
exit 100
fi

但即使HQL文件中的create table命令失败,这也会返回成功。我相信这是因为我没有进入蜂巢终端。我该如何处理这种情况?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果hive命令返回成功/失败返回代码,具体取决于执行的状态,您可以直接在if-clause中使用它作为

if hive -hiveconf database="$hive_db" -hiveconf table="$hive_table_name" -hiveconf query="$hive_query" -f "$table_create_file" 
then 
      echo "success"
else
      echo "error message"
      exit 100
fi

我已经对shell的所有变量进行了双引号,以便在执行时展开它。