如何快速掌握Presto源码:思路和经验

2022-02-14 00:00:00 代码 自己的 编译 源码 项目

1. 两个Presto?

如果你在互联网上搜索Presto,你会发现两个Presto项目:

  1. PrestoDB:https://prestodb.io/,源代码:https://github.com/prestodb/presto
  2. PrestoSQL:https://prestosql.io/,源代码:https://github.com/prestosql/presto


这两个Presto的关系是,PrestoDB是2013年Facebook的三个核心工程师创造和开源出来的,在Facebook内部,它的应用规模是很庞大的(部署了多个集群,总节点数10000+台),这三个工程师一直想把Presto发扬光大,但是一直到了2019年,他们感觉到公司好像不怎么给力,同时期的三个开源大数据技术Spark、Flink、Kafka都已经创建了自己的商业化公司推广到家喻户晓了,如果说哪家公司在力推Presto,可能只有一家叫Teradata的小公司。无奈之下,这三位核心工程师离职加入了刚成立两年的Starburst公司,这家公司Fork了Presto的项目源码,改名为PrestoSQL,创建了自己的代码仓库和官方网站,在做商业化运营的Presto。如果你问笔者该选哪个,笔者更倾向于选择PrestoSQL,因为他近两年的源码迭代速度更快,而且还有三位创始人的支持,相信PrestoSQL的发展前景,所以本专栏中,如果有涉及源码讲解的内容,我们也会使用PrestoSQL的源码作为学习示例。不过事情也不是的,PrestoDB与PrestoSQL也在互相学习,并且会把对方比较好的实现,merge到自己的项目里,所以同时关注一下这两个项目的动态,没有坏处。由于这两个项目的大部分核心代码是完全相同的,所以我们以PrestoSQL来举例并不会妨碍你学习PrestoDB。


如果想知道关于Presto分裂为两个项目的来龙去脉,请参考:https://zhuanlan.zhihu.com/p/55628236


如果想知道两个项目有什么不同,请参考:

  • https://zhuanlan.zhihu.com/p/87621360
  • https://github.com/prestosql/presto/issues/380


2. 如何编译Presto源码

首先从github上clone PrestoSQL源码,将clone好的项目导入到IDEA中:

git clone https://github.com/prestosql/prestosql.io.git

相关文章