PRESTO
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节,为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。
可以做什么?
Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。期望响应时间小于1秒到几分钟。
架构
Presto是一个运行在多台服务器上的分布式系统。 完整安装包括一个coordinator和多个worker。 由客户端提交查询,从Presto命令行CLI提交到coordinator。 coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker
连接器
HADOOP / HIVE
Presto支持从以下版本的Hadoop中读取Hive数据:
- Apache Hadoop 1.x
- Apache Hadoop 2.x
- Cloudera CDH 4
- Cloudera CDH 5
支持以下文件类型:Text, SequenceFile, RCFile, ORC
此外,需要有远程的Hive元数据。 不支持本地或嵌入模式。 Presto不使用MapReduce,只需要HDFS。
CASSANDRA
必须有Cassandra 2.x。 这种连接器完全不依赖Hive连接器,只需要一个安装好的Cassandra。
部署Presto
下载Presto server tarball, presto-server-0.100.tar.gz,将它解压。 它包含一个顶级目录, presto-server-0.100,我们叫它安装目录
Presto需要一个用于存储日志、本地元数据等的数据目录。 建议在安装目录的外面创建一个数据目录。这样方便Presto进行升级
配置Presto
在安装目录中创建一个etc目录。 在这个etc目录中放入以下配置信息:
- 节点属性:每个节点的环境配置信息
- JVM 配置:JVM的命令行选项
- 配置属性:Presto server的配置信息
- Catalog属性:configuration forConnectors(数据源)的配置信息