Presto介绍

简介:

1. 简介

Presto 是一个运行在集群之上的分布式系统。一个完全的安装报考一个 coordinator 进程和多个 workers 进程。查询通过一个客户端例如 Presto CLI 提交到 coordinator 进程。这个 coordinator 进程解析、分析并且生成查询的执行计划,然后将执行过程分发到 workers 进程。

下面是一个架构图(图来自 http://www.dw4e.com/?p=141,此图将官网的架构图稍微修改了一下,增加了 Discovery 的服务,这样可能看起来会更清楚一些):

Presto 查询引擎是一个 Master-Slave 的架构,由一个 Coordinato r节点,一个 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 交互读取数据。

2. 要求

Presto 有以下几个基本要求:

  • Linux 或者 Mac OS X 系统
  • Java 8,64位
  • Python 2.4++

2.1 连接器

Presto 支持可插拔的连接器用于提供数据查询。不同连接器的要求不一样。

HADOOP/HIVE

Presto 支持读以下版本的 hive 数据:

  • Apache Hadoop 1.x,使用 hive-hadoop1 连接器
  • Apache Hadoop 2.x,使用 hive-hadoop2 连接器
  • Cloudera CDH 4,使用 hive-cdh4 连接器
  • Cloudera CDH 5,使用 hive-cdh5 连接器

支持以下格式:Text、SequenceFile、RCFile、ORC。

另外,还需要一个远程的 Hive metastore 服务。本地的或者嵌入式模式是不支持的。Presto 不使用 MapReduce 并且只需要 HDFS。

CASSANDRA

Cassandra 2.x 是需要的。这个连接器是完全独立于 Hive 连接器的并且仅仅需要一个安装好的 Cassandra 集群。

TPC-H

TPC-H 连接器动态地生成数据用于实验和测试 Presto。这个连接器没有额外的要求。

当然,Presto 还支持一些其他的连接器,包括:

  • JMX
  • Kafka
  • MySQL
  • PostgreSQL

3. 使用场景

3.1 What Presto Is Not

Presto 支持 SQL 并提供了一个标准数据库的语法特性,但其不是一个通常意义上的关系数据库,他不是关系数据库,如 MySQL、PostgreSQL 或者 Oracle 的替代品。Presto 不是设计用来解决在线事物处理(OLTP)。

3.2 What Presto Is

Presto 是一个工具,被用来通过分布式查询来有效的查询大量的数据。Presto 是一个可选的工具,可以用来查询 HDFS,通过使用 MapReduce 的作业的流水线,例如 hive,pig,但是又不限于查询 HDFS 数据,它还能查询其他的不同数据源的数据,包括关系数据库以及其他的数据源,比如 cassandra。

Presto 被设计为处理数据仓库和分析:分析数据,聚合大量的数据并产生报表,这些场景通常被定义为 OLAP。

3.3 Who uses Presto?

国外:

  • Facebook,Presto 的开发者

国内:

4. 资料

以下是一些资料,希望对你了解 Presto 有所帮助:

目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
Flink CDC + Hudi + Hive + Presto构建实时数据湖最佳实践
Flink CDC + Hudi + Hive + Presto构建实时数据湖最佳实践
142 0
|
8月前
|
SQL 存储 分布式计算
数据仓库的Hive的Hive架构的HiveServer2
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。Hive是一个开源的数据仓库系统,基于Hadoop平台,可以存储和处理大规模的数据。HiveServer2是Hive的一个重要组成部分,负责接收来自客户端的SQL请求,并将其转换成物理执行计划,然后执行并返回结果。本文将介绍HiveServer2的架构和作用。
143 0
|
8月前
|
SQL 存储 分布式计算
关于数据仓库的Hive的Hive架构的beeline
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。
149 0
|
SQL 分布式计算 资源调度
hive-3.1.2安装以及使用tez作为执行引擎指南
本文介绍hive-3.1.2安装以及使用tez作为执行引擎指南
hive-3.1.2安装以及使用tez作为执行引擎指南
|
SQL 存储 分布式计算
Presto实现Hive Connector的配置实录
学习一个东西,个人认为最好的方式是:官网+源码+实践。 Postgre官网:https://prestodb.io
509 1
Presto实现Hive Connector的配置实录
|
SQL 消息中间件 Java
Flink on zeppelin 实时写入hive
概述 随着Flink1.11.0版本的发布,一个很重要的特性就是支持了流数据直接写入到hive中,用户可以非常方便的用SQL的方式把kafka的数据直接写入到hive里面.这篇文章会给出Flink on zeppelin里面实现流式写入hive的简单示例以及遇到问题的解决方案
|
SQL 存储 资源调度
Presto - 简介(二)
Presto - 简介(二)
304 0
|
SQL 存储 分布式计算
Presto - 简介(一)
Presto - 简介(一)
291 0
Presto - 简介(一)
|
SQL 存储 分布式计算
Presto 架构
Coordinator担当 Master 角色,负责解析 SQL,生成查询计划,提交查询任务给 Worker 执行,管理 Worker 节点。
161 0
|
SQL 存储 分布式计算
Apache Hudi和Presto的前世今生
一篇由Apache Hudi PMC Bhavani Sudha Saktheeswaran和AWS Presto团队工程师Brandon Scheller分享Apache Hudi和Presto集成的一篇文章。
250 0
Apache Hudi和Presto的前世今生

热门文章

最新文章