转自:http://sishuok.com/forum/blogPost/list/6220.html
第一部分:Hive bin下脚本介绍
Hive bin下的脚本介绍
Ext
hive
hive-config
第二部分:Hive Shell 基本操作
Hive 命令行
•hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S]
•-i 从文件初始化HQL
•-e 从命令行执行指定的HQL
• -f 执行HQL脚本
•-v 输出执行的HQL语句到控制台
•-p <port> connect to Hive Server on port number -hiveconf x=y Use this to set hive/hadoop configuration variables.
Hive 命令行示例
•从命令行执行指定的sql语句
•$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'
•以指定的hive环境变量执行指定的sql语句
•$HIVE_HOME/bin/hive -e 'select a.col from tab1 a' -hiveconf hive.exec.scratchdir=/home/my/hive_scratch -hiveconf mapred.reduce.tasks=32
•以沉默模式执行指定的sql语句,并将执行结果导出到指定文件 HIVE_HOME/bin/hive -e 'select a.col from tab1 a' > a.txt
•以非交互式模式执行sql文件
•HIVE_HOME/bin/hive -f /home/my/hive-script.sql
•在进入交互模式之前,执行初始化sql文件
•HIVE_HOME/bin/hive -i /home/my/hive-init.sql
Hive 交互式Shell命令
• 当命令 $HIVE_HOME/bin/hive以不带 -e/-f 选项的方式运行时, hive将进入到交互模式
•以(;)冒号结束命令行
*Command *
|
Description
|
quit
|
退出命令行
|
set <key>=<value>
|
设置参数
|
set -v
|
打印出所有Hive支持的命令
|
*Command *
|
Description
|
add FILE <value> <value>*
|
增加一个文件到资源列表.
|
list FILE
|
列出所有已经添加的资源
|
list FILE <value>*
|
根据value来查看添加的资源
|
! <cmd>
|
execute a shell command from hive shell
|
dfs <dfs command>
|
执行DFS的命令
|
<query string>
|
执行查询并输出到标准输出
|
第三部分:日志
日志
•Hive使用Log4J来处理日志
•我们可以通过下面的命令设计Hive的日志级别
•$HIVE_HOME/bin/hive -hiveconf hive.root.logger=INFO,console
•hive.root.logger的有INFO,DEBUG, 等
第四部分:资源
Hive添加资源
•Hive可以动态的添加资源,如文件
•一般情况下,我们是在与Hive进行交互时添加文件
•实际上是使用Hadoop的 Distributed Cache来控制的
例子
•ADD { FILE[S] | JAR[S] | ARCHIVE[S] } <filepath1> [<filepath2>]*
•LIST { FILE[S] | JAR[S] | ARCHIVE[S] } [<filepath1> <filepath2> ..]
• DELETE { FILE[S] | JAR[S] | ARCHIVE[S] } [<filepath1> <filepath2> ..]