我是靠谱客的博主 幸福篮球,最近开发中收集的这篇文章主要介绍maven实战 源码_源码学习(一)Presto编译与调试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

19595eb9f98374e9ff74c90bbb388c42.png

导读在大数据生态之数据计算(二)中我们讲到了即席查询计算引擎Presto。Presto是一个Facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto的架构由关系型数据库的架构演化而来,Presto在各个内存计算型数据库中脱颖而出。很多大数据类的研究项目都在选择以Presto为基础去做一些定制化的实验,那现在我们试着从源码的角度去探索他的奥秘吧。

作者:小舰 中国人民大学计算机硕士

来源:DLab数据实验室(ID:rucdlab)

1.源码准备

首先在github上找到prestosql的presto项目,这里要说明一下,presto有两个分支,分别是prestodb和prestosql。目前prestodb是Facebook在维护,prestosql更加适合我们来学习,更加通用一些。

将github的代码fork到自己的账号下https://github.com/prestosql/presto ,当然也可以自己下载源码导入,但是fork到自己的github上,然后通过编辑器Intellij IDEA的Git插件远程clone到本地,到这里源码就有了。

2.源码编译

首先要准备好环境

1.JDK:目前的版本为348,要求Java JDK为11.0.7及以上,推荐为11.0.8,11.0.9

2.Maven:版本最低要求为3.6.3

3.Docker环境,在编译presto-doc的时候会有Docker相关命令的验证,当然这是非必需的

然后为了避免下载过程中由于网络等原因造成下载包失败,可以把maven源修改一下,比如可以用阿里的

f639f0a5e13e2dc17c0d2c1791ced0b9.png

接下来就可以编译了,源码编译其实比较简单,就是

48cd5ddfe0ade1281337ec48b64fd23d.png

编译成功后会出现如下提示

9a6ed9cd78ce9543a772b8dc0c961544.png

3.调试

编译完成后,我们可以看到presto-cli目录下的target下面会有presto-cli-347-SNAPSHOT-executable.jar 这样类似的jar包,这个就是可执行的包

下面我们先来启动PrestoServer进程,在presto-server-main - PrestoServer中,配置如下运行参数:

Main Class: io.prestosql.server.PrestoServer
VM Options: -ea -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -Xmx2G -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
Working directory: $MODULE_DIR$ -Dhive.metastore.uri=thrift://localhost:9083
Use classpath of module: presto-server-main

开启服务之后,我们看到如下提示代表成功

2187d8c9bdc548b15f53b56f3b5c27ad.png

然后我们就可以结合编译出来的jar包进行调试了

java -jar presto-cli/target/presto-cli-347-SNAPSHOT-executable.jar --server  http://localhost:8080
>presto show catalogs
就可以列出有哪些类型的数据源了
a12826d14c5925f8691e27552a8b5c61.png

我们也可以通过监控界面8080端口来看运行的情况

257f4c12ef07f76c9e9e91db38d75868.png

4.总结

到这里,我们就完成了Presto的源码编译和调试工作,让我们准备好开始源码之旅吧~

45fcdc798ee257db5f429400b52ed02e.gif ●数据挖掘原理与实战(三)--朴素贝叶斯分类算法 ●数据挖掘原理与实战(二)--频繁模式树FPTree算法 ● 数据挖掘原理与实战(一)--关联规则Apriori算法

●Spark原理与实战--数据抽象DataFrame(五)

●Spark原理与实战--数据抽象RDD(四)

●Spark原理与实战--GraphX图查询(三)

●Spark原理与实战--SparkStreaming流处理(二)

●Spark原理与实战--环境搭建及WordCount(一)

●Spark数据倾斜解决方案实战(三)

●Spark数据倾斜解决方案实战(二)

●Spark数据倾斜解决方案实战(一)

●大数据计算生态之数据计算(二)

●大数据计算生态之数据计算(一)

●大数据计算生态之数据存储

05b673ae1cdff5bc223df724b582f983.png

文章都看完了301244fa0e2276fa8747b01ee2455bae.gif不点个81254f71c687f48fd9f928fce9bdee0d.png 吗

欢迎    点赞、在看、分享  三连哦~~

最后

以上就是幸福篮球为你收集整理的maven实战 源码_源码学习(一)Presto编译与调试的全部内容,希望文章能够帮你解决maven实战 源码_源码学习(一)Presto编译与调试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部