现在本地使用idea工具对trino源码进行打包编译,并对trino服务信息进行压缩用于上传到linux服务器,如下所示:
编译打包过程中遇到的问题:
对core下的trino-server-rpm模块进行mavn install时候出现某jar:客户端没有所需的特权 ,解决方式是将idea以管理员的身份进行运行即可解决该问题。
节点 | 是否为coordinator |
---|---|
node1 | true |
node2 | false |
node3 | false |
将trino服务压缩包分别上传的node1、node2和node3节点,使用unzip对压缩包进行解压并在解压后的目录下创建etc目录,如下所示:
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
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
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客户端jar包上传到服务器或者复制到本地某个目录下
该jar包的启动命令如下:
其中host、和port和coordiantor节点的配置保持一致
java -jar trino-cli-435-executable.jar --server http://${host}:${port}
本地trino客户端测试如下: