hive的非交互模式,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
$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
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
此外,hive也支持熟悉map-reduce的开发者使用map-reduce程序对数据做更加复杂的分析。hive可以很好的结合thrift和控制分隔符,也支持用户自定义分隔符。hive基于hadoop,hadoop是批处理系统,不能保存低延迟,因此,hive的查询也不能保证低延迟。hive的工作模式是:提交一个任务,等到任务结束时被通知,而不是实时查询。相对应的是,类似于Oracle这样的系统当运行于小数据集的时候,响应非常快,可当处理的数据集非常大的时候,可能需要数小时。需要说明的是,hive即使在很小的数据集上运行,也可能需要数分钟才能完成。低延迟不是hive追求的首要目标。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。