作者:楼高
 本节详细介绍企业级大数据架构中的第六部分,数据授权和审计管理
1.Ranger简介
Apache Ranger是一款被设计成全面掌管Hadoop生态系统的数据安全管理框架,为Hadoop生态系统众多组件提供一个统一的数据授权和管理界面,
 管理员只需要对接一个Ranger管理系统,就可以对整个Hadoop生态系统进行数据管理,数据授权和审计。
2.安装Ranger和Ranger KMS
需要先创建ranger库
CREATE DATABASE ranger DEFAULT CHARACTER SET utf8;
CREATE USER 'ranger'@'localhost' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'localhost';
CREATE USER 'ranger'@'%' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
需要先创建rangerkms库
CREATE DATABASE rangerkms DEFAULT CHARACTER SET utf8;
CREATE USER 'rangerkms'@'localhost' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost';
CREATE USER 'rangerkms'@'%' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
下面以Ambari安装组件为例:
 
 
 
 
 
 
 
 
 
 
 
3.FAQ
(1)测试联通性时报Access denied for user
 
 Root用户没有权限导致的
 给root用户添加权限后测试通过
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hdp123456'
Access denied for user 'root'@'%' to database 'rangerkms' ErrorCode: 1044
(2)登录mysql查看权限
mysql> SELECT host,user,authentication_string,Grant_priv,Super_priv FROM mysql.user;

 可以看到授权的权限没有打开,修复下
 打开权限
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
4.Ranger配置
4.1 HDFS配置
4.1.1在ranger中选择开启要开ranger相对于的组件
 
 4.1.2选择对应组件添加相关配置
 
 4.1.3参数配置
 
 4.1.4测试联通性之后保存
 
 参数说明
| 参数 | 说明 | 
|---|---|
| Service Name | 自定义 | 
| Username | 自定义 | 
| Password | 自定义 | 
| Namenode URL | 非高可用集群:hdfs://emr-header-1:9000 | 
| 高可用集群:hdfs://emr-header-1:8020 | |
| Authorization Enabled | 标准集群选择No;高安全集群选择Yes | 
| Authentication Type | Simple:表示标准集群 | 
| Kerberos:表示高安全集群 | |
| dfs.datanode.kerberos.principal | 标准集群时不填写;高安全集群时填写hdfs/_HOST@EMR.${id}.com | 
| dfs.namenode.kerberos.principal | |
| dfs.secondary.namenode.kerberos.principal | |
| Add New Configurations | 
说明 您可以登录服务器执行hostname命令,hostname中的数字即为${id}。
 Namenode URL参数查看
 
 
 4.1.5权限配置示例
 例如,授予test用户/user/foo路径的Write和Execute权限。
 a.进入Ranger UI页面
 b.在Ranger UI页面,单击配置好的hdp-hadoop。
 
 c.单击右上角的Add New Policy。
 d.配置相关参数。
 e.单击Add。
 f.单击Add。
| 参数 | 说明 | 
|---|---|
| Policy Name | 策略名称,可以自定义。 | 
| Resoure Path | 资源路径。 | 
| recursive | 子目录或文件是否集成权限。 | 
| Select Group | 指定添加此策略的用户组。 | 
| Select User | 指定添加此策略的用户。 | 
| Permissions | 选择授予的权限。 | 
添加Policy后,实现了对test用户的授权。test用户即可访问/user/foo的HDFS路径。
 说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。
更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw



















