一、Presto简介
Presto是由Facebook开发的一款开源的分布式 SQL 查询引擎 ,数据量支持GB到PB字节,主要用来处理秒级查询的场景。Presto本身并不存储数据,不是一个标准的数据库,不能用来处理在线业务(OLTP),但是可以接入多种数据源,解析SQL,支持跨数据源的级联查询,而且基于内存运算,速度很快,实时性高。
因为presto全部的数据都是在内存中,限制了在内存中的数据集大小,比如多个大表的join,这些大表是不能完全放进内存的,所以presto不适合用在多个大表的join,这也是presto是取代不了hive的原因。
Presto 支持多种数据源,比如关系型数据库(mysql、postgreSQL、Oracle)、hive、Kafka等
Impala性能稍领先于Presto,但是Presto在数据源支持上非常丰富,包括Hive、图数据库、传统关系型数据库、Redis。
Presto 与 Hive 的区别
- Presto不允许用户插入自定义代码,但Hive允许。
- Presto使用ANSI SQL,而Hive使用HiveQL。
- Presto只能处理有限的数据量,因此对于较大的数据,建议使用Hive。
- Presto是常驻任务,接受请求立即执行,全内存并行计算;Hive需要用yarn做资源调度,接受查询需要先申请资源,启动进程,并且采用mapreduce计算模型,中间结果会经过磁盘。
- Presto具有高性能的查询能力,而Hive的性能相对较差。因此,对于需要高性能计算和实时流处理的场景,建议使用Spark;对于需要快速查询大型数据集的场景,建议使用Presto。
二、Presto下载
选一种即可
Presto官方网站:https://prestosql.io/ 这个是英文网址
(如果在中文网址下载很多查询会出现Query is gone (server restarted?)错误)
1、文件较大,可以使用wget安装 presto-server-0.285.1.tar.gz,可以在直接在想安装的路径下执行下载语句,也可以在根目录下指定安装到了自己需要的路径,这里安装到了opt/modules路径下
安装wget命令:yum install wget
进入/opt/modules
wget