1. CM安装Hue,Sentry,Impala
1.1 每个服务单独建立对应数据库;
create database hue;
create database sentry;
create database impala;
1.2 具体安装步骤都是下一步,唯一要注意的是:填写对应数据库信息,保证数据库链接可用。
2. CDH 配置修改
2.1 HDFS 配置
启动 Sentry 同步2.2 hive 配置
hive的Sentry 服务启动hive testing mode
2.3 Impala 配置
启动 Sentry 服务2.4 Hue 配置
HDFS Web 配置角色选择需要安装的服务
Hue 内服务
3. Hue 用户添加
3.1 Linux 用户添加,添加用户组;
Linux系统中添加一个用户,添加到指定组(只会给开发人员用户);
添加组
groupadd bi_dev
添加用户
useradd -s /bin/sh -g bi_dev -d /usr/jack -m jack
修改密码
passwd jack
3.2 Hue 添加同名用户组,同名用户, 用户组hue访问权限
添加用户组
添加用户Step 1:设置 Hue 账号密码(必须和Linux用户一样)
添加用户 Step 1
添加用户Step 2:选择用户组,设置用户信息
添加用户 Step 2
添加用户Step 3: 高级设置(可以设置为超级用户), 点击Add user 完成添加用户。
添加用户 Step 3
4 Hive 角色权限分配
Sentry 是通过角色控制权限范围,把角色(Role) 分配到用户组 (Group) ,达到对hive表访问权限控制。
进入控制页面: Hue -> Security -> Hive tables
Hive 权限控制界面
4.1 添加角色,分配权限,添加分组
进入Roles页面 -> add
添加角色
权限最小粒度可以控制到列,即用户可以访问到哪些列。
PS:
- With grant 可以给角色添加管理相关的权限;
- Browse 只是从数据库角度看权限的界面,操作基本一样;
只有在 Sentry 服务配置的管理员组才有权限添加角色(如:hue);
管理员组
到这里 Hue 的权限控制基本配置完成,可以在Hue内查询,添加Hive 和 Impala 数据。
遇到的问题
- hue 用户没有添加角色权限
解决方法: hue用户需要配置到管理员组(如: hue).
- Hue 的 Hive 插件访问权限问题
错误:
Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found
解决方法:安装缺失服务
yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
-
hue 浏览器缓存严重,修改配置,必须刷浏览器缓存。
-
hue 进入 Hive Table 看不到库信息
解决方法: 在 Hive 命令行 给Hue 用户组添加管理员角色。操作如下:
$ beeline
beeline> !connect jdbc:hive2://bi-master:10000 hive hive
#检查管理员角色是否存在
beeline> show roles;
#如果没有创建角色
CREATE ROLE admin_role;
# 把 server1 授权给 admin_role
GRANT ALL ON SERVER server1 TO ROLE admin_role;
# 把 admin_role 角色授权给 hue 用户组
GRANT ROLE admin_role TO GROUP `hue`;
beeline 需要自己安装
具体操作参考:https://www.jianshu.com/p/055c40dcb8c5
网友评论