Hue & Sentry & Impala & hive

1. CM安装Hue,Sentry,Impala

1.1 每个服务单独建立对应数据库;

create database hue;
create database sentry;
create database impala;

1.2 具体安装步骤都是下一步,唯一要注意的是:填写对应数据库信息,保证数据库链接可用。

2. CDH 配置修改

2.1 HDFS 配置

《Hue & Sentry & Impala & hive》 启动 Sentry 同步

2.2 hive 配置

《Hue & Sentry & Impala & hive》 hive的Sentry 服务

《Hue & Sentry & Impala & hive》 启动hive testing mode

2.3 Impala 配置

《Hue & Sentry & Impala & hive》 启动 Sentry 服务

2.4 Hue 配置

《Hue & Sentry & Impala & hive》 HDFS Web 配置角色

选择需要安装的服务

《Hue & Sentry & Impala & hive》 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访问权限

《Hue & Sentry & Impala & hive》 添加用户组

添加用户Step 1:设置 Hue 账号密码(必须和Linux用户一样)

《Hue & Sentry & Impala & hive》 添加用户 Step 1

添加用户Step 2:选择用户组,设置用户信息

《Hue & Sentry & Impala & hive》 添加用户 Step 2

添加用户Step 3: 高级设置(可以设置为超级用户), 点击Add user 完成添加用户。

《Hue & Sentry & Impala & hive》 添加用户 Step 3

4 Hive 角色权限分配

Sentry 是通过角色控制权限范围,把角色(Role) 分配到用户组 (Group) ,达到对hive表访问权限控制。
进入控制页面: Hue -> Security -> Hive tables

《Hue & Sentry & Impala & hive》 Hive 权限控制界面

4.1 添加角色,分配权限,添加分组

进入Roles页面 -> add

《Hue & Sentry & Impala & hive》 添加角色

权限最小粒度可以控制到列,即用户可以访问到哪些列。

PS:

  1. With grant 可以给角色添加管理相关的权限;
  2. Browse 只是从数据库角度看权限的界面,操作基本一样;
  3. 只有在 Sentry 服务配置的管理员组才有权限添加角色(如:hue);

    《Hue & Sentry & Impala & hive》 管理员组

到这里 Hue 的权限控制基本配置完成,可以在Hue内查询,添加Hive 和 Impala 数据。

遇到的问题

  1. hue 用户没有添加角色权限
    解决方法: hue用户需要配置到管理员组(如: hue).
  1. 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
  1. hue 浏览器缓存严重,修改配置,必须刷浏览器缓存。

  2. 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

    原文作者:Wille_Li
    原文地址: https://www.jianshu.com/p/035d982661da
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞