使用独立的Trino集群

创建独立的Trino集群后无法直接使用,需要进行相关的配置。本文为您介绍创建独立的Trino集群后,如何配置连接器和数据湖元数据,以使用独立的Trino集群。

背景信息

在使用开源大数据平台E-MapReduce控制台时,您可以在创建DataLake集群、自定义集群或Hadoop集群时选择Trino服务,或者创建独立的Trino集群使用Trino服务。Trino集群具备以下特点:

  • Trino独享集群资源,受其他组件干扰少。

  • 支持弹性伸缩。

  • 支持数据湖分析与实时数仓。

  • 不存储数据。

说明
  • Hudi和Iceberg不是实际的进程 ,不占集群资源。

  • Hue和JindoData服务(或SmartData服务),如果不使用,可以选择停止。

如果要使用独立的Trino集群,需要先创建一个DataLake集群、自定义集群或Hadoop集群,或使用已有的DataLake集群、自定义集群或Hadoop集群作为数据集群。

创建完独立的Trino集群后,您需要进行以下配置:

配置连接器

在待使用的连接器中配置查询对象。本文以Hive连接器为例介绍。

  1. 进入集群服务页面。

    1. 登录EMR on ECS控制台

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. EMR on ECS页面,单击目标集群操作列的集群服务

  2. 集群服务页面,单击Trino服务区域的配置

  3. 修改配置项。

    1. 配置页面,单击hive.properties页签。

    2. 修改hive.metastore.uri的参数值为数据集群Trino服务中的hive.metastore.uri的参数值。

  4. 保存配置。

    1. 单击右侧的保存

    2. 确认修改对话框中,配置相关参数,单击确定

  5. 生效配置。

    1. 单击右侧的部署客户端配置

    2. 执行集群操作对话框中,配置相关参数,单击确定

    3. 确认对话框中,单击确定

  6. 重启Trino服务,详情请参见操作步骤

  7. 配置host。

    重要

    如果待查询的数据全部保存在OSS上,或者建表语句时指定了Location,则可以不用配置host。

    Hive的部分表在创建时,会默认指定路径,因此在查询保存在数据集群上的数据时,为了查询时能够读取到这些表,Trino集群的每一台主机都需要配置host。

    • 方式一(推荐):您可以在EMR控制台,通过添加集群脚本或引导操作,来实现配置host,详情请参见手动执行脚本管理引导操作

    • 方式二:直接修改host文件。具体步骤如下所示。

      1. 获取数据集群Master节点的内网IP地址。在E-MapReduce控制台的节点管理页面,单击主实例组所在行的add图标。即可查看节点的内网IP地址。

      2. 登录数据集群,详情请参见登录集群

      3. 执行hostname命令,获取主机名。

        例如,主机名形式如下:

        • Hadoop集群:emr-header-1.cluster-26****。

        • 其余集群:master-1-1.c-f613970e8c****。

      4. 登录Trino集群,详情请参见登录集群

      5. 执行以下命令,编辑文件hosts

        vim /etc/hosts
      6. 添加以下内容至文件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。

登录账号信息,请通过用户信息页面获取。获取登录账号

示例:查询表信息

  1. 通过命令方式访问Trino,详情请参见通过命令方式访问Trino

  2. 执行以下命令,查询test_hive表信息。

    select * from hive.default.test_hive;