presto

本文介绍了Presto,一个Facebook开源的分布式SQL查询引擎,适用于大规模数据交互式分析。文章详细阐述了Presto的架构特点,包括其清晰的架构、简单的数据结构和丰富的插件接口。接着,详述了Presto的安装部署步骤,包括下载、解压、配置文件设置和启动过程。最后,讨论了Presto Hbase Connector的开发,包括方案概况和实际开发使用中的改进之处。
摘要由CSDN通过智能技术生成

1. presto简介及架构

1.1. 简介

Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。presto之所以能在各个内存计算型数据库中脱颖而出,在于以下几点:

  • 清晰的架构,是一个能够独立运行的系统,不依赖于任何其他外部系统。例如调度,presto自身提供了对集群的监控,可以根据监控信息完成调度。
  • 简单的数据结构,列式存储,逻辑行,大部分数据都可以轻易的转化成presto所需要的这种数据结构。
  • 丰富的插件接口,完美对接外部存储系统,或者添加自定义的函数。
  • 用户可以根据presto定义的接口标准,自定义的扩展数据源的查询。例如Hbase的查询。
  • 支持sql的混合计算,即同一种数据源的不同库或表,或将多个数据源的数据进行合并

1.2. 架构模型

在这里插入图片描述Presto采用典型的master-slave模型

  • coordinator(master)负责meta管理,worker管理,query的解析和调度

是一个中心的查询角色,它主要的一个作用是接受查询请求,将他们转换成各种各样的任务,将任务拆解后分发到多个worker去执行各种任务的节点

1、解析SQL语
2、⽣成执⾏计
3、分发执⾏任务给Worker节点执

  • worker则负责计算和读写

是一个真正的计算的节点,执行任务的节点,它接收到task后,就会到对应的数据源里面,去把数据提取出来,提取方式是通过各种各样的connector:
1、负责实际执⾏查询任务

  • discovery server, 通常内嵌于coordinator节点中,也可以单独部署,用于节点心跳

是将coordinator和woker结合到一起的服务:
1、Worker节点启动后向Discovery Server服务注册
2、Coordinator从Discovery Server获得Worker节点

1.3. 数据模型

presto采取三层表结构

  • catalog 对应某一类数据源,例如hive的数据,或mysql的数据
  • schema 对应hive中的数据库
  • table 对应hive中的表

查询示例:

presto:default>  select * from hive.default.test001

2. presto安装部署

2.1. 下载相关包

在官网上下载所需版本的包
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/

2.2. 解压下载的tar包

mkdir -p /opt/presto/data
tar -xvzf presto-server-0.259.tar.gz -C /opt/presto/
  • data 用于存储日志、本地元数据等的数据目录。

2.3. 配置文件

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值