美文网首页
Presto的整体架构

Presto的整体架构

作者: liuzx32 | 来源:发表于2020-06-18 17:47 被阅读0次

Presto采用典型的master-slave模型:

  1. coordinator(master)负责meta管理,worker管理,query的解析和调度
  2. worker则负责计算和读写。
  3. discovery server, 通常内嵌于coordinator节点中,也可以单独部署,用于节点心跳。在下文中,默认discovery和coordinator共享一台机器。

image.png

Presto是一个运行在多台服务器上的分布式系统。 完整安装包括一个coordinator和多个worker。 由客户端提交查询,从Presto命令行CLI提交到coordinator。 coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker。

在worker的配置中,可以选择配置:

discovery的ip:port。
一个http地址,内容是service inventory,包含discovery地址。
一个本地文件地址

{
"environment": "production",
    "services": [
    {   
        "id": "ffffffff-ffff-ffff-ffff-ffffffffffff",
        "type": "discovery",
        "location": "/ffffffff-ffff-ffff-ffff-ffffffffffff",
        "pool": "general",
        "state": "RUNNING",
        "properties": {
            "http": "http://192.168.1.1:8080"
        }   
    }   
]   
}

2和3的原理是基于service inventory, worker 会动态监听这个文件,如果有变化,load出最新的配置,指向最新的discovery节点。

在设计上,discovery和coordinator都是单节点。如果有多个coordinator同时存活,worker 会随机的向其中一个汇报进程和task状态,导致脑裂。调度query时有可能会发生死锁。

discovery和coordinator可用性设计。由于service inventory的使用,监控程序可以在发现discovery挂掉后,修改service inventory中的内容,指向备机的discovery。无缝的完成切换。coordiantor的配置必须要在进程启动时指定,同一个集群中无法存活多个coordinator。因此最好的办法是和discovery配置到一台机器。 secondary机器部署备用的discovery和coordinator。在平时,secondary机器是一个只包含一台机器的集群,在primary宕机时,worker的心跳瞬间切换到secondary。

image.png

相关文章

  • Presto的整体架构

    Presto采用典型的master-slave模型: coordinator(master)负责meta管理,wo...

  • Presto 配置

    Presto架构图 下载presto-server-317.tar.gz解压到/opt/app/presto-se...

  • Presto 架构

    Presto Server Coordinator担当 Master 角色,负责解析 SQL,生成查询计划,提交查...

  • 深入理解Presto(3):Presto内存管理

    上一篇文章,我们讲了Presto的架构。Presto是一款内存计算型的引擎,所以对于内存管理必须做到精细,才能保证...

  • Presto性能的优化

    概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数...

  • Presto性能调优的五大技巧

    概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数...

  • presto架构和原理分析

    架构 Presto查询引擎是一个Master-Slave的架构,由一个Coordinator节点,一个Discov...

  • 整体架构

    整体架构jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作、 从上面的写法上至少可以发现2个问题:1...

  • 整体架构

    常见构造函数创建实例和无new创建实例。原文地址 jquery代码 return new 类是为了无new和隔离各...

  • 整体架构

    待业中。。仿写一个B站安卓客户端。整体参考。https://github.com/HotBitmapGG/bili...

网友评论

      本文标题:Presto的整体架构

      本文链接:https://www.haomeiwen.com/subject/bszuxktx.html