返回介绍

2.3 Presto (Facebook)

发布于 2024-10-03 00:48:44 字数 1213 浏览 0 评论 0 收藏 0

Facebook 也是 Hive 的初始开发者。

Presto 是 Facebook 推出的一个基于 Java 开发的大数据分布式 SQL 查询引擎,可对从数 G 到数 P 的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 Hive 的 10 倍以上。Presto 可以查询包括 Hive、Cassandra 甚至是一些商业的数据存储产品,单个 Presto 查询可合并来自多个数据源的数据进行统一分析。

2.3.1 架构

1574510803845

图 26 Presto 架构

Presto 查询引擎是一个 Master-Slave 的架构,由下面三部分组成:

  • 一个 Coordinator 节点
  • 一个 Discovery Server 节点
  • 多个 Worker 节点

节点说明:

  • Coordinator: 负责解析 SQL 语句,生成执行计划,分发执行任务给 Worker 节点执行
  • Discovery Server: 通常内嵌于 Coordinator 节点中
  • Worker 节点: 负责实际执行查询任务,负责与 HDFS 交互读取数据。
  • 节点间交互: Worker 节点启动后向 Discovery Server 服务注册,Coordinator 从 Discovery Server 获得可以正常工作的 Worker 节点。如果配置了 Hive Connector,需要配置一个 Hive MetaStore 服务为 Presto 提供 Hive 元信息

2.3.2 查询流程

1574510827623

图 27 Presto 执行过程示意图

用户使用 Presto Cli 提交一个查询语句后,Cli 使用 HTTP 协议与 Coordinator 通信,Coordinator 收到查询请求后调用 SqlParser 解析 SQL 语句得到 Statement 对象,并将 Statement 封装成一个 QueryStarter 对象放入线程池中等待执行。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文