Hive之CLI
参数
CLI,command line interface
,最常用的命令行接口。
常用参数
参数 | 说明 |
---|---|
-d,—define <key=value> | 指定参数 |
—database | 数据库名称 |
-e | 指定查询的字符串,比如select语句 |
-f | 指定文件 |
-H, -help | 显示帮助 |
-h | 主机名 |
—hiveconf | 类似-d效果 |
-hivevar | 定义变量 |
-i | 进入shell之前,先执行指定的文件 |
-p | 指定远程连接的端口 |
-S,—silent | 静默模式,很多内容忽略 |
-v,—verbose | 显示更多的内容 |
三种配置方式
- Hive-site.xml
—hiveconf
- hive CLI 中进行
set property=value
操作demo
- -d
hive -d col=id --database hello # 指定变量和数据库名称hello
# 使用变量
hive> select '${col}' from table2 limit 3; # 显示的是id名称
hive> select ${col} from table2 limit 3; # 显示的是id的具体值
- hiveconf
root: hive --hiveconf mapred.reduce.tasks=10
hive> set mapred.map.tasks=10;
- -e
hive -e "select * from table2 where id > 4" --database hello;
Hive之Beeline
beeline简介
beeline
是hiveserver2
的CLI
,一个JDBC
的客户端,分为两种模式
- 嵌入模式:一个嵌入的Hive
- 远程模式:通过thrift协议与单独的HiveServer2进程
beeline必须同时和hiveserver2同时使用
使用方法
- 启动hiveserver2
- 查看是否启动:
ps -ef | grep hive
- 启动beeline
- 退出beeline:
!quit
- 连接数据库,一定要带上感叹号❕
!connect jdbc:hive2://localhost:10000/defautl
代码语言:javascript复制6. 直接进入数据库中
代码语言:javascript复制$ $HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT
连接报错
- 先关闭
Hadoop
集群
/Users/peter/Downloads/hadoop-2.9.2/sbin/stop-all.sh
- 通过报错显示,是权限问题:用户不具备权限
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: piqianchao is not allowed to impersonate root (state=08S01,code=0)
- 编辑
Hadoop
的配置文件,添加两项内容
需要注意的是:将用户进行更改,不一定是root
用户
vim /Users/peter/Downloads/hadoop-2.9.2/etc/hadoop/core-site.xml
- 重启
Hadoop
集群
/Users/peter/Downloads/hadoop-2.9.2/sbin/start-all.sh
- 重启
hiveserver2
重启hiveserver2
和beeline
,即可正常进入