Presto的单机版安装与简单使用

一、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  https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.271/presto-server-0.271.tar.gzhttps://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.271/presto-server-0.271.tar.gzhttps://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.271/presto-server-0.271.tar.gz

2、也可以在官网下载

Launch Presto: Local download, JDBC, Docker or on AWS Cloud

  • 解压并重命名
解压:tar -zxvf presto-server-0.271.tar.gz -C /opt/installs/
创建软连接 ln -s presto-server-0.271 presto
进入到该目录下:cd /opt/installs/presto

单机版安装 

配置presto

  • 创建配置文件储存目录

 注意:官方的安装包默认没有etc配置文件目录,需要自行创建

 配置etc

  • Config 配置属性: Presto服务器的配置
  • JVM配置: Java虚拟机的命令行选项
  • node节点配置: 每个节点的环境配置
  • hive配置
  • MySQL配置

先进入到etc目录下

 cd /opt/installs/presto/etc
  • 配置Config 

vim config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8090
query.max-memory=6GB
query.max-memory-per-node=2GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://bigdata01:8090

 其中bigdata01为主机名

8090为端口

  • JVM配置文件(各节点配置相同即可)

vim jvm.config

-server
-Xmx3G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
  •  node节点配置: 每个节点的环境配置

vim node.properties 

node.environment=hudipresto
node.id=presto-node1
node.data-dir=/opt/installs/presto/data

node.data-dir为日志路径,会在该路径下产生var/log路径,在server.log中查看日志

  • 配置hive相关

cd /opt/installs/presto/etc

mkdir catalog

cd  ./catalog/

vim hive.properties

connector.name=hive-hadoop3
hive.metastore.uri=thrift://bigdata01:9083
hive.parquet.use-column-names=true
hive.config.resources=/opt/installs/hadoop/etc/hadoop/core-site.xml,/opt/installs/hadoop/etc/hadoop/hdfs-site.xml

1、此处connector.name应该为指定的版本,以便于presto使用对应的适配器

通过hadoop version(注意没有“-”)查看自己hadoop的版本

如果写connector.name=hive,会报错

ERROR    main    com.facebook.presto.server.PrestoServer    No factory for connector hive
java.lang.IllegalArgumentException: No factory for connector hive

2、hive.config.resources为hadoop中有关hive配置文件的路径

  • 配置MySQL相关

vim mysql.properties

connector.name=mysql
connection-url=jdbc:mysql://bigdata01:3306
connection-user=root
connection-password=123456

bigdata01为主机名

root为用户名

123456为密码

启动Presto服务

cd /opt/installs
presto/bin/launcher start

查看进程(进程名:PrestoServer)

页面访问

ip:8090

 安装Presto CLI命令行客户端

下载jar包(选一种即可)

1、

 https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.271/presto-cli-0.271-executable.jar

 2、 官网下载:Launch Presto: Local download, JDBC, Docker or on AWS Cloud

把jar包拷贝到bin目录下。重命名为presto

mv presto-cli-0.271-executable.jar presto
chmod +x presto
启动
./presto --server bigdata01:8090 

show catalogs;
show schemas from  hive;

集群模式

Presto简介、部署、原理和使用介绍-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值