本文前提
系统CentOs6.8,已安装完成hadoop1.7.2、Hive1.2.1,Mysql5.6,共三台测试机器组成集群
Presto
是什么?
Presto是一个sql查询引擎,类似Hive在大数据体系中的地位,同样的,它是用来分析数据而不是存储数据的
能做什么?
因为是基于内存计算,能够对大量数据做到一个准实时的分析。
能够连接多个数据源进行交叉计算。
因为是基于内存的计算,在分析海量数据时hive更具有优势
怎么安装?
1、Server安装
- 下载安装包 presto-server-0.196.tar.gz
- 解压 tar -zxvf presto-server-0.196.tar.gz -C ./
- 改名 mv presto-server-0.196/ presto
- 在presto下创建目录 data和etc,在etc下创建catalog目录。最后preso目录如下图所示
- 在etc目录下创建如下文件
- jvm.config内容如下
- hive.properties内容如下
- 其中一个node.properties内容如下,不同的node节点,其node.id不能一样
- coordinator节点的config.properties如下
- worker节点的config.properties如下
- 启动HDFS后,在hive目录下启动Hive Metastore
- 在所有节点上启动Server
2、可视化客户端安装
- 解压yanagishima
- 在conf目录下配置yanagishima.properties内容如下
- 启动客户端
- 进入到web客户端
- 结果如下图所示
系统架构
Presto中的server有两种角色,一个时Coordinator一种是Worker,具体如下图所示。
基本使用
和hiveSql的使用基本相同,他们之间的差别暂不详述。需要注意的是在存在多个数据源时,需要明确的指定catalog, Schema, Table
常用优化
- 合理设置分区
- 使用列式存储
- 使用压缩
- 只选择使用的字段
- 过滤条件加分区字段
- join时将大表放在左边