trino-435: 集群部署

一、源码编译打包

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

二、集群部署

1、集群规划
节点 是否为coordinator
node1 true
node2 false
node3 false
2、trino服务配置

将trino服务压缩包分别上传的node1、node2和node3节点,使用unzip对压缩包进行解压并在解压后的目录下创建etc目录,如下所示:
trino-435: 集群部署_第2张图片

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-435: 集群部署_第3张图片

三、trino客户端

trino源码编译打包后,将下图红框内trino客户端jar包上传到服务器或者复制到本地某个目录下
trino-435: 集群部署_第4张图片
该jar包的启动命令如下:
其中host、和port和coordiantor节点的配置保持一致

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

本地trino客户端测试如下:
trino-435: 集群部署_第5张图片

你可能感兴趣的:(【trino】,大数据)