trino-435: 集群部署

发布时间:2023年12月30日

一、源码编译打包

现在本地使用idea工具对trino源码进行打包编译,并对trino服务信息进行压缩用于上传到linux服务器,如下所示:
在这里插入图片描述
编译打包过程中遇到的问题
对core下的trino-server-rpm模块进行mavn install时候出现某jar:客户端没有所需的特权 ,解决方式是将idea以管理员的身份进行运行即可解决该问题。

二、集群部署

1、集群规划
节点是否为coordinator
node1true
node2false
node3false
2、trino服务配置

将trino服务压缩包分别上传的node1、node2和node3节点,使用unzip对压缩包进行解压并在解压后的目录下创建etc目录,如下所示:
在这里插入图片描述

3、etc目录下的配置文件:
(1)node1(coordinator节点)

config.properties:
主要用于配置服务所需要的配置信息

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=${port}
discovery.uri=http://${host}:${port}
catalog.management=DYNAMIC
catalog.store=JDBC
catalog.config-db-url= jdbc:mysql://${host}:${port}/${数据库名称} #动态数据源mysql存储url
catalog.config-db-user=${用户名} #动态数据源mysql存储:用户名
catalog.config-db-password=${密码}#动态数据源mysql存储:密码
catalog.read-only=false

node.properties:
主要用于配置服务节点的元数据信息

node.environment=test
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=${path}/data

jvm.config:
用于配置服务jvm的信息

-server
-Xmx1G
-XX:InitialRAMPercentage=80
-XX:MaxRAMPercentage=80
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
-XX:+UnlockDiagnosticVMOptions
-XX:+UseAESCTRIntrinsics

log.properties:
用于配置服务日志信息

io.trino=INFO
(2)node2(worker节点)

config.properties:
与coordinator的区别在于coordinator=false,取消node-scheduler.include-coordinator配置,其他配置保持一致

coordinator=false
http-server.http.port=${port}
discovery.uri=http://${host}:${port}
catalog.management=DYNAMIC
catalog.store=JDBC
catalog.config-db-url= jdbc:mysql://${host}:${port}/${数据库名称} #动态数据源mysql存储url
catalog.config-db-user=${用户名} #动态数据源mysql存储:用户名
catalog.config-db-password=${密码}#动态数据源mysql存储:密码
catalog.read-only=false

node.properties:
与coordinator的区别在于node.id配置要保持唯一性

node.environment=test
node.id=ffffffff-ffff-ffff-ffff-fffffffffffe
node.data-dir=${path}/data

jvm.config:
与coordinator配置属性保持一致

-server
-Xmx2G
-XX:InitialRAMPercentage=80
-XX:MaxRAMPercentage=80
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
-XX:+UnlockDiagnosticVMOptions
-XX:+UseAESCTRIntrinsics

log.properties:
与coordinator配置属性保持一致

io.trino=INFO
(3)node3(worker节点)

config.properties:
与coordinator的区别在于coordinator=false,取消node-scheduler.include-coordinator配置,其他配置保持一致

coordinator=false
http-server.http.port=${port}
discovery.uri=http://${host}:${port}
catalog.management=DYNAMIC
catalog.store=JDBC
catalog.config-db-url= jdbc:mysql://${host}:${port}/${数据库名称} #动态数据源mysql存储url
catalog.config-db-user=${用户名} #动态数据源mysql存储:用户名
catalog.config-db-password=${密码}#动态数据源mysql存储:密码
catalog.read-only=false

node.properties:
与coordinator的区别在于node.id配置要保持唯一性

node.environment=test
node.id=ffffffff-ffff-ffff-ffff-fffffffffffe
node.data-dir=${path}/data

jvm.config:
与coordinator配置属性保持一致

-server
-Xmx2G
-XX:InitialRAMPercentage=80
-XX:MaxRAMPercentage=80
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
-XX:+UnlockDiagnosticVMOptions
-XX:+UseAESCTRIntrinsics

log.properties:
与coordinator配置属性保持一致

io.trino=INFO

依次启动trino服务node1(coordinator节点)、node2(worker节点)、node3(worker几点)。需要注意的是要先将coordinator节点启动成功再去启动worker节点。服务启动成功的ui界面如下:
在这里插入图片描述

三、trino客户端

trino源码编译打包后,将下图红框内trino客户端jar包上传到服务器或者复制到本地某个目录下
在这里插入图片描述
该jar包的启动命令如下:
其中host、和port和coordiantor节点的配置保持一致

java -jar trino-cli-435-executable.jar --server http://${host}:${port}

本地trino客户端测试如下:
在这里插入图片描述

文章来源:https://blog.csdn.net/yuming226/article/details/135309461
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。