
本文主要介绍在windows上搭建Trino开发环境的背景,以及需要用到的组件。
在我们研发的产品中,需要引入一个计算引擎,在对比多个产品后,因Trino支持的数据源丰富,SQL兼容性好等特点,最终决定选择Trino来做产品的计算引擎。就像每件事情都有两面性一样,我们面临的问题是,Trino新的数据源配置需要添加在配置文件中,Trino(我用到的是355版本)目前又没有热加载机制,就导致每次加完新的数据源需要重启节点,才能生效。做为一个“打杂”员工,重启节点是不能被接受的,因此我们需要对Trino进行一丢丢二次开发。
困难似乎都是成对出现的,在阅读官网的时候发现,Trino的编译环境需要在Mac OS X or Linux上完成。这家伙果然出身富贵,让我们这种只有windows机器,而且内存也不足以支持在虚拟化个Linux机器的贫民百姓如何是好。既然定位是“打杂”员工,那就得给大家把困难推平。这也是我想把经验分享出来的原因,啰嗦了太多,也该进入正题了。
注意: 本文windows上启动的是一个单机版的Trino
JDK11.0.7 + (一定要满足,不要抱有侥幸心理,否则Trino是运行不起来的)
maven3.6.3 + (一定要满足,不要抱有侥幸心理,否则会编译不过的)
安装Cygwin
这一步比较简单就不多说了。
从github上下载对应版本的zip包代码,导入idea。
1) 编译过程中跳过 docs,否则会报错, 可以通过下面的命令跳过docs模块的编译
mvn -pl '!docs' clean install -DskipTests
2) 继续编译,会遇到“pl.project13.maven:git-commit-id-plugin:4.0.3:revision git directory is not found! Please specify a valid [dotGitDirectory] in your pom.xml”的错误
原因:
插件maven-git-commit-id-plugin作用是maven打jar包时带上 git commit相关信息, 我们的源代码是下载的zip包而不是fork的方式,因此没有commit的相关信息
解决办法:
修改trino-master根目录下的pom.xml,依次在
pl.project13.maven git-commit-id-plugintrue
3) 继续编译,“[ERROR] Failed to execute goal org.skife.maven:really-executable-jar-maven-plugin:1.0.5:really-executable-jar (default) on project trino-cli: FAILURE!: FAILURE!”
更具体的错误信息如下:
发现了 "chmod",相信很多在windows上进行过大数据套件开发的人都知道,这是缺少了windows上模拟Linux命令的插件,因此安装Cygwin,这也是为什么先把需要用到的工具类出来的原因。
本文介绍了在windows上搭建Trino开发环境的背景,需要依赖到的组件,以及在代码编译过程中遇到的问题和解决方法。下一篇会介绍,通过修改Trino的源码,可以在windows上运行起来一个单机版本的Trino。