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
1 | hive -d col=id --database hello # 指定变量和数据库名称hello |
- hiveconf
1 | root: hive --hiveconf mapred.reduce.tasks=10 |
- -e
1 | 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
- 连接数据库,一定要带上感叹号❕
1 | !connect jdbc:hive2://localhost:10000/defautl |
6. 直接进入数据库中
1 | $HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT |
连接报错
- 先关闭
Hadoop
集群
1 | /Users/peter/Downloads/hadoop-2.9.2/sbin/stop-all.sh |
- 通过报错显示,是权限问题:用户不具备权限
1 | 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
用户
1 | vim /Users/peter/Downloads/hadoop-2.9.2/etc/hadoop/core-site.xml |
- 重启
Hadoop
集群
1 | /Users/peter/Downloads/hadoop-2.9.2/sbin/start-all.sh |
- 重启
hiveserver2
重启hiveserver2
和beeline
,即可正常进入