1. Trino集群安装
1.1 说明
1.1.1 安装说明
之前安装过Presto版本,但是由于需要连接Phoenix+hbase,Phoenix版本是5.1.2,而Presto已有的版本只支持Phoenix4.16.1,对应的hbase的1.X版本,所以切换到Trino版本。
需要注意的是trino最低支持jdk11版本,而大部分大数据组件依赖的jdk都是1.8,所以以下的安装是基于jdk1.8和jdk11的双版本同时存在的,通过不同的用户使用不同的环境变量来保持双版本不冲突。
1.1.2 版本说明
以下是各个基础组件的相关版本供参考,组件全部使用的是Apache官方的组件,并不是CDH版本集成的。
组件名称 | 版本号 | 说明 |
---|---|---|
Hadoop | 3.1.3 | |
Hbase | 2.4.6 | |
Hive | 3.1.2 | |
Iceberg | 0.13.2 | |
Flink | 1.12.7 | 打算升级到1.14 |
Phoenix | 5.1.2 | |
Spark | 2.4.8 | 打算升级到3.2.1 |
1.1.3 组件集成说明
- Phoenix集成Hbase
- Iceberg集成Hive
- Trino集成Phoenix
- Trion集成Hive
- Trino集成Kafka
1.2 节点规划
hostname | 节点用途 |
---|---|
hadoop200 | coordinator |
hadoop201 | Worker |
hadoop202 | Worker |
hadoop203 | Worker |
1.3 软件包安装(3个节点)
1.3.1 安装jdk11
由于集群环境中已经存在低版本jdk1.8,为了避免版本更新对已有项目的影响,所以在各台服务器新增用户trino,在新的用户中安装jdk11,并且在该新用户的环境变量配置jdk11。
- 新建用户trino,密码也是trino
useradd trino
passwd trino
trino官方推荐的jdk11版本是Azul Zulu
wget https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz
tar -zxvf zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz -C /home/trino/
cd /home/trino
mv zulu11.56.19-ca-jdk11.0.15-linux_x64 jdk11
chown -R trino:trino jdk11
修改trino用户的配置文件,增加jdk11的环境变量
vim /home/trino/.bash_profile
export JAVA_HOME=/home/trino/jdk11
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
切换到trino用户,查看jdk版本
su trino
source ~/.bash_profile
java -version
分发jdk11到其他节点:
scp -r /home/trino/jdk11 trino@hadoop201:/home/trino/
scp -r /home/trino/jdk11 trino@hadoop202:/home/trino/
scp -r /home/trino/jdk11 trino@hadoop203:/home/trino/
1.3.2 安装trino
下载地址:wget https://repo1.maven.org/maven2/io/trino/trino-server/386/trino-server-386.tar.gz
tar -xzvf trino-server-386.tar.gz -C /home/trino/
chown -R trino:trino /home/trino/trino-server-386
创建指定目录
# 切换trino用户
su trino
# 创建日志存储目录
mkdir /home/trino/trino-server-386/data/
# 创建配置文件存放目录
mkdir /home/trino/trino-server-386/etc
分发到其他节点
# trino用户下
su trino
cd /home/trino/
scp -r /home/trino/trino-server-386 trino@hadoop201:/home/trino/
scp -r /home/trino/trino-server-386 trino@hadoop202:/home/trino/
scp -r /home/trino/trino-server-386 trino@hadoop203:/home/trino/
1.4 coordinator配置
在hadoop200上配置
- 配置 config.properties
# 编辑文件
vim /home/trino/trino-server-386/etc/config.properties
# 新增以下内容
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8089
query.max-memory=3GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://hadoop200:8089
- 配置jvm.config
# 编辑文件
vim /home/trino/trino-server-386/etc/jvm.config
# 新增以下内容
-server
-Xmx2G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
- 配置node.properties
# 编辑文件
vim /home/trino/trino-server-386/etc/node.properties
# 新增以下内容
node.environment=production
node.id=trino-hadoop200
node.data-dir=/home/trino/trino-server-386/data/
1.5 work配置
在hadoop201、hadoop202、hadoop203上配置
- 配置config.properties
# 编辑文件
vim /home/trino/trino-server-386/etc/config.properties
# 新增以下内容
coordinator=false
node-scheduler.include-coordinator=true
http-server.http.port=8090
query.max-memory=3GB
query.max-memory-per-node=1GB
discovery.uri=http://hadoop200:8090
- 配置 jvm.config
# 编辑文件
vim /home/trino/trino-server-386/etc/jvm.config
# 新增以下内容
-server
-Xmx32G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-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
-Dpresto-temporarily-allow-java8=true
- 配置node.properties
# 编辑文件
vim /home/trino/trino-server-386/etc/node.properties
# 新增以下内容
node.environment=production
#注意:node.id代表work节点的唯一标识,不同的节点标识不一样
# hadoop201 => trino-hadoop201
# hadoop202 => trino-hadoop202
# hadoop203 => trino-hadoop203
node.id=trino-hadoop201
node.data-dir=/home/trino/trino-server-386/data/
2. 配置连接器
2.1 集成Iceberg
2.1.1 配置iceberg(3个节点)
- 配置 catalog/iceberg.properties
# 编辑文件
vim /home/trino/trino-server-386/etc/catalog/hive.properties
# 新增以下内容
connector.name=iceberg
hive.metastore.uri=thrift://cdh192-56:9083,thrift://hadoop200:9083,thrift://hadoop201:9083
hive.config.resources=/home/trino/trino-server-386/etc/hadoop/core-site.xml,/home/trino/trino-server-386/etc/hadoop/hdfs-site.xml
配置完成后分发到其他2个节点。
注意:在hadoop集群是HA的模式下,需要用hive.config.resources指定core-site.xml和hdfs-site.xml。否则会报ns1找不到的问题。
2.1.2 trino查询iceberg测试
TODO:待补充
2.2 集成Hive
2.3 集成Kafka
2.4 集成Iceberg
2.5 集成MySQL
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/269719.html