创建独立的Trino集群后无法直接使用,需要进行相关的配置。本文为您介绍创建独立的Trino集群后,如何配置连接器和数据湖元数据,以使用独立的Trino集群。
背景信息
在使用开源大数据平台E-MapReduce控制台时,您可以在创建DataLake集群、自定义集群或Hadoop集群时选择Trino服务,或者创建独立的Trino集群使用Trino服务。Trino集群具备以下特点:
Trino独享集群资源,受其他组件干扰少。
支持弹性伸缩。
支持数据湖分析与实时数仓。
不存储数据。
Hudi和Iceberg不是实际的进程 ,不占集群资源。
Hue和JindoData服务(或SmartData服务),如果不使用,可以选择停止。
如果要使用独立的Trino集群,需要先创建一个DataLake集群、自定义集群或Hadoop集群,或使用已有的DataLake集群、自定义集群或Hadoop集群作为数据集群。
配置连接器
在待使用的连接器中配置查询对象。本文以Hive连接器为例介绍。
进入集群服务页面。
在顶部菜单栏处,根据实际情况选择地域和资源组。
在EMR on ECS页面,单击目标集群操作列的集群服务。
在集群服务页面,单击Trino服务区域的配置。
修改配置项。
在配置页面,单击hive.properties页签。
修改hive.metastore.uri的参数值为数据集群Trino服务中的hive.metastore.uri的参数值。
保存配置。
单击右侧的保存。
在确认修改对话框中,配置相关参数,单击确定。
生效配置。
单击右侧的部署客户端配置。
在执行集群操作对话框中,配置相关参数,单击确定。
在确认对话框中,单击确定。
重启Trino服务,详情请参见操作步骤。
配置host。
重要如果待查询的数据全部保存在OSS上,或者建表语句时指定了Location,则可以不用配置host。
Hive的部分表在创建时,会默认指定路径,因此在查询保存在数据集群上的数据时,为了查询时能够读取到这些表,Trino集群的每一台主机都需要配置host。
方式一(推荐):您可以在EMR控制台,通过添加集群脚本或引导操作,来实现配置host,详情请参见手动执行脚本或管理引导操作。
方式二:直接修改host文件。具体步骤如下所示。
获取数据集群Master节点的内网IP地址。在E-MapReduce控制台的节点管理页面,单击主实例组所在行的图标。即可查看节点的内网IP地址。
登录数据集群,详情请参见登录集群。
执行
hostname
命令,获取主机名。例如,主机名形式如下:
Hadoop集群:emr-header-1.cluster-26****。
其余集群:master-1-1.c-f613970e8c****。
登录Trino集群,详情请参见登录集群。
执行以下命令,编辑文件hosts。
vim /etc/hosts
添加以下内容至文件hosts最后一行。
添加数据集群Master节点的内网IP地址和主机名至Trino集群所有主机/etc/目录下的hosts文件中。
Hadoop集群
192.168.**.** emr-header-1.cluster-26****
其余集群
192.168.**.** master-1-1.c-f613970e8c****
配置数据湖元数据
EMR-3.45.0及之后版本,EMR-5.11.0及之后版本,支持在创建集群时自动配置。
如果数据表的元数据使用了DLF统一元数据,则还需为Hive、Iceberg和Hudi等连接器进行额外的配置。此时查询不再依赖数据集群,hive.metastore.uri可以任意填写,Trino能够直接访问到同一个账号下的DLF元数据。
数据湖元数据配置的详细信息如下表。
参数 | 描述 | 备注 |
hive.metastore | MetaStore类型。 | 固定值为DLF。 |
dlf.catalog.id | 数据库分类命名空间。 | 需要绑定的DLF数据目录(Catalog),默认值是阿里云账号的账号ID。 |
dlf.catalog.region | DLF服务的地域名。 | 详情请参见已开通的地域和访问域名。 说明 请和dlf.catalog.endpoint选择的地域保持一致。 |
dlf.catalog.endpoint | DLF服务的Endpoint。 | 详情请参见已开通的地域和访问域名。 推荐您设置dlf.catalog.endpoint参数为DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.catalog.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。 说明 您也可以使用DLF的公网Endpoint,如果您选择的地域为cn-hangzhou地域,则dlf.catalog.endpoint参数需要配置为dlf.cn-hangzhou.aliyuncs.com。 |
dlf.catalog.akMode | DLF服务的Access Key模式。 | 建议配置为EMR_AUTO。 |
dlf.catalog.proxyMode | DLF服务的代理模式。 | 建议配置为DLF_ONLY。 |
dlf.catalog.uid | 阿里云账号的账号ID。 | 登录账号信息,请通过用户信息页面获取。 |
示例:查询表信息
通过命令方式访问Trino,详情请参见通过命令方式访问Trino。
执行以下命令,查询test_hive表信息。
select * from hive.default.test_hive;