美文网首页
Presto学习(二):概念

Presto学习(二):概念

作者: 阿猫阿狗Hakuna | 来源:发表于2021-02-24 15:34 被阅读0次

    节点类型

    Presto中有两种节点:coordinators和workers。

    Coordinator

    coordinator负责解析语句、规划查询、管理worker节点。其是Presto的大脑,也是client连接并提交语句的地方。每个Presto集群必须包含一个coordinator以及一个或多个worker。如果是开发或测试目的,一个节点可以同时配置为coordinator何worker。
    coordinator先为查询创建logic model,涉及一系列stage,然后将这些stage转换为在Presto workers集群上运行的一系列tasks。
    coordinator使用Rest API与worker和client进行交互。

    Worker

    worker负责执行task和处理数据。worker节点从connectors中拉取数据,并互相交换中间数据。coordinator负责拉取结果,并将其返回给client。

    数据源

    Connector

    connector使得Presto可以连接到Hive或关系型数据库。
    Presto内嵌了很多connector,比如hive connector或用于TPC-H的TPCH connector。
    每个catalog都与特定的connector相关联。在catalog的配置文件中,有一个强制属性:connect.name,用于为给定的catalog创建connector。
    可能会有多个catalog使用相同的connector连接到不同的数据库实例。比如有两个hive集群,可以配置两个catalog,使用hive connector分别连接。

    Catalog

    Catalog包含schemas,且是一个包含connector的数据源。

    Schema

    Schema是一种组织表的方式。catalog和schema一起定义了一组可以查询的表。

    Table

    与关系数据库中的表概念相同。从源表到table的映射由connector确定。

    Query Execution Model

    Statement

    Statement是ANSI兼容的。其包含子句、表达式、以及谓语。
    在Presto中,Statement只是SQL的文本表示。当一条statement被执行时,Presto创建一个query和一个query plan,然后将其分布到一系列worker中。

    Query

    当Presto解析一条statement时,会生成一个query以及其对应的分布式的query plan,然后将该query plan实现为一系列相互关联的stage,在workers上运行。

    Stage

    当Presto运行一个query,它会将其分解为stage的层次结构。例如,如果Presto需要聚合存储在Hive中的十亿行数据,它会创建一个root stage来聚合其他几个stage的输出,所有这些stage都是为了实现分布式查询计划的不同部分。
    组成query的stage的层级结构类似一棵树。每个query都有一个root stage,用于聚合其他stage的结果。stage是coordinator用来对分布式查询计划建模的,其本身不运行在worker上。

    Task

    Stage会被实现为一系列tasks分布在Presto集群上。
    一个task具有inputs和outputs,正如一个stage可以以一系列task并行执行,一个task也可以被一系列drivers并行执行。

    Split

    task运行在Splits上,Split是一个大数据集分割而成的。分布式查询计划的最底层的stage通过connector的split来检索数据,分较高层的中层stage则从其他stage检索数据。

    Driver

    task包含一个或多个并行的driver。driver根据数据进行操作,组合操作符来产生输出,然后由一个task聚合, 然后在另一个stage交付给另一个task。
    一个driver是操作符实例的序列,也可以把driver看作内存中操作符的物理集合。
    它是Presto架构中最低级别的并行。driver有一个input和一个output。

    Operator

    operator用来对数据进行消费、转换和产出。

    Exchange

    exchange为query的不同stage在Presto节点之间传输数据。
    task将数据输出到缓冲区中,并使用exchange client消费其他task的数据。

    相关文章

      网友评论

          本文标题:Presto学习(二):概念

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