Trino 本地编译搭建 standalone 模式

本文的主要目的是

  1. 帮助 Trino 新手在本地编译源码
  2. 在 Idea 中启动一个 Trino server
  3. 通过 Trino-cli 提交一个查询到集群
  4. 为后续的 Trino debug 以及源码阅读做准备

环境说明

环境版本备注
systemMac Intel Chip
java

jdk-11.0.15.1.jdk

oracle官方下载,链接:Java Downloads | Oracle
maven

apache-maven-3.8.1

Trino 是一个 MPP(大规模并行处理) 架构的内存型 OLAP 引擎,注意它只是一个查询引擎,并不是一个数据库,因为 Trino 不存储数据。通过 connector 机制可以获取多种数据源的数据,比如 Trino-hive 这个 connector 就可以获取到 Hive 表的数据。

Trino 主要适用于 Adhoc 查询(即席查询),主要应用场景是数据分析,你可以根据自己的需求写 SQL,查询任何你想查询的数据(前提是你得有权限[手动狗头])。

Trino 是一个典型的 Master-Slave (主从)架构的计算框架,负责接收用户请求的是 Coordinator,干苦力活的叫 worker。

首先通过 git 下载代码(默认大家已经会用 git 以及 maven)

git clone git@github.com:trinodb/trino.git
cd trino

如果我们的本机jvm非jdk11,可在对话框中临时指定jdk:

如我新建了一个/etc/trino/conf/trino-env.sh,内容如下:

JAVA11_HOME=$(ls -d /Library/Java/JavaVirtualMachines/jdk-11.0.15.1.jdk/Contents/Home)

export JAVA_HOME=$JAVA11_HOME

export PATH=$JAVA_HOME/bin:$PATH

通过source让jdk11在当前对话框生效:

source /etc/trino/conf/trino-env.sh

然后使用 maven 进行编译 编译过程中跳过 docs,否则会报错(当你需要指定settings文件,可如下-s指定)

mvn -pl '!docs' clean install -DskipTests  -s "/Users/shlpeng/Documents/CXY/soft/apache-maven-3.8.1/conf/settings.xml.ali"

此时编译完就可以按照 github 上的提醒进行 full-server 的启动。

我接下来的操作几乎都是对 github 上 README 的翻译

要启动的类在,此时启动的是 Trino 的 Coordinator 进程

testing/trino-server-dev/src/main/java/io/trino/server/DevelopmentServer

然后配置选项按照 github 上面的配置来,我使用的是 idea,VM Options 可以在下图的 Modify options 里面添加

Main Class: io.trino.server.DevelopmentServer
VM Options: -ea -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
Working directory: $MODULE_DIR$
Use classpath of module: trino-server-dev

此时所有的配置都完成了,就可以在本机上启动一个 Trino 进程

出现 SERVER STARTED 就说明启动成功了

默认的服务端口号是 8080,在浏览器输入 127.0.0.1:8080 就可以访问 Trino 的简易 web 页面

 随便输入一个“hadoop”用户登陆:

此时我们的 Trino server 就已经启动成功了

接下来可以通过 Trino 自带的 cli 向 Server 提交查询

client/trino-cli/target

 

切到tar目录下执行命令启动 Trino 的cli
./trino-cli-389-SNAPSHOT-executable.jar --server http://127.0.0.1:8080

出现 如上图的trino 的小标志就说明成功了。

我在这里提交了一个查询,show catalogs; 可以查看此时有哪些数据源

同时在 web 页面上也可以看到我们提交的任务

红框里面的是 QueryId ,每个 ID 都是独一无二的,与我们 cli 界面的 QueryId 保持一致

至此我们已经在本地搭建起了 Trino 的 Server,同时也可以使用 cli 向 Trino Server 提交查询,并且查询成功

后面我又执行了一系列简单的sql:

高度参考链接:Trino 本地编译搭建 standalone 模式 - 知乎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值