写在张文章时,差点辣死我了。把sentry数据库密码搞掉了,导致hive,impala,hue都挂了。此事要引以为戒,以后要小心操作了。
- 安装Sentry服务
a) 在cloudera上添加Sentry服务
b) 选中Sentry服务并继续
c) 使用集群主机Master节点作为Sentry Sever服务器(Gateway选中集群内的所有服务器)
d) 根据需要进行的数据库选项配置。
选择“自定义数据库”需预先在服务器上部署好数据库
选择“嵌入式数据库”则为sentry自己创建数据库
sentry数据库放置一些自身运行的数据
e) 点选下一步之后让sentry完成服务安装
2.配置Sentry服务
Hadoop有两张安全策略,(1)sentry组件服务,(2)基于政策文件的sentry
两种服务中只能使用其中一种,使用sentry组件服务需要把基于政策文件的sentry功能禁用。
a) 配置不使用Sentry 政策文件
跑到Hive,Impala中的配置界面把基于政策文件的sentry功能关闭掉。
b) 配置打开使用Sentry服务
1)确保服务器上的hive用户和组有操作hive数据仓库的路径的权限(可通过服务器上赋予权限配置,也可打开hdfs和sentry同步功能)
2)关掉Hivesever2上的启用模拟功能
该功能是使Hivesever2和其它服务(如MapReduce和HDFS)进行会话时,模拟使用JDBC连接向Thrift-sever通信。
3)让Hive用户提交MapReduce作业
4) 让Hive用户提交YARN作业
个人理解:MapReduce没有做用户权限控制,所以只能去调节最小用户提交作业数量。YARN有做用户控制,直接给Hive配置上权限就可以了。
c) 配置Hive,Impala,Solr,Hue中打开Sentry服务功能
1) 跑到Hive,Impala,Solr,Hue中打开Sentry功能
2) 注意:确保hive service2上配置了允许时限制修改的功能。
注意:可在Hue上进行Sentry的权限配置,但必须确保Hue上配置的用户和组的对应关系和服务器上的用户和组的对应关系一致。
d) 添加对应的服务的用户组到Sentry服务的系统组中
3.设置Shell权限
a) 需要通过Root权限登陆
b) linux用户权限配置命令:
1) 查看用户当前的组:id test
2) 添加用户:useradd –d /usr/test -m test
3) 添加组:groupadd test
4) 赋权用户组usermod -G hive test
4.hue中配置权限
a) 在Hue进行用户和组的对应关系设置
1) 进行用户管理菜单界面
2) 菜单界面功能
a) user:用于新增和修改用户(此处可配置用户和组的关系)
b) Groups:用于新增和修改组(此处可配置用户和组的关系,组和Permissions的关系)
c) Permissions是Hue的菜单权限(可配置对应Hue菜单功能和组的对应关系)
此处需注意user及Groups必须在服务器上也具有对应关系。
b) 在Hue进行角色和组权限的关系设置
1) 进行Sentry配置菜单
2) 菜单界面功能:
- Borwse可浏览设置目前用户的角色权限
a) 可模仿user浏览数据库权限,以检查权限设置准确性
b) 可在Privileges中直接配置角色,组和权限的关系。
2. Roles可用于配置角色和组的对应关系
a) 可直接配置角色和权限的关系
b) 可直接配置角色和组的关系