文档首页/
MapReduce服务 MRS/
用户指南(安卡拉区域)/
配置存算分离/
基于Guardian服务对接OBS/
MRS集群组件对接OBS(基于Guardian)/
Hive组件对接OBS
更新时间:2024-11-29 GMT+08:00
Hive组件对接OBS
对接OBS
MRS集群支持Hive服务基于Metastore方式对接OBS。
配置Hive基于MetaStore方式对接OBS:
- 已参考配置Guardian服务对接OBS完成存算分离配置。
- 登录FusionInsight Manager,选择“集群 > 服务 > Hive > 配置”。
- 在搜索框搜索“hive.metastore.warehouse.dir”,修改参数值为OBS路径,例如:obs://hivetest/user/hive/warehouse/,其中“hivetest”为OBS文件系统名。
图1 hive.metastore.warehouse.dir配置
- 保存配置,然后单击“集群 > 服务”,在服务列表中重启Hive服务。
- 更新客户端配置文件。
- 登录Hive客户端所在的节点,执行以下命令修改Hive客户端配置文件目录下的“hivemetastore-site.xml”。
- 将“hive.metastore.warehouse.dir”的值修改为对应的OBS路径,例如“obs://hivetest/user/hive/warehouse/”。
- 修改HCatalog客户端配置文件目录下的“hivemetastore-site.xml”,将“hive.metastore.warehouse.dir”的值修改为对应的OBS路径,例如“obs://hivetest/user/hive/warehouse/”。
- 进入Hive Beeline命令行,创建一个数据库并确认Location为OBS路径。
cd 客户端安装目录
kinit 组件操作用户
beeline
create database testdb1;
show create database testdb1;
Ranger权限配置
- hive用户组赋予OBS路径的读写权限
- 自定义用户组赋予OBS路径的读写权限
- 自定义Location创建库/表/分区授予OBS路径读写权限
- 使用Ranger管理员用户登录Ranger WebUI页面。
- 在首页中单击“EXTERNAL AUTHORIZATION”区域的组件插件名称“OBS”,为对应用户的用户组赋予OBS存储路径的“Read”和“Write”的权限。
例如,为“hgroup1”用户组赋予“obs://obs-test/test/”目录的“Read”和“Write”的权限:
- 在首页中单击“HADOOP SQL”区域的组件插件名称“Hive”,为对应用户的用户组添加赋予OBS存储路径的“Read”和“Write”权限的URL策略。
例如,为“hgroup1”用户组创建“hive_url_policy”URL策略赋予“obs://obs-test/test/”目录的“Read”和“Write”的权限:
- 进入beeline客户端,在创建表时指定Location为OBS文件系统路径。
cd 客户端安装目录
kinit 组件操作用户
beeline
例如,创建一个表“test”,该表的Location为“obs://obs-test/test/数据库名/表名”:
create external table test(name string) location "obs://obs-test/test/数据库名/表名";
- 视图表授权需要授予视图表权限和视图表对应的物理表路径权限。
- 仅支持对数据库/表进行级联授权操作,不支持对分区做级联权限,如果分区路径不在表路径下,则需要用户手动授权分区路径。
- 不支持对Hive Ranger策略中的“Deny Conditions”进行级联授权,即“Deny Conditions”的权限仅限制表权限,不能生成HDFS/OBS存储源端的权限。
- 级联授权生成的HDFS/OBS存储源端的权限弱于HDFS Ranger策略的权限,即如果已经对表的HDFS存储源设置了HDFS Ranger权限,则级联权限将不会生效。
- 不支持对存储源为OBS的表级联授权后直接进行alter操作,需要给对应用户组额外授予OBS表路径的父目录的“Read”和“Write”权限才能使用alter功能