配置Ranger元数据存储至RDS
本章节旨在指导用户将现有集群的Ranger元数据切换为RDS数据库中存储的元数据。该操作可以使多个MRS集群共用同一份元数据,且元数据不随集群的删除而删除,也能够避免集群迁移时Ranger元数据的迁移。
停用集群组件Ranger鉴权
该操作仅在MRS 3.1.0及之后版本需要执行。
- 登录FusionInsight Manager页面,选择“集群 > 服务 > 服务名称”。
当前MRS 3.1.x集群支持Ranger鉴权的组件为: HDFS、HBase、Hive、Spark、Impala、Storm、Kafka组件。
- 在服务“概览”页面右上角单击“更多 > 停用Ranger鉴权”,如果“停用Ranger鉴权”是灰色,则表示未开启Ranger鉴权无需停用Ranger鉴权,如图1所示。
- (可选)如需使用已有鉴权策略请执行该步骤在Ranger Web页面导出已有组件的鉴权策略,切换Ranger元数据完成后可重新导入已有的鉴权策略。此处以Hive为例,导出后会生成本地的JSON格式的策略文件。
- 登录FusionInsight Manager页面。
- 选择“集群 > 服务 > Ranger”,进入Ranger服务概览页面。
- 单击“基本信息”区域中的“RangerAdmin”,进入Ranger WebUI界面。
admin用户在Ranger中的用户类型为“User”,如需查看所有管理页面,可单击右上角用户名后,选择“Log Out”,退出当前用户。
- 使用rangeradmin用户(默认密码为Rangeradmin@123)或者其他具有Ranger管理员权限用户重新登录。用户及默认密码请参考MRS集群用户账号一览表。
- 单击Hive组件对应行的导出按钮,导出鉴权策略。
图2 导出鉴权策略
- 单击“Export”,导出后会生成本地的JSON格式的策略文件。
图3 导出Hive鉴权策略
创建并配置RDS实例
- 登录RDS管理控制台,购买RDS实例,具体操作请参考购买实例。
- 为了保证集群和MySQL或PostgreSQL数据库的网络访问,建议该实例与MRS集群的虚拟私有云和子网一致。
- RDS实例的安全组入方向规则需要放通MySQL(默认为“3306”)和PostgreSQL(默认为“5432”)数据库端口。
例如,可通过在RDS控制台单击实例名称进入实例基本信息页面,在“连接信息”区域单击“安全组”右侧的安全组名称进入安全组控制台,在入方向规则页签中添加一个“协议端口”为TCP 3306,“源地址”为Hive的MetaStore实例所在的所有节点IP的规则。
- Ranger仅支持对接RDS服务MySQL数据库,版本号为:MySQL 5.7.x、MySQL 8.0。
- Hive支持对接RDS服务MySQL和PostgreSQL数据库,版本号为:MySQL 5.7.x、MySQL 8.0和PostgreSQL14。
- 在RDS管理控制台,选择“实例管理”,选择MRS数据连接使用的RDS实例所在行的操作列的“更多 > 登录”,以root用户登录该实例。
图4 登录RDS实例
- 在实例“首页”即可单击“新建数据库”创建新的数据库。
如果没有创建新的数据库,会导致MRS配置数据连接失败。
图5 新建数据库
- 在页面顶部选择“账号管理 > 用户管理”。
- 单击“新建用户”,创建一个非root用户,并勾选“全局权限”中所有的权限。
如果是配置Ranger外置RDS数据连接,可以只选择SELECT、INSERT、CREATE、RELOAD、CREATE USER和GRANT权限。
图6 创建用户
- 在页面顶部选择“SQL操作 > SQL查询”,在“库名”处切换对应数据库,然后执行如下SQL命令为该数据库用户进行赋权,其中${db_name}与${db_user}为MRS待连接的数据库名和新建的用户名。
grant all privileges on ${db_name}.* to '${db_user}'@'%' with grant option; grant reload on *.* to '${db_user}'@'%' with grant option; flush privileges;
图7 为数据库用户赋权
为已有MRS集群创建RDS数据连接
该步骤指导用户为当前已有的MRS集群创建RDS数据连接。
- 登录MRS控制台,在导航栏选择“数据连接”。
- 单击“新建数据连接 ”。
- 参考表1配置相关参数。
表1 数据连接 参数
示例
说明
类型
-
选择外部源连接的类型。
- RDS服务PostgreSQL数据库:安装了Hive组件的集群支持连接该类型数据库。
- RDS服务MySQL数据库:安装了Hive或Ranger组件的集群支持连接该类型数据库。
名称
newtest
数据连接的名称。
数据库实例
-
RDS服务数据库实例,该实例需要先在RDS服务创建后在此处引用,且已创建数据库,具体请参考创建并配置RDS实例。单击“查看数据库实例”查看已创建的实例。
数据库
dataname
待连接的数据库的名称。
用户名
datauser
登录待连接的数据库的用户名。
密码
-
登录待连接的数据库的密码。
当用户选择的数据连接为“RDS服务MySQL数据库”时,请确保使用的数据库用户为root用户。如果为非root用户,请参考创建并配置RDS实例操作。
- 单击“确定”完成创建。
配置Ranger数据连接
- 登录MRS控制台。
- 单击集群名称进入集群详情页面。
- 单击“数据连接”右侧的“单击管理”,进入数据连接配置界面。
- 单击“配置数据连接”,并配置相关参数:
- 组件名称:Ranger
- 模块类型:Ranger元数据
- 连接类型:RDS服务MySQL数据库
- 连接实例:请选择已创建的到RDS服务MySQL数据库的实例,如需创建新的数据连接,请参考为已有MRS集群创建RDS数据连接。
- 勾选“我已经阅读上述信息,并了解具体影响。”并单击“测试”。
- 测试成功后,单击“确定”完成数据连接配置。
- 登录FusionInsight Manager页面。
- 选择“集群 > 服务 > Ranger”,进入Ranger服务概览页面。
- 单击“更多 > 重启服务”或“更多 > 滚动重启服务”。
重启服务会造成业务中断,滚动重启可以尽量减少或者不影响业务运行。
重启Ranger组件会影响所有受Ranger控制组件的权限,可能影响业务的正常运行,请在集群空闲或业务量较少时执行重启。重启Ranger组件前,Ranger中的策略依然生效。图8 重启服务
- 启用需要鉴权的组件的Ranger鉴权。此处以Hive组件为例。
当前MRS 3.1.x集群支持Ranger鉴权的组件为: HDFS、HBase、Hive、Spark、Impala、Storm、Kafka组件。
- 登录FusionInsight Manager页面,选择“集群 > 服务 > 服务名称”。
- 在服务“概览”页面右上角单击“更多 > 启用Ranger鉴权”。
图9 启用Ranger鉴权
- 登录Ranger WebUI界面,单击Hive组件对应行的导入按钮。
图10 单击导入鉴权策略按钮
- 配置导入参数。
- Select file:选择3.f中下载的鉴权策略文件。
- Merge If Exist Policy:勾选。
图11 导入鉴权策略
- 重启启用Ranger鉴权的组件。
- 登录FusionInsight Manager页面。
- 选择“集群 > 服务 > Hive”,进入Hive服务概览页面。
- 选择“更多 > 重启服务”或“更多 > 滚动重启服务”。
图12 重启服务
重启服务会造成业务中断,滚动重启可以尽量减少或者不影响业务运行。