目录
1. 集群规划
主机名 | 服务 |
---|---|
bigdata001 | coordinator |
bigdata002 | worker |
bigdata003 | worker |
2. 下载解压
在3台服务器上进行安装包下载,然后进行解压,再创建配置文件目录
[root@bigdata001 opt]#
[root@bigdata001 opt]# wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.272/presto-server-0.272.tar.gz
[root@bigdata001 opt]#
[root@bigdata001 opt]# tar -zxvf presto-server-0.272.tar.gz
[root@bigdata001 opt]#
[root@bigdata001 opt]# cd presto-server-0.272
[root@bigdata001 presto-server-0.272]#
[root@bigdata001 presto-server-0.272]# mkdir etc
[root@bigdata001 presto-server-0.272]#
[root@bigdata001 presto-server-0.272]# cd etc/
[root@bigdata001 etc]#
3. 配置文件
3.1 服务器配置etc/config.properties
coordinator的配置如下:
[root@bigdata001 etc]#
[root@bigdata001 etc]# cat config.properties
# 该节点是否作为coordinator
coordinator=true
# coordinator是否同时作为worker节点
node-scheduler.include-coordinator=false
# http连接端口
http-server.http.port=8080
# 所有节点查询可以使用的最大内存和
query.max-memory=3GB
# 单个节点查询可以使用的最大用户内存
query.max-memory-per-node=512MB
# 单个节点查询可以使用的最大用户内存 + 系统内存。系统内存用于readers、writers和network buffers
query.max-total-memory-per-node=1GB
# 是否让服务器作为discovery server
discovery-server.enabled=true
# 服务发现的地址
discovery.uri=http://bigdata001:8080
[root@bigdata001 etc]#
worker的配置如下,所以worker的配置需要一模一样
[root@bigdata002 etc]#
[root@bigdata002 etc]# cat config.properties
coordinator=false
http-server.http.port=8077
query.max-memory=1GB
query.max-memory-per-node=256MB
query.max-total-memory-per-node=512MB
discovery.uri=http://bigdata001:8077
[root@bigdata002 etc]#
3.2 节点配置etc/node.properties
每个节点的node.id参数必须不一样
[root@bigdata001 etc]#
[root@bigdata001 etc]# cat node.properties
# 集群所有节点环境名称必须一样
node.environment=presto_cluster
# UUID, 36个16进制数字, 每个节点的都不一样, 默认随机生成, 设置固定值在集群升级时可以保持和原来的一致
node.id=a49c04c9-6642-11ec-acff-30d042079a38
# 日志文件和数据文件储存目录
node.data-dir=/opt/presto-server-0.272/var
[root@bigdata001 etc]#
3.3 JVM配置etc/jvm.config
每个节点根据实际情况进行配置
[root@bigdata001 etc]#
[root@bigdata001 etc]# cat jvm.config
-server
-Xmx1G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-Djdk.nio.maxCachedBufferSize=2000000
-Djdk.attach.allowAttachSelf=true
[root@bigdata001 etc]#
OutOfMemoryError会使JVM进入不一致状态,所以需要进行堆转储(heap dump)并强制退出,以便调试
3.4 日志配置etc/logging.properties
每个节点根据实际情况进行配置
[root@bigdata001 etc]#
[root@bigdata001 etc]# cat logging.properties
# 设置io.presto包的所有类(包括嵌套包的类, 如io.presto.spi.connector)的日志输出级别
io.presto=INFO
# 参数还可以设置为: DEBUG、ERROR
io.presto.plugin.mysql=WARN
[root@bigdata001 etc]#
4. 启动
启动顺序为先启动coordinator,再启动worker
[root@bigdata001 presto-server-0.272]# bin/launcher start
Started as 25730
[root@bigdata001 presto-server-0.272]#
[root@bigdata001 presto-server-0.272]# cat var/var/log/server.log | grep 'SERVER STARTED'
2022-04-18T11:43:59.664+0800 INFO main com.facebook.presto.server.PrestoServer ======== SERVER STARTED ========
[root@bigdata001 presto-server-0.272]#
[root@bigdata001 presto-server-0.272]# bin/launcher status
Running as 25730
[root@bigdata001 presto-server-0.272]#
使用bin/launcher run
让进程前台运行,日志直接输出在控制台
5. 关闭
[root@bigdata001 presto-server-0.272]# bin/launcher stop
Stopped 25730
[root@bigdata001 presto-server-0.272]#
也可以用bin/launcher kill
杀掉进程
6. 查看Web UI
打开http://bigdata001:8080,显示如下: