文档首页/ MapReduce服务 MRS/ 最佳实践/ 周边云服务对接/ 使用MRS Hive表对接OBS文件系统
更新时间:2024-06-14 GMT+08:00
分享

使用MRS Hive表对接OBS文件系统

MRS支持用户将数据存储在OBS服务中,使用MRS集群仅作数据计算处理的存算分离场景。用户通过IAM服务的“委托”机制进行简单配置,即可实现OBS的访问。

本章节指导用户创建Hive表存放数据到OBS,基本内容如下所示:

  1. 创建ECS委托
  2. 为MRS集群配置委托
  3. 创建OBS文件系统
  4. Hive访问OBS文件系统

创建ECS委托

  1. 登录华为云管理控制台。
  2. 在服务列表中选择“管理与监管 > 统一身份认证服务”。
  3. 选择“委托 > 创建委托”。
  4. 设置“委托名称”。例如:mrs_ecs_obs。
  5. “委托类型”选择“云服务”,在“云服务”中选择“ECS BMS”,授权ECS或BMS调用OBS服务,如图1所示。
  6. “持续时间”选择“永久”并单击“下一步”。
    图1 创建委托
  7. 在弹出页面中搜索框内搜索“OBS OperateAccess”策略,勾选“OBS OperateAccess”策略如图2所示。
    图2 配置权限
  8. 单击“下一步”,选择权限范围方案,默认选择“所有资源”,单击“展开其他方案”,选择“全局服务资源”,单击“确定”。
  9. 在弹出的提示框中单击“知道了”,开始授权。界面提示“授权成功。”,单击“完成”,委托成功创建。

为MRS集群配置委托

配置存算分离支持在新建集群中配置委托实现,也可以通过为已有集群绑定委托实现。本示例以为已有集群配置委托为例介绍。

  1. 登录MRS控制台,在导航栏选择“现有集群”。
  2. 单击集群名称,进入集群详情页面。
  3. 在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“单击同步”进行IAM用户同步。
  4. 在集群详情页的“概览”页签,单击“委托”右侧的“管理委托”选择创建ECS委托的委托并单击“确定”进行绑定,或单击“新建委托”进入IAM控制台进行创建后再在此处进行绑定。
    图3 绑定委托

创建OBS文件系统

  1. 登录OBS控制台。
  2. 选择“并行文件系统 > 创建并行文件系统”。
  3. 填写文件系统名称,例如“mrs-demo01”。

    其他参数请根据需要填写。

    图4 创建并行文件系统
  4. 单击“立即创建”。
  5. 在OBS控制台并行文件系统列表中,单击文件系统名称进入详情页面。
  6. 在左侧导航栏选择“文件”,新建program、input文件夹。
    • program:请上传程序包到该文件夹。
    • input:请上传输入数据到该文件夹。

Hive访问OBS文件系统

  1. root用户登录集群Master节点,具体请参见登录集群节点
  2. 验证Hive访问OBS。
    1. 用root用户登录集群Master节点,执行如下命令:

      cd /opt/Bigdata/client

      source bigdata_env

      source Hive/component_env

    2. 查看文件系统mrs-demo01下面的文件列表。

      hadoop fs -ls obs://mrs-demo01/

    3. 返回文件列表即表示访问OBS成功。
      图5 查看mrs-demo01下的文件列表
    4. 执行以下命令进行用户认证(普通模式即未开启Kerberos认证无需执行此步骤)。

      kinit hive

      输入用户hive密码,默认密码为Hive@123,第一次使用需要修改密码。

    5. 执行Hive组件的客户端命令。

      beeline

    6. 在beeline中直接使用OBS的目录进行访问。例如,执行如下命令创建Hive表并指定数据存储在mrs-demo01文件系统的test_demo01目录中。

      create table test_demo01(name string) location "obs://mrs-demo01/test_demo01";

    7. 执行如下命令查询所有表,返回结果中存在表test_demo01,即表示访问OBS成功。

      show tables;

      图6 查看是否存在表test_demo01
    8. 查看表的Location。

      show create table test_demo01;

      查看表的Location是否为“obs://OBS桶名/”开头。

      图7 查看表test_demo01的Location
    9. 写入数据。

      insert into test_demo01 values('mm'),('ww'),('ww');

      执行select * from test_demo01;查询是否写入成功。

      图8 查看表test_demo01中的数据
    10. 执行命令!q退出beeline客户端。
    11. 重新登录OBS控制台。
    12. 单击“并行文件系统”, 选择创建的文件系统名称。
    13. 单击“文件”,查看是否存在创建的数据。
      图9 查看数据

相关文档