Presto-数据分析引擎
facebook-presto的安装与简单的连接使用
- Facebook Presto是以sql语言作为接口的分布式查询引擎,类似Cloudera公司的impala,但presto支持更丰富的数据库查询;
- Presto支持标准的ANSI SQL包含查询,聚合函数,JSON以及窗口函数;
- Presto引擎将需要查询的数据加载到服务器内存,对数据库没有侵略性,给数据库压力较小;
- 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析;
- Presto支持大部分关系型数据库以及专有数据存储,包含hive,Cassandra等;
- Presto也能作为kettle和datax等数据传输工具的输入端;
- Presto可以作为finereport bi的查询工具;
- 集群化部署,支持高可用,高并发,线性扩展;
1. 环境准备
1.1. 规划
两台CentOS7.8操作系统:
10.0.10.200 centos-001 coordinator/workers ##主节点也做workers
10.0.10.201 centos-002 workers ##工作节点
1.2. 安装包下载
presto镜像地址:https://repo1.maven.org/maven2/com/facebook/presto/
presto-server-0.275.tar.gz:https:/ /repo1.maven.org/maven2/com/facebook/presto/presto-server/0.275/
presto-cli-0.275-executable.jar:https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.275/
jdk-8u331-linux-x64.tar.gz:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
1.3. 解压并安装jdk(所有节点)
解压目录:/usr/java/jdk1.8.0_331
## 配置环境变量
vi /etc/profile
## 添加一下内容
# JAVA_HOME
JAVA_HOME=/usr/java/jdk1.8.0_331
JRE_HOME=/usr/java/jdk1.8.0_331/jre
CLASS_PATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
## 使环境变量生效
source /etc/profile
2. Presto安装
2.1. 解压
# 创建presto目录
mkdir /opt/presto
# 解压
tar -zxvf /opt/software/presto-server-0.275.tar.gz -C /opt/presto/
# 将客户端文件放在bin目录,并重命名
cp presto-cli-0.275-executable.jar /opt/presto/presto-server-0.275/bin/
mv /opt/presto/presto-server-0.275/bin/presto-cli-0.275-executable.jar /opt/presto/presto-server-0.275/bin/presto
# 增加可执行权限
chmod +x /opt/presto/presto-server-0.275/bin/presto
2.2. 配置
1)创建配置文件
# 创建data目录
mkdir -p /opt/presto/data
# 创建配置文件
touch /opt/presto/presto-server-0.275/etc/config.properties
touch /opt/presto/presto-server-0.275/etc/jvm.config
touch /opt/presto/presto-server-0.275/etc/log.properties
touch /opt/presto/presto-server-0.275/etc/node.properties
2)config.properties
coordinator节点:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8085
query.max-memory=2GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://10.0.10.200:8085
workers节点:
coordinator=false
http-server.http.port=8085
query.max-memory=2GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=1GB
discovery.uri=http://10.0.10.200:8085
3)jvm.config(主从节点一致)
-server
-Xmx16G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=200000
4)node.properties
coordinator节点:
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff-001
node.data-dir=/opt/presto/data
workers节点:
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff-002
node.data-dir=/opt/presto/data
5)log.properties(主从节点一致)
io.trino=INFO
2.3. 配置MySQL连接
# 创建catalog目录
mkdir -p /opt/presto/presto-server-0.275/etc/catalog
# 创建mysql.properties文件
vi /opt/presto/presto-server-0.275/etc/catalog/mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://10.0.10.200:10000?sslMode=REQUIRED&serverTimezone=GMT%2B8&useSSL=false
connection-user=admin
connection-password=******
Presto连接支持7种类型数据库:hive、mysql、oracle、postgresql、SQL server、MongoDB、Kudu。仅限于查询、连接。还支持中间件连接(redis、kafka、Elasticsearch )
具体properties文件的编写可参考官网:https://prestodb.io/docs/current/connector.html
2.4. 复制程序文件到从节点
以上配置完成后,将主节点的/opt/presto文件复制到所有从节点的/opt/presto目录即可,注意修改主从不一致的config.properties和node.properties文件即可
2.5. 启动presto
# 第一次建议调试启动
/opt/presto/presto-server-0.275/bin/launcher --verbose run
# 后台启动(日志在/opt/presto/data/var/log)
/opt/presto/presto-server-0.275/bin/launcher start
# 停止服务
/opt/presto/presto-server-0.275/bin/launcher stop
# 从启
/opt/presto/presto-server-0.275/bin/launcher restart
2.6. 查看presto的web ui页面
地址:http://10.0.10.200:8085/
3. 查询
3.1. 启动客户端
# 进入客户端
/opt/presto/presto-server-0.275/bin/presto --server 10.0.10.200:8085
# 查看连接的数据源
show catalogs;
3.2. 查看MySQL中的库表
# 查看所有库
show schemas from mysql;
# 单表查询
select * from mysql.presto.tbl_presto_query_test_20220824 LIMIT 100;
4. 客户端工具连接Presto
4.1. Dbeaver下载安装
github地址:https://github.com/dbeaver/dbeaver
下载地址:https://github.com/dbeaver/dbeaver/releases
4.2. Dbeaver连接Presto
1)新建数据库连接–>SQL–>PrestoDB–>输入以下信息
2)填写连接信息
主机:10.0.10.200
端口:8085
用户名:填任意值即可
密码可不填,如果填写密码,presto就认为是有配置帐号密码了,这时候为了安全就会走SSL认证,但是实际presto没有设置SSL认证,会报错
3)测试连接
如果没有安装驱动的话,这里Dbeaver会自动下载最新的presto jdbc连接驱动,下载完成即可连接成功
5. 总结
至此Presto安装完成,后续在工作或者学习中遇到更多问题再更新,如果有什么需要补充的欢迎评论指出!
更多推荐
所有评论(0)