Sentry--通过Cloudera Manager配置Sentry
本篇博客讲解一下通过Cloudera Manager
配置Sentry
的一个过程,如果对Sentry不够了解的可以查看这篇博客http://blog.javachen.com/2015/04/29/apache-sentry-architecture.html。添加Sentry服务
,以及Cloudera Manager
的界面配置这些都很简单,我就做一些简要说明,重点会说明我实际在Sentry
配置过程中遇到的一些坑吧。其他配置方式可以参考博客http://blog.csdn.net/shenliang1985/article/details/50463432,说明:本博客CDH版本5.5.1,以及到目前最新版本CDH版本5.8.0也同样适用。
添加Sentry服务
- 添加Sentry很简单,下一步下一步即可,选择sentry服务也只需要一台主机。
- 选择
数据库
时,最好使用MySQL,需要注意的一点就是:
- 在数据库节点如下“fetch-loadTest-26”下面需要安装MySQL并有相应的用户和数据库
- 在Sentry Server节点如上“fetch-loadTest-25”需要有MySQL驱动包
CM管理页面配置
在hue配置中修改, hue选择为Sentry
在Hive配置中修改
- 搜索Impersonation,取消下面该选项
- 在sentry-site.xml 的 Hive 服务高级配置代码段(安全阀)
1
2
3
4<property>
<name>sentry.hive.testing.mode</name>
<value>true</value>
</property>
在Sentry中配置,添加一个root(这有点奇怪,必须添加root用户)
HUE页面配置
登陆hue,发现多出一个Security选项,我们就可以通过Sentry表来管理,选项下面直接管理hive表
注意
:再CDH5.8.0默认Hue™ 3.10里面Security选项有所不同,但使用都是相同的,如下:
开始使用
- 用户管理界面下,添加root用户和root组,作为超级管理员,提供授权等功能
授权管理
通过root登陆hue,在用户管理员下添加
test1用户
、test1用户组
,并在Security下给test1组授权
(勾选创建主目录会在hdfs上创建相应目录);在安装
HiveServer2
的机器上添加相应的Linux用户
(如果不添加,即使授权了也无法查看到信息)[root@xiaoxiaomo ~]# groupadd test1 && useradd -g test1 test1 ##创建Linux组和用户
通过
Security选项
下的,Roles
给用户组test1
授权
3.1. 添加
test1_role角色,设置为test1组,并授权db=default给该组(PS:改组映射的是linux用户组
)
3.2. 然后我们登陆test1用户,查看信息,Okay了!
注意
:
- hue用户管理界面下添加的用户组,和Sentry里面授权的组没有直接关系;
- Sentry里面分配角色权限的组和Linux里面的组关联;
- 当我们添加完hue用户和组时,一般在linux相应这么添加,如下命令
3.1. 新增加一个用户并将其列入一个已有的用户组中:adduser -g 组 用户
;
3.2. 一个已有用户追加到一个已有用户组:usermod -a -G 组 用户
;
3.3. 直接修改组usermod -g 组 用户
,上面的-a代表 append。