作者 | 士心先生
来源 | 程序员的读书故事 (公众号:pg_reading)
- Presto是一个分布式SQL查询引擎,类似于大规模并行处理(MPP)数据库。Presto通过在整个集群的服务器上分配处理任务来实现横向扩展,而非通过提高单台服务器性能来进行纵向扩展。这意味着,你可以通过添加更多的计算节点来获得更强大的处理能力。
- 基于这种架构,Presto的查询引擎可以在集群内的计算节点上并行处理海量数据上的SQL查询。在每个计算节点上,Presto都以单个服务端进程的形式运行。一个Presto集群由多个被配置为相互协作的Presto节点所组成。
- 协调器用于接受用户查询并管理工作节点以执行查询工作。工作节点负责执行任务和处理数据。协调器上通常会运行一个节点发现服务,工作节点通过注册到此服务以加入集群。 客户端、协调器和工作节点之间的通信和数据传输完全通过基于HTTP/HTTPS的RESTful API调用。
- 协调器为工作节点分配任务、更新状态并从工作节点获取顶层的结果集返回给用户。工作节点从数据源以及运行在其他节点上的上游任务中获取数据。