Presto集群安装部署
Presto集群安装部署
1、PrestoSQL概述
2020年12月27日,PrestoSQL为了更好的与Facebook的Presto进行区分而改名为Trino。PrestoSQL/Trino是一种分布式SQL查询引擎,旨在查询分布在一个或多个异构数据源上的大型数据集
PrestoSQL官网:https://trino.io
PrestoSQL官方文档:https://trino.io/docs/current/overview.html
更多关于Presto的介绍详见文章:传送门
本文主要详细介绍PrestoSQL的安装部署过程
在Presto-330
版本里已经提到,jdk8只支持到2020-03月发行的版本。详情参考:https://prestosql.io/docs/current/release/release-330.html
Presto-315
是最后一个支持jdk8环境的版本,如果想使用更新版本的Presto,可以为Presto单独指定jdk11。本文Presto安装部署使用Presto-315
版本
2、PrestoSQL安装部署
2.1、集群规划
在单独一台服务器上配置Coordinator,有利于提高集群性能,因此,可以在node01上配置Coordinator,在node02、node03上配置Worker。当然也可以将在Coordinator所在的节点上部署Worker
本次Presto安装部署使用如下规划:
Host | Coordinator | Worker |
---|---|---|
node01 | √ | √ |
node02 | × | √ |
node03 | × | √ |
2.2、安装部署
2.2.1、Presto Server安装
1) 下载安装包:https://repo1.maven.org/maven2/io/prestosql/presto-server/315/
2) 将presto-server-315.tar.gz
上传到node01服务器上,并解压,修改名称为presto-315
tar -zvxf presto-server-315.tar.gz -C /opt/module/
3) 在安装目录presto-315
下创建存储Presto数据(日志等)的目录 (Presto集群的每台机器都要创建)
mkdir -p /data
4) 在安装目录presto-315
下创建etc目录,用来存放各种配置文件
mkdir etc
2.2.2、Presto Server配置文件
Persto-Server启动需要node.properties
、jvm.config
、config.properties
、log.properties
及连接Catalog数据源5大配置
node.properties
:每个节点的环境配置jvm.config
:JVM的命令行选项config.properties
:Presto Server的配置项log.properties
:日志文件配置catalog/hive.properties
:数据源连接器的配置,例如Hive数据源
1)Node Properties
在etc目录下,新建node.properties
配置文件配置Presto集群属性(其它节点修改node.id
)
vim node.properties
node.properties
# 集群名称,环境名称,自己任取。集群中的所有Presto节点必须具有相同的环境名称
node.environment=dev
# 节点唯一标识符,支持字母、数字。这个标识符应该在重启或升级Presto时保持一致
node.id=1
# 指定Presto的日志和其它数据的存储目录(前面创建好的数据目录)
node.data-dir=/opt/module/presto-315/data
2)JVM Config
在etc目录下,新建jvm.config
配置文件配置启动JVM时候需要使用的命令行选项
vim jvm.config
jvm.config
# 参考官方给的配置,根据自身机器实际内存进行配置
-server
# 最大jvm内存
-Xmx16G
# 指定GC的策略
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-XX:ReservedCodeCacheSize=256M
3)Config Properties
在etc目录下,新建config.properties
配置文件用于指定Coordinator和Worker节点,并配置一些相关属性
vim config.properties
config.properties
(Coordinator节点)
# 该节点是否作为Coordinator,如果是true就允许该Presto实例充当协调器
coordinator=true
# 是否允许在协调器上调度工作(即配置Worker节点)
# 对于较大的集群,协调器上的处理工作可能会影响查询性能,因为机器的资源无法用于调度、管理和监视查询执行的关键任务
# 如果不想在协调器所在的节点配置Worker节点,改为false即可
node-scheduler.include-coordinator=true
# 指定HTTP服务器的访问端口,可以自己指定。Presto使用HTTP进行所有内部和外部通信
http-server.http.port=8090
# 每个查询可以使用的最大分布式内存量
query.max-memory=10GB
# 查询可在任何一台计算机上使用的最大用户内存量
query.max-memory-per-node=1GB
# 查询可在任何一台计算机上使用的最大用户和系统内存量,其中系统内存是读取器
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!