Hiveserver2 java远程连接hive

关于Hive的安装和基本配置,在之前已经写过
这次写怎么把hive应用到实际代码开发中
首先要启动hiveserver2服务

启动元数据服务
hive --service metastore &
启动hiveserver2
hive --service hiveserver2 &

启动后,端口分别是9083和10000,
端口10002是HiveServer2 的webui端口

我这里第一次启动的时候,hiveserver2 没有启动起来,
查看日志hive.log
报错信息:

 ERROR [main] session.SessionState: Error setting up authorization: 
Can not understand the config privilege definition ALL

发现是hive-site.xml配置文件有问题

1、我打开了权限控制
hive.security.authorization.enabled=true
所以需要设置权限的
2、所以需要通过hive-site.xml配置默认权限
hive.security.authorization.createtable.user.grants=user1,user2:select;user3:create  

配置完后重新启动hiveserve2, 启动成功啦

然后测试远程连接

bin/beeline -u jdbc:hive2://localhost:10000 admin
0: jdbc:hive2://localhost:10000/db_hive>
说明连接成功
因为admin是超级用户不需要设置密码,如果用普通用户,我们需要设置权限的

问题来了,username和password是什么
这里涉及到hive的用户权限相关

2. hive权限设置:

创建角色:

CREATE ROLE test_role;
GRANT ROLE test_role TO USER mllib;

分配权限给角色:

GRANT CREATE ON DATABASE default TO group test_role;
GRANT SELECT on table authorization_test to group test_role;
GRANT DROP on table authorization_test to group test_role;
GRANT ALL on table authorization_test to group test_role;

分配权限给用户

GRANT CREATE ON DATABASE default TO user admin;
GRANT SELECT on table authorization_test to user admin;
GRANT DROP on table authorization_test to user admin;
GRANT ALL on table authorization_test to user admin;

分配创建数据库的权限
grant create to user admin;
查看权限分配

SHOW GRANT user admin ON DATABASE default;
SHOW GRANT group test_role ON DATABASE default;

删除权限

revoke all on database spark from user mllib;

你可能感兴趣的:(Hiveserver2 java远程连接hive)