Hue & Sentry & Impala & hive
2018-03-06 本文已影响0人
Wille_Li
1. CM安装Hue,Sentry,Impala
1.1 每个服务单独建立对应数据库;
create database hue;
create database sentry;
create database impala;
1.2 具体安装步骤都是下一步,唯一要注意的是:填写对应数据库信息,保证数据库链接可用。
2. CDH 配置修改
2.1 HDFS 配置
![](https://img.haomeiwen.com/i5456530/5d849fb2c1d07a43.png)
2.2 hive 配置
![](https://img.haomeiwen.com/i5456530/72e78e3d4a7f9559.png)
![](https://img.haomeiwen.com/i5456530/c3e37e7a57a98de3.png)
2.3 Impala 配置
![](https://img.haomeiwen.com/i5456530/05b8f65ede64c9e5.png)
2.4 Hue 配置
![](https://img.haomeiwen.com/i5456530/00cc526fabf3495d.png)
选择需要安装的服务
![](https://img.haomeiwen.com/i5456530/5eaf52aae0c7df08.png)
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访问权限
![](https://img.haomeiwen.com/i5456530/a659261005ff8d87.png)
添加用户Step 1:设置 Hue 账号密码(必须和Linux用户一样)
![](https://img.haomeiwen.com/i5456530/d47a2efb54da4317.png)
添加用户Step 2:选择用户组,设置用户信息
![](https://img.haomeiwen.com/i5456530/9f0ab2ee43657ab3.png)
添加用户Step 3: 高级设置(可以设置为超级用户), 点击Add user 完成添加用户。
![](https://img.haomeiwen.com/i5456530/11203131332e8842.png)
4 Hive 角色权限分配
Sentry 是通过角色控制权限范围,把角色(Role) 分配到用户组 (Group) ,达到对hive表访问权限控制。
进入控制页面: Hue -> Security -> Hive tables
![](https://img.haomeiwen.com/i5456530/b448564d3888ed1e.png)
4.1 添加角色,分配权限,添加分组
进入Roles页面 -> add
![](https://img.haomeiwen.com/i5456530/239e5046380cc483.png)
权限最小粒度可以控制到列,即用户可以访问到哪些列。
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