配置Presto通过IAM委托访问OBS
参考配置MRS集群通过IAM委托对接OBS完成存算分离集群配置后,Presto即可通过presto_cli.sh客户端创建表存储在OBS中。
Presto对接OBS
- 未开启Kerberos认证的集群
- 使用客户端安装用户,登录已安装客户端的节点。
- 执行以下命令配置环境变量:
source bigdata_env
- 执行如下命令连接客户端。
- 执行以下命令创建Schema,并指定Location为OBS路径,例如:
CREATE SCHEMA hive.demo WITH (location = 'obs://mrs-word001/presto-demo002/');
- 在该Schema中建表,该表的数据即会存储在OBS文件系统内,例如:
CREATE TABLE hive.demo.demo_table WITH (format = 'ORC') AS SELECT * FROM tpch.sf1.customer;
图1 普通集群Presto建表返回结果
- 执行exit退出客户端。
- 开启Kerberos认证的集群
- 登录Manager创建一个拥有“Hive Admin Privilege”权限的角色,例如prestorole,创建角色请参考管理MRS集群角色。
- 创建一个属于“Presto”和“Hive”组的用户,同时为该用户绑定1中创建的角色,例如presto001,创建用户请参考创建MRS集群用户。
- 认证当前用户。
- 下载用户凭证。
- 针对MRS 3.x之前版本集群,在MRS Manager页面,选择“系统设置 > 用户管理 ”,选择新增用户所在行的“更多 > 下载认证凭据”。
- 针对MRS 3.x及之后版本,在FusionInsight Manager页面,选择“系统 > 权限 > 用户”,选择新增用户所在行的“更多 > 下载认证凭据”。
- 解压下载的用户凭证文件,得到“krb5.conf”和“user.keytab”两个文件并放入客户端目录,例如“客户端安装目录/Presto/”。
- 执行如下命令获取用户principal。
- 执行以下命令连接本集群的Presto Server:
presto_cli.sh --krb5-config-path {krb5.conf文件路径} --krb5-principal {用户principal} --krb5-keytab-path {user.keytab文件路径} --user {presto用户名}
- 执行以下命令创建Schema,并指定Location为OBS路径,例如:
CREATE SCHEMA hive.demo01 WITH (location = 'obs://mrs-word001/presto-demo002/');
- 在该Schema中建表,表的数据即会存储在OBS文件系统内,例如:
CREATE TABLE hive.demo01.demo_table WITH (format = 'ORC') AS SELECT * FROM tpch.sf1.customer;
图2 安全集群Presto建表返回结果
- 执行exit退出客户端。