实时查询引擎 - Facebook Presto 介绍与应用

本文介绍了Facebook的分布式实时查询引擎Presto,它支持ANSI SQL,适用于PB级数据的快速交互式查询。Presto包含协调器和工作节点,通过插件形式抽象数据存储层,如Hive、Cassandra、MySQL等。文章详细阐述了Presto的结构、安装步骤、配置Hive Connector以及使用Presto查询Hive表数据的方法,并指出在使用中可能遇到的问题。
摘要由CSDN通过智能技术生成
1. Presto 是什么

  Facebook presto是什么,继Facebook创建了HIVE神器后的又一以SQL语言作为接口的分布式实时查询引擎,可以对PB级的数据进行快速的交互式查询。它支持标准的ANSI SQL.包含查询,聚合,JOIN以及窗口函数等。除了Facebook这个创造都在使用外,国内像京东,美团等也都有广泛的使用。对于英文不好的同学可以访问由京东创建的这个中文翻译站点:http://prestodb-china.com/,只是这个版本才0.100,现在最新版已到0.156.

2. Presto 结构

  Presto同样是需要部署到每一个DataNode上的分布式系统,它包括一个coordinator和多个worker:
Presto结构

  • Coordinator: 接入接口,解析SQL语句,生成查询计划,任务分发等。
  • Worker:负责与数据的读写交互以及执行查询计划

  值得一提的是Presto以插件形式对数据存储层进行了抽象,它叫做连接器,如:Cassandra Connector,Hive Connector,MySQL Connector等,可以看出它不仅默认提供了Hadoop相关组件的连接器,还提供了Mysql, Postgresql等RDBMS的连接器,同时也可以方便的通过自定义连接器开发,达到适用于不同数据存储层的扩展目的。

  Presto提供以下几种类型的使用接口:

  • Presto命令行
  • JDBC驱动
3. Presto安装

  Presto只支持Linux系统的部署。它的Worker节点同时也可以作为Coordinator节点,但是Presto建议独立部署Coordinator节点,并采用独立服务器进行部署,避免性能影响。
  本文的测试环境为基于CDH 5.5的Hadoop集群环境的安装和测试。Presto 版本:0.152.3. Presto 的安装JDK版本必须要求:1.8. 安全方式为独立Coordinator节点+Worker节点的方式

 1. 解压Presto到每一台Worker节点和Coordinator节点

 tar -xzvf presto-server-0.152.3.tar.gz

 2. 配置node.properties
   node.properties包含了Presto的节点配置信息,在解压后目录的 etc/node.properties位置。,如:

node.environment=myprestoproduction #全部相同的集群名字,经测试不能大小写混合
node.id=ffffffff-ffff-ffff-ffff-fffffffffff1 #这个每个presto节点ID都需要不一样,可在后面数字递增
node.data-dir=/usr/local/presto-server-0.152.3/data  #presto数据存储目录,放在了解压软件目录下

 3. 配置jvm.config
  jvm.config这个配置文件通过名字,大家应该知道是配置什么了吧。内容如下:

-server
-Xmx8G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值