如何快速掌握Presto源码:思路和经验
1. 两个Presto?
如果你在互联网上搜索Presto,你会发现两个Presto项目:
- PrestoDB:https://prestodb.io/,源代码:https://github.com/prestodb/presto
- 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
相关文章