栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

presto学习总结(二)

presto学习总结(二)

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

presto中的组件:

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

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

(1)Coordinator:
    负责接收来自用户的查询语句,解析这些语句,安排执行计划,并且管理worker节点.

    Coordinator会跟踪每个worker的活动,并安排查询的执行,一旦接受到SQL查询,Coordinator就会负责parsing,analyzing,planning这个查询。

(2)Discovery Service

    presto通过Discovery Service发现集群中的所有节点,worker启动的时候就会像Discovery Service注册,并且定时发送心跳信号

(3)worker

       worker负责执行Coordinator分配给他的Tasks并且处理数据

sql的执行过程:

SQL以文本的形式被提交到Coordinator之后,Coordinator获取该文本并对其进行解析 和分析, 然后,它通过使用Presto中称为 Query Plan 的内部数据结构创建执行计划

执行流程:

(1)由客户端提交sql查询,通过presto cli提交到coordinator

(2)coordinator解析查询计划,然后把任务分发给worker

(3)worker来负责执行任务和处理数据

(4) 一个 Catalog 包含 Schema 和 Connector 

 Connector类似于JDBC,用于Presto和数据源的连接

 Schema类似于MySQL中的数据库,Schema 是用于组织 table。把 catelog 和 schema 结合在一起来包含一组的表

   Presto 处理 table 时,是通过表的完全限定(fully-qualified)名来找到 catalog。例如, 一个表的权限定名是 hive.test_presto.test,则 test 是表名,test_presto是 schema,hive 是 catalog,属于三层结构

 

每个Catalog配置使用一个Connector来访问一个特定的数据源,Presto的Catalog相当于我们经常说的mysql实例 这个Catalog的数据源会对外暴露一个或多个Schema 每一个Schema包含一些Table,这些表以Row的方式提供数据,每一个Row中包含 多个不同数据类型的Column。

Connector-based架构:

Presto的存储与计算分离的核心在于Connector为基础的架构。Connector为Presto 提供了一个可以访问任意数据源的接口 Presto中的执行计划使用metadata SPI用于获取关于表、列和类型的信息,Data Statistics SPI用于获取关于行数和表大小的信息,以便在计划期间执行基于成本(cost-based)的查询优化, Data Location SPI来收集关于数据源的表等元数据信息,它可以生成关于表内容的逻辑Splits。Splits是工作分配和并行化的最小单位。

也可参考官方网站进行学习, https://prestodb.io/和 https://trino.io/ Presto优点
特点说明
多数据源 支持MySQL/PostgreSQL/Cassandra/Hive/Kafka等
支持sql 完全支持ANSI SQL,提供SQL Shell,也支持JDBC/ODBC
扩展性 connector机制,很容易扩展开发自定义connector对接特定数据源
混合计算 针对一种类型的connector配置一个或多个catalog,支持混合多个 catalog进行join查询计算
高性能 充分利用内存,平均性能是Hive的10倍以上,秒级/毫秒级响应
流水线 Pipeline设计,数据像自来水管道一样,一旦开始计算,数据就立即产生 呈现到终端直到结束

Presto的安装本人是通过dorker的方式进行测试的,主要是体验实践一下,大体的sql基本与MySQL或者hive类似。dorker和presto的安装

部分图片来自于自己买的极客时间的大数据训练营的老师PPT上的图片

欢迎大家提出问题,一起学习进步。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号