Presto(Trino)集群搭建和其他组件集成


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
image

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

image

分发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

(0)
上一篇 2022年6月23日
下一篇 2022年6月23日

相关推荐

发表回复

登录后才能评论