hive的非交互模式

时间:2023-03-08 22:06:35
hive的非交互模式

在linux的终端运行:$HIVE_HOME/bin/hive 会进入交互模式;

$HIVE_HOME/bin/hive  -e或者-f 是非交互模式

1、非交互模式运行HQL语句

$HIVE_HOME/bin/hive  -e 'select * from movie limit 10'

会显示mapreduce的进度,但不会进入hive的交互模式,终于现实查询结果

2、非交互模式运行HQL语句(-S静音模式)

$HIVE_HOME/bin/hive -S -e 'select * from movie limit 10'

增加-S选项,不会显示mapreduce进度

[hadoop@gaoyuan hive-0.14]$ bin/hive -S -e 'select * from movie limit 10'
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.4.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hive-0.14/lib/hive-jdbc-0.14.0-SNAPSHOT-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Error rolling back: Can't call rollback when autocommit=true
1 1 133 8
2 1 720 6
3 1 971 10
4 1 1095 7
5 1 1616 10
6 1 1978 7
7 1 2145 8
8 1 2211 8
9 1 3751 7
10 1 4062 3

3、把hive查询导出到一个文件里

$HIVE_HOME/bin/hive -S -e 'select * from movie limit 10' > /gaoyuan/ouput.txt

这个会把hive查询语句的运行结果导入output.txt文件里

4、不进入hive交互模式,运行hive脚本

$HIVE_HOME/bin/hive -f hiveScript.sql

也能够把输出结果存入一个文件里

$HIVE_HOME/bin/hive -f hiveScript.sql  >> /home/username/output.txt