如何在配置单元中调用shell脚本

时间:2016-08-10 13:35:07

标签: shell hadoop hive

有人可以解释一下如何从hive调用shell脚本吗?我对此进行了探讨,发现我们必须使用source FILE命令从hive调用shell脚本。但我不确定我是如何使用source File命令从hive调用我的shell脚本的。有人可以帮我这个吗?在此先感谢。

3 个答案:

答案 0 :(得分:2)

要通过HIVE CLI调用shell脚本,请查看以下示例。

!sh file.sh; 

!./file.sh;

请访问以下链接中的 Hive Interactive Shell命令部分以获取更多信息。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

答案 1 :(得分:2)

使用! <command> - Executes a shell command from the Hive shell.

<强> test_1.sh:

#!/bin/sh
echo "This massage is from $0 file"

<强>蜂房test.hql:

! echo showing databases... ; 
show databases;

! echo showing tables...;
show tables;

! echo runing shell script...;
! /home/cloudera/test_1.sh

<强>输出:

$ hive -v -f hive-test.hql
showing databases...

    show databases
OK
default
retail_edw
sqoop_import
Time taken: 0.997 seconds, Fetched: 3 row(s)
showing tables...

    show tables
OK
scala_departments
scaladepartments
stack
stackover_hive
Time taken: 0.062 seconds, Fetched: 4 row(s)
runing shell script...
This massage is from /home/cloudera/test_1.sh file

答案 2 :(得分:0)

不知道它是否适合您,但您可以通过从bash shell启动hive命令并结合hive查询结果来反转您的问题。您甚至可以为此创建一个bash脚本,以便将hive查询与bash命令组合在一个脚本中:

#!/bin/bash
hive -e 'SELECT count(*) from table' > temp.txt
cat temp.txt