更新时间:2024-09-04 GMT+08:00

配置Presto通过IAM委托访问OBS

参考配置MRS集群通过IAM委托对接OBS完成存算分离集群配置后,Presto即可通过presto_cli.sh客户端创建表存储在OBS中。

Presto对接OBS

  • 未开启Kerberos认证的集群
    1. 使用客户端安装用户,登录已安装客户端的节点。
    2. 执行以下命令配置环境变量:

      cd 客户端安装目录

      source bigdata_env

    3. 执行如下命令连接客户端。

      presto_cli.sh

    4. 执行以下命令创建Schema,并指定Location为OBS路径,例如:

      CREATE SCHEMA hive.demo WITH (location = 'obs://mrs-word001/presto-demo002/');

    5. 在该Schema中建表,该表的数据即会存储在OBS文件系统内,例如:

      CREATE TABLE hive.demo.demo_table WITH (format = 'ORC') AS SELECT * FROM tpch.sf1.customer;

      图1 普通集群Presto建表返回结果
    6. 执行exit退出客户端。
  • 开启Kerberos认证的集群
    1. 登录Manager创建一个拥有“Hive Admin Privilege”权限的角色,例如prestorole,创建角色请参考管理MRS集群角色
    2. 创建一个属于“Presto”和“Hive”组的用户,同时为该用户绑定1中创建的角色,例如presto001,创建用户请参考创建MRS集群用户
    3. 认证当前用户。

      kinit presto001

    4. 下载用户凭证。
      • 针对MRS 3.x之前版本集群,在MRS Manager页面,选择“系统设置 > 用户管理 ”,选择新增用户所在行的“更多 > 下载认证凭据”。
      • 针对MRS 3.x及之后版本,在FusionInsight Manager页面,选择“系统 > 权限 > 用户”,选择新增用户所在行的“更多 > 下载认证凭据”。
    5. 解压下载的用户凭证文件,得到“krb5.conf”“user.keytab”两个文件并放入客户端目录,例如“客户端安装目录/Presto/”。
    6. 执行如下命令获取用户principal。

      klist -kt 客户端安装目录/Presto/user.keytab

    7. 执行以下命令连接本集群的Presto Server:

      presto_cli.sh --krb5-config-path {krb5.conf文件路径} --krb5-principal {用户principal} --krb5-keytab-path {user.keytab文件路径} --user {presto用户名}

      • krb5.conf文件路径:请替换为5中设置的文件存放路径,例如“客户端安装目录/Presto/krb5.conf”。
      • user.keytab文件路径:请替换为5中设置的文件存放路径,例如“客户端安装目录/Presto/user.keytab”“/opt/Bigdata/client/Presto/user.keytab”
      • 用户principal:请替换为6中返回的结果
      • presto用户名:请替换为2中创建的用户名,例如“presto001”
    8. 执行以下命令创建Schema,并指定Location为OBS路径,例如:

      CREATE SCHEMA hive.demo01 WITH (location = 'obs://mrs-word001/presto-demo002/');

    9. 在该Schema中建表,表的数据即会存储在OBS文件系统内,例如:

      CREATE TABLE hive.demo01.demo_table WITH (format = 'ORC') AS SELECT * FROM tpch.sf1.customer;

      图2 安全集群Presto建表返回结果
    10. 执行exit退出客户端。