Trino
更新时间:2023-08-01
Trino
Trino(即原PrestoSQL)是一个开源的分布式SQL查询引擎,支持联邦查询,可以在一条SQL中直接查询多个不同的数据源,适用于交互式分析查询。
创建Trino集群
登录BMR界面,点击【创建集群】,在集群类型中选择trino镜像,在Trino元数据设置中,有EDAP和DEFAULT两种方式供选择。使用EDAP管理Trino元数据,需要用户已有EDAP产品使用权限。
使用简介:
Trino支持从coordinator上访问集群从多个数据源查询数据,有两种元数据管理方式,一种是使用default元数据管理,一种是使用edap元数据管理。
Trino元数据管理
- EDAP元数据管理
当使用edap元数据管理时,需要在edap中添加数据源,trino服务对数据源实行动态加载,不需要重启服务。
- Default元数据管理方式
当使用default元数据时,默认的数据源是本集群hive metastore,若要查询其它数据源,需要在集群上手动添加connector配置文件(参考官网文档)到${TRINO_HOME}/etc/catalog目录下并同步到所有节点,然后重启trino服务。
连接Trino进行查询
- 元数据管理为Default时
// 1.登录到coordinator节点
// 2.切换到某个用户
su hdfs
// 3.进入交互命令行
/opt/bmr/trino/bin/trino \
--server https://{coordinator_host}:8089
// 4.use到数据库
use hive.default;
// 5.show tables
show tables;
// 6.创建表
create table test(id bigint, name varchar);
// 7.插入数据
insert into test values(1,'aa'),(2,'bb');
// 8.查询数据
select * from test;
- 元数据管理为EDAP时
// 1.登录到coordinator节点
// 2.切换到某个用户
su hdfs
// 3.进入交互命令行
/opt/bmr/trino/bin/trino \
--server http://{coordinator_host}:8089 \
--catalog edap_physical_tbl \
--extra-credential access_key={accessKey} \ // accessKey的是/etc/hadoop/conf/core-site.xml fs.bos.access.key
--extra-credential secret_key={accessSecret} \ // accessSecret的是/etc/hadoop/conf/core-site.xml fs.bos.secret.access.key
--extra-credential session_token_key="{token}" // token的是/etc/hadoop/conf/core-site.xml fs.bos.session.token.key
// 4.use到数据库
use edap_physical_tbl.{database};
// 5.查询edap管理的表
select * from test;
连接开启kerberos安全模式集群
BMR支持创建安全模式的Trino集群,连接安全模式集群的Trino时,需要使用https协议访问7778端口,还需要添加安全认证相关的参数,一个连接的例子如下:
/opt/bmr/trino/bin/trino \
--server https://{coordinator_host}:7778 \ // ${coordinator_host}请使用CanonicalHostName,同/opt/bmr/trino/etc/config.properties http-server.authentication.krb5.principal-hostname
--krb5-config-path /etc/krb5.conf \
--krb5-principal hdfs-{clusterID}@BAIDU.COM \ // 可以执行`klist -kt /etc/security/keytabs/hdfs.headless.keytab`获取
--krb5-keytab-path /etc/security/keytabs/hdfs.headless.keytab \
--krb5-remote-service-name trino \
--keystore-path /etc/security/keytabs/keystore.jks \
--keystore-password {http-server.https.keystore.key} \ // http-server.https.keystore.key的值在/opt/bmr/trino/etc/config.properties中
--user hdfs-{clusterID}@BAIDU.COM \
Trino UI界面
直接通过console上的连接打开ui界面,可以看到服务监控与查询详情等信息:
可以通过页面的state选项可以对查询任务进行筛选:
点击查询编号,可以进一步查看查询详情;对于失败的任务,也可以在查询详情页面查看相关日志: