presto 使用 部署_Wormhole:基于Docker构建配置Presto和Alluxio实现快速分析

请点击上方蓝字,关注我们哦!

这是一篇由Ashwin Sinha撰写的客座博客,原始博客资源见文末链接1。

372a2d203290e0b5b212a834e1c0336f.png

该博客介绍 Wormhole (见文末链接2),一个开源的基于Docker的Presto和Alluxio集群部署解决方案。通过该方案可以对文件系统进行快速分析(我们使用S3,GCS,OSS)。在数据分析方面,人们通常手动编写SQL查询并喜欢分析仓库中的数据(例如MySQL数据库)。但是随着数据的增长,这些存储开始能以支撑,因此需要在相同或更少的时间范围内更快地获得的结果。这可以通过分布式计算解决,事实上Presto就是为此而设计的。当Presto与Alluxio连接后,它的工作速度甚至会更快。这就是Wormhole项目产生的全部动机。 下图为解决方案的架构图:

882e59cb04698f16dbc31e247a6e71b2.png

让我们按照Wormhole中配置顺序来逐一介绍每个组件:

  • Consul — Consul是一种服务网络解决方案,其功能是为跨任何运行平台以及公有或私有云的应用提供网络连接和保护服务。它通过容器的containerID来帮助识别容器,具体配置说见文末链接3。

  • Docker — Docker是一系列平台即服务(platform-as-a-service)产品,它们在被称为容器的包中使用操作系统级虚拟化支撑交付软件。容器彼此隔离,并将它们自己的软件、库和配置文件捆绑在一起;它们可以通过完善定义的通道相互通信。在我们的配置中,我们将所有服务都放置在Docker容器中,具体配置说明见文末链接4。

  • Alluxio Master — Alluxio masters按高可用(HA)(见文末链接5)模式进行部署。它们负责制定查询执行计划,并将查询分发给workers,然后将合并的各个结果返回并发送回请求者。具体配置说明见文末链接6。
  • Alluxio Worker — Alluxio workers是Alluxio的实际缓存存储组件。从Alluxio文件系统(FS)查询数据时,它从底层文件系统(可能是S3,GCS或任何已配置的FS)中获取数据,并以LRU方式存储在RAM中。下次无需访问FS并从其自己的缓存中返回数据块,具体配置说明见文末链接7。

  • Hive metastore — Hive Metastore(见文末链接8)是所有Hive表的元数据的集合。在我们的配置中,我们在MySQL上创建元数据存储以存储Alluxio的定位数据,具体配置说明见文末链接9。
  • Presto Coordinator — Presto协调器按高可用(HA)(见文末链接5)模式进行部署。它们负责制定jiquery执行计划,并将查询分发给worker,然后将合并的各个结果返回并发送回请求者,具体配置说明见文末链接10。
  • Presto Worker — Presto workers负责处理底层Alluxio中的数据。它们提取数据,对其执行操作,然后将各个结果发送给协调器,具体配置说明,见文末链接11。

除了上述组件外,我们还需要一个Zookeeper(见文末链接12) quorum组件及配置,这是为了使Alluxio主服务器和Presto协调器高度可用(HA)。有关配置的完整文档,请参阅此处(见文末链接13)。

实际运行

现在我们已经在Alluxio的顶层配置了Presto,那么应当如何使它可供所有人使用呢?答案是需要使用其他一些工具,例如Metabase(见文末链接14),提供与Presto的连接。我们只需要添加适当的配置,它们就可用于各种数据分析。

Presto和Alluxio还提供UI来跟踪当前状态,这对用户作用很有帮助。

bac66325c43396e63ee23b3459447725.png

f1b7853cdadc5b0ff7cbe8b085141601.png

下一步计划

后面我们的工作重点将是通过用户界面使该解决方案提供自助服务,并使其实现自扩展(可能可以在Kubernetes(见文末链接15)上部署)。

关于作者

本文作者是一位专业的数据工程师,喜欢学习和使用分布式系统。他也是一名开源爱好者,乐于贡献社区,可以参考github(见文末链接16)和medium(见文末链接17)上的工作。此外,他还是喜欢探索远方并享受长途骑行的旅行者。

参考链接:
链接1:
https://medium.com/@tygrash/introducing-wormhole-dockerized-presto-alluxio-setups-for-blazing-fast-analytics-ce77109032b9
链接2:
https://github.com/tygrash/wormhole

链接3:

https://github.com/tygrash/wormhole/blob/master/Consul.md

链接4:

https://github.com/tygrash/wormhole/blob/master/Docker.md

链接5:

https://searchdatacenter.techtarget.com/definition/high-availability

链接6:

https://github.com/tygrash/wormhole/blob/master/alluxio-master/README.md

链接7:

https://github.com/tygrash/wormhole/blob/master/alluxio-worker/README.md

链接8:

https://dzone.com/articles/hive-metastore-a-basic-introduction

链接9:

https://github.com/tygrash/wormhole/blob/master/hive/README.md

链接10:

https://github.com/tygrash/wormhole/blob/master/presto-coordinator/README.md

链接11:

https://github.com/tygrash/wormhole/blob/master/presto-worker/README.md

链接12:

https://zookeeper.apache.org/

链接13:

https://github.com/tygrash/wormhole

链接14:

https://www.metabase.com/docs/latest/administration-guide/01-managing-databases.html

链接15:

https://kubernetes.io/

链接16:

https://github.com/tygrash

链接17:

https://medium.com/@tygrash

更多精彩内容,请

5a6bc83657ebcd8a1726f63c711410d7.png

·end·

—如果喜欢,快分享给你的朋友们吧—

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值