文档首页/ MapReduce服务 MRS/ 用户指南(阿布扎比区域)/ FAQ/ Kerberos使用/ 开启Kerberos认证的集群如何访问Presto?
更新时间:2024-09-30 GMT+08:00

开启Kerberos认证的集群如何访问Presto?

  1. 用root用户登录集群Master节点。
  2. 配置环境变量。

    source /opt/client/bigdata_env

  3. 开启Kerberos认证的安全集群访问Presto。
    1. 登录Manager创建一个拥有“Hive Admin Privilege”权限的角色,例如prestorole。
    2. 创建一个属于“Presto”和“Hive”组的用户,同时为该用户绑定3.a中创建的角色,例如presto001。
    3. 认证当前用户。

      kinit presto001

    4. 下载用户认证凭据。
      • MRS Manager界面操作:登录MRS Manager,选择“系统设置 > 用户管理 ”,单击新增用户所在行的“更多 > 下载认证凭据”。
        图1 下载Presto用户认证凭据
      • FusionInsight Manager界面操作:登录FusionInsight Manager,选择“系统 > 权限 > 用户”,单击新增用户所在行的“更多 > 下载认证凭据”。
    5. 解压下载的用户凭证文件,得到“krb5.conf”“user.keytab”两个文件并放入客户端目录,例如“/opt/client/Presto/”。
    6. 执行如下命令获取用户principal。

      klist -kt /opt/client/Presto/user.keytab

    7. 启用Kerberos认证的集群,执行以下命令连接本集群的Presto Server。

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

      • krb5.conf文件路径:请替换为3.e中设置的文件存放路径,例如“/opt/client/Presto/krb5.conf”。
      • user.keytab文件路径:请替换为3.e中设置的文件存放路径,例如“/opt/client/Presto/user.keytab”。
      • 用户principal:请替换为3.f中返回的结果
      • presto用户名:请替换为3.b中创建的用户名,例如“presto001”

      例如:presto_cli.sh --krb5-config-path /opt/client/Presto/krb5.conf --krb5-principal prest001@xxx_xxx_xxx_xxx.COM --krb5-keytab-path /opt/client/Presto/user.keytab --user presto001

    8. 在Presto客户端中执行语句创建schema,例如:

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

    9. 在该schema中建表,该表的数据即存储在OBS桶内,例如:

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

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