0、前言
Presto是分布式SQL查询引擎,基于内存的并⾏计算,用来专门处理高速,实时的数据分析。Presto本身不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。
与MySQL对比,MySQL有存储和计算分析能力,但不能处理大数据量的分析;与hive对比,Hive是基于Hadoop的数据仓库,将sql转换为MapReduce运行,交互式较弱;与SparkSql对比,SparkSql是基于hive数据源、spark计算引擎的,处理结构化数据SQL解决方案。
1、Presto安装
访问presto官网,下载presto服务端presto-server-0.271.tar.gz、presto客户端presto-cli-0.271-executable.jar,执行安装过程如下:
tar -zxvf presto-server-0.271.tar.gz -C /opt
cd presto-server-0.271/
mkdir data
mkdir etc
mkdir etc/catalog
2、Presto配置
进入新建的etc目录,依次创建下列5个配置文件。
执行vim config.properties,新建集群配置如下:
#是否为Coordinator调度节点
coordinator=true
#主节点是否也作为work。在coordinator里做worker的工作会影响查询性能。
node-scheduler.include-coordinator=true
#指定HTTP端口。Presto使用HTTP来与外部和内部进行交流
http-server.http.port=8082
#查询能用到的最大总内存
query.max-memory=8GB
#查询能用到的最大单结点内存
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#Presto使用Discovery服务去找到集群中的所有结点。
discovery-server.enabled=true
#Coordinator节点的域名或者IP,每个Presto实例在启动时都会在Discovery服务里注册。
discovery.uri=http://192.168.1.87:8082
执行vim jvm.config,新建运行环境配置如下:
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
执行vim log.properties,新建日志级别配置如下:
#日志级别分别为INFO、DEBUG、ERROR三种级别
com.facebook.presto=INFO
执行vim node.properties,新建日志级别配置如下:
#自定义环境名字,Presto集群结点环境名字必须一致。
node.environment=production
#每个结点的唯一标识,重启或升级Presto都必须还保持原来的标识。
node.id=ffffffff-ffff-ffff-ffff-fffffffffff1
#数据目录,Presto用它来保存log和其他数据
node.data-dir=/opt/presto-server-0.271/data
修改presto启动文件vim bin/launther,新增JDK环境配置:
JAVA_HOME=/usr/java/jdk1.8.0_161
3、连接MySQL、hive
进入presto安装目录下etc/catalog子目录,创建MySQL、hive、elasticsearch连接配置。
执行vim hive.properties,新增hive的连接配置:
#设置hive连接名称
connector.name=hive-hadoop1
#设置hive连接地址,需要启动hive metastore服务
hive.metastore.uri=thrift://localhost:9083
#设置hadoop集群配置文件目录
hive.config.resources=${HADOOP_HOME}/etc/hadoop/core-site.xml,${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
执行vim mysql.properties,新增mysql的连接配置:
#设置MySQL连接名称
connector.name=mysql
#设置MySQL连接地址
connection-url=jdbc:mysql://localhost:3306
#设置MySQL登录用户
connection-user=root
#设置MySQL登录密码
connection-password=123456
执行vim elasticsearch.properties,新增elasticsearch的连接配置:
#设置elasticsearch连接名称
connector.name=elasticsearch
elasticsearch.host=localhost
elasticsearch.port=9200
elasticsearch.default-schema-name=default
4、Presto服务器启动
./bin/launther start 后台启动
./bin/launther stop 停止
./bin/launther run 前台启动,输出日志
./bin/launther restart 重启
浏览器访问http://192.168.1.87:8082/ui/,查看web界面。在/var/log目录下,可查看日志文件。
5、Presto客户端连接测试
拷贝presto-cli-0.271-executable.jar到/opt/presto-server-0.271/目录下,启动客户端。
mv presto-cli-0.228-executable.jar /opt/presto-server-0.271/
./presto --server 192.168.1.87:8082 --catalog mysql
通过客户端命令行,执行查询测试:
网友评论