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 有所帮助:

目录
相关文章
|
6月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。
|
SQL 存储 Java
45 Hive架构
45 Hive架构
44 0
|
SQL 分布式计算 资源调度
hive-3.1.2安装以及使用tez作为执行引擎指南
本文介绍hive-3.1.2安装以及使用tez作为执行引擎指南
hive-3.1.2安装以及使用tez作为执行引擎指南
|
SQL 存储 分布式计算
数据仓库的Hive的Hive架构的HiveServer2
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。Hive是一个开源的数据仓库系统,基于Hadoop平台,可以存储和处理大规模的数据。HiveServer2是Hive的一个重要组成部分,负责接收来自客户端的SQL请求,并将其转换成物理执行计划,然后执行并返回结果。本文将介绍HiveServer2的架构和作用。
300 0
|
SQL 存储 分布式计算
关于数据仓库的Hive的Hive架构的beeline
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。
299 0
|
SQL 存储 分布式计算
|
存储 SQL 缓存
HBase&HIve 1|学习笔记
快速学习 HBase&HIve 1
182 0
HBase&HIve 1|学习笔记
|
SQL 存储 资源调度
CDP中的Hive3系列之保护Hive3
作为管理员,您需要了解运行 Hive 查询的 Hive 默认授权是不安全的,以及您需要做什么来保护您的数据。您需要了解您的安全选项:设置 Ranger 或基于存储的授权 (SBA),它基于模拟和 HDFS 访问控制列表 (ACL),或这些方法的组合。 将 Apache Hive 访问限制为已批准的用户。Cloudera 推荐 Ranger。授权是检查用户权限以执行选择操作的过程,例如创建、读取和写入数据,以及编辑表元数据。Apache Ranger 为所有 Cloudera 运行时服务提供集中授权。 您可以设置 Ranger 以使用 Hadoop SQL 策略保护托管的 ACID 表或外部表。
914 0
CDP中的Hive3系列之保护Hive3
|
SQL Java 分布式数据库
Hive与HBase的集成
Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询、同时也可以将hive表中的数据映射到Hbase中。
|
SQL 存储 分布式计算
Presto 架构
Coordinator担当 Master 角色,负责解析 SQL,生成查询计划,提交查询任务给 Worker 执行,管理 Worker 节点。
200 0