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