配置Impala通过IAM委托访问OBS
参考配置MRS集群通过IAM委托对接OBS完成存算分离集群配置后,即可在Hive客户端创建Location为OBS路径的表。
Impala由Hive metastore管理元数据,Ranger权限管理复用Hive的权限策略。
建表时指定Location为OBS路径
- 使用安装客户端用户登录客户端安装节点。
- 执行如下命令初始化环境变量。
source 客户端安装目录/bigdata_env - 如果集群启用了Kerberos认证,执行以下命令进行用户认证(该用户需要具有Hive操作的权限),如果当前集群未启用Kerberos认证,则无需执行此命令。
kinit Hive组件操作用户 - 进入impala-shell客户端,在创建表时指定Location为OBS文件系统路径。
impala-shell -i [impalad IP]:[impala 端口]
例如,创建一个表“test”,该表的Location为“obs://OBS并行文件系统名称/user/hive/warehouse/数据库名/表名”:
create table test(name string) location "obs://OBS并行文件系统名称/user/hive/warehouse/数据库名/表名";表创建成功后,可执行以下命令查看表的Location:
desc formatted test;
需要添加组件操作用户到Ranger策略中的URL策略,URL填写对象在OBS上的完整路径,权限选择Read, Write 权限,其他权限不涉及URL策略。详细操作MRS 3.x之前版本请参考在Ranger中配置Hive的访问权限,MRS 3.x及之后版本请参考添加Hive的Ranger访问权限策略。
配置Impala基于Hive MetaStore方式对接OBS
- 登录MRS集群Manager界面,选择“集群 > 服务 > Hive > 配置 > 全部配置”。
登录集群Manager界面请参考访问MRS集群Manager。
- MRS 3.2.0-LTS之前版本:
- 在左侧的导航列表中选择“MetaStore(角色) > 自定义”,为自定义参数“hive.metastore.customized.configs”添加配置项“hive.metastore.warehouse.dir”,设置Hive表数据的默认存储路径为OBS路径,例如:obs://hivetest/user/hive/warehouse/,其中“hivetest”为OBS并行文件系统名称。
图1 hive.metastore.warehouse.dir配置
- 在左侧的导航列表中选择“HiveServer(角色) > 自定义”,为自定义参数“hive.metastore.customized.configs”和“hive.server.customized.configs”添加配置项“hive.metastore.warehouse.dir”,设置Hive表数据的默认存储路径为OBS路径,例如:obs://hivetest/user/hive/warehouse/,其中“hivetest”为OBS并行文件系统名称。
图2 hive.metastore.warehouse.dir配置
- 在左侧的导航列表中选择“MetaStore(角色) > 自定义”,为自定义参数“hive.metastore.customized.configs”添加配置项“hive.metastore.warehouse.dir”,设置Hive表数据的默认存储路径为OBS路径,例如:obs://hivetest/user/hive/warehouse/,其中“hivetest”为OBS并行文件系统名称。
- MRS 3.2.0-LTS及之后版本:
- MRS 3.2.0-LTS之前版本:
- 保存并重启Hive服务。
- (可选)安装客户端,具体请参考安装MRS集群客户端。如果集群已安装客户端请执行步骤 4。
- 更新客户端配置文件。
- 执行以下命令修改客户端Hive配置文件目录下的“hivemetastore-site.xml”。
vim 客户端安装目录/Hive/config/hivemetastore-site.xml - 将“hive.metastore.warehouse.dir”的值修改为对应的OBS路径并保存,例如:obs://hivetest/user/hive/warehouse/,其中“hivetest”为OBS并行文件系统名称。
图4 配置OBS路径
- MRS 3.2.0-LTS及之后版本,修改HCatalog客户端配置文件目录下的“hivemetastore-site.xml”,将“hive.metastore.warehouse.dir”的值修改为对应的OBS路径,例如“obs://hivetest/user/hive/warehouse/”。
vi 客户端安装目录/Hive/HCatalog/conf/hivemetastore-site.xml
- 执行以下命令修改客户端Hive配置文件目录下的“hivemetastore-site.xml”。
- 进入impala-shell客户端,创建表并确认Location为OBS路径。
- 切换至客户端安装目录:
cd 客户端安装目录 - 加载环境变量:
source bigdata_env
- 认证用户,未开启Kerberos认证的集群请跳过此操作:
kinit Hive组件操作用户 - 登录Hive客户端:
impala-shell -i [impalad IP]:[impala 端口]
- 创建表test:
create table test(name string);
- 查看表的Location:
desc formatted test;
表的Location为OBS路径:
图5 查看Impala表的Location信息
- 切换至客户端安装目录:
