【Trino实战】CentOS 部署Trino 集成Hive Elasticsearch

本文档详细介绍了在64位CentOS系统上部署Trino服务端和CLI客户端的步骤,包括调整系统参数、创建用户与目录、安装JDK和Trino、配置各种连接器,并提供了各配置文件的设置说明,如Hive和Elasticsearch连接器的配置,以及Trino服务的启动和客户端查询操作。
摘要由CSDN通过智能技术生成

CentOS 部署Trino 集成Hive Elasticsearch

前提条件

  • 64位CentOS操作系统

  • 调整用户的文件描述符的大小。官网推荐以下限制,通常可以在/etc/security/limits.conf中设置:

    trino soft nofile 131072
    trino hard nofile 131072
    
  • 64位JDK17.0.3+

  • 建议在操作系统层面禁用交换空间

操作步骤

采用单个节点即是协调器又是Worker的部署方式。

部署服务端

# 新建用户组与用户
groupadd trino -g 1000;
useradd -g trino -u 1000 trino;

# 创建对应的文件夹
mkdir -p /home/trino/software
mkdir -p /opt/software/trino
mkdir -p /opt/software/trino/logs
mkdir -p /data01/trino_demo1

# 将安装包解压出来与创建软链接
tar -zxvf /opt/software_package/jdk-17_linux-x64_bin.tar.gz -C /opt/software/trino/
tar -zxvf /opt/software_package/trino-server-418.tar.gz -C /opt/software/trino/
ln -nsf /opt/software/trino/jdk-17.0.7 /home/trino/software/java
ln -nsf /opt/software/trino/trino-server-418 /home/trino/software/trino-server
ln -nsf /opt/software/trino/logs /home/trino/logs

# 配置trino用户JDK
vim /home/trino/.bashrc

export JAVA_HOME=/home/trino/software/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

source /home/trino/.bashrc

# 配置trino--文件的填充内容见下文配置说明章节
mkdir -p /opt/software/trino/trino-server-418/etc
mkdir -p /opt/software/trino/trino-server-418/etc/catalog

vim /opt/software/trino/trino-server-418/etc/node.properties
vim /opt/software/trino/trino-server-418/etc/jvm.config
vim /opt/software/trino/trino-server-418/etc/config.properties
vim /opt/software/trino/trino-server-418/etc/log.properties
vim /opt/software/trino/trino-server-418/etc/catalog/hive.properties
vim /opt/software/trino/trino-server-418/etc/catalog/elasticsearch.properties

chown -R trino:trino /home/trino;
chown -R trino:trino /opt/software/trino;
chown -R trino:trino /data01/trino_demo1;

# 启动TrinoServer
su - trino
sh software/trino-server/bin/launcher start
# 检查启动日志
less /data01/trino_demo1/var/log/launcher.log
less /data01/trino_demo1/var/log/server.log

部署Cli客户端

su - trino
# 为Cli客户端jar增加执行权限
chmod +x /opt/software/trino/trino-cli-418-executable.jar
# 创建软链接执行
ln -nsf /opt/software/trino/trino-cli-418-executable.jar /home/trino/software/trino-cli

cd /home/trino/software/
# 启动客户端 --server是coordinator的地址
./trino-cli --server http://190.168.1.1:9999

# 查询连接器目录 catalogs
show catalogs;

# 指定连接器启动
./trino-cli --server http://190.168.1.1:9999 --catalog hive
./trino-cli --server http://190.168.1.1:9999 --catalog hive --schema testdb

# 查询 catalog(hive)下的schemas
show  schemas from hive;

配置说明

配置trino服务端

在安装目录内创建一个etc目录。这里面有以下配置:

  1. node.properties:节点的环境配置

    node.environment=trino_demo1
    node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
    # 不支持多目录
    node.data-dir=/data01/trino_demo1
    

    上述属性描述如下:

    • node.environment: 环境的名称。一个集群中的所有Trino节点必须有相同的环境名称。该名称必须以小写字母、数字字符开始,并且只包含小写字母、数字或下划线(_)字符。
    • node.id: 这个Trino安装的唯一标识符。这对每个节点都必须是唯一的。这个标识符在Trino的重启或升级中应保持一致。如果在一台机器上运行多个Trino安装(即同一台机器上的多个节点),每个安装必须有一个唯一的标识符。该标识符必须以字母、数字字符开始,并且只包含字母数字、-_字符。
    • node.data-dir: 数据目录的位置(文件系统路径)。Trino在这里存储日志和其他数据。
  2. jvm.config:Java虚拟机的命令行选项,官网推荐配置:

    -DHADOOP_USER_NAME=bigdata
    -server
    -Xmx16G
    -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
    # Disable Preventive GC for performance reasons (JDK-8293861)
    -XX:-G1UsePreventiveGC
    
    • Xmx的大小建议使用占总可用内存的70%到85%的数值
    • 建议在生产集群中使用超过32GB的大内存分配。
  3. config.properties:Trino服务配置文件。

    coordinator=true
    node-scheduler.include-coordinator=true
    http-server.http.port=9999
    discovery.uri=http://190.168.1.1:9999
    

    每台Trino服务器都可以作为coordinator和worker。

    一个集群需要包括一个coordinator,将一台机器专门用于只执行协调工作,在更大的集群上提供最佳性能。并行化是通过使用许多worker来实现的。

    属性说明

    • coordinator: 允许这个Trino实例作为一个coordinator,所以要接受客户的查询并管理查询的执行。
    • node-scheduler.include-coordinator: 允许在coordinator上进行工作调度。对于较大的集群,在coordinator上处理工作会影响查询性能,因为机器的资源无法用于调度、管理和监控查询执行的关键任务。
    • http-server.http.port: 指定HTTP服务器的端口。Trino使用HTTP进行所有通信,包括内部和外部。
    • discovery.uri: Trino coordinator有一个发现服务,所有节点都用它来寻找对方。每个Trino实例在启动时向发现服务注册,并不断地心跳以保持其注册的有效性。发现服务与Trino共享HTTP服务器,因此使用相同的端口。替换example.net:8080以匹配Trinocoordinator的主机和端口。如果你在coordinator上禁用了HTTP,URI方案必须是https,而不是http
  4. log.properties:日志配置文件

    io.trino=INFO
    io.trino.server.PluginManager=DEBUG
    com.ning.http.client=WARN
    

    允许为命名的日志记录器层次设置最小日志级别。每个日志记录器都有一个名字,通常是使用该日志记录器的类的完全合格名称。记录仪有一个基于名称中的点的层次结构,就像Java包。

    这将为io.trino.serverio.trino.plugin.hive设置最小级别为INFO。默认的最小级别是 INFO。有四个级别:DEBUGINFOWARNERROR

  5. catalog:连接器目录,连接器的配置文件存放地址

Hive连接器

  • Hive连接器需要一个Hive元存储服务(HMS),或者Hive元存储的兼容实现,比如AWS Glue Data Catalog。
  • 支持Apache Hadoop HDFS 2.x和3.x。
  • 协调者和所有工作者都必须有对Hive元存储和存储系统的网络访问。
  • 使用Thrift协议访问Hive元存储。
  • 集成架设在高可用的HDFS集群的Hive时,需要拥有hdfs集群的配置文件core-site.xml,hdfs-site.xml。通过hive.config.resources属性来引用你的HDFS配置文件

hive.properties配置文件:

connector.name=hive
hive.metastore.uri=thrift://190.168.1.1:9083,thrift://190.168.1.2:9083
hive.config.resources=/home/trino/software/trino-server/etc/hadoop/core-site.xml,/home/trino/software/trino-server/etc/hadoop/hdfs-site.xml

# 可选
hive.allow-add-column=true
hive.allow-drop-column=true
hive.allow-drop-table=true
hive.allow-rename-table=true
hive.allow-comment-table=true
hive.allow-comment-column=true
hive.allow-rename-column=true

Elasticsearch连接器

  • 版本要求:(Elasticsearch 6.6.0 or later) or OpenSearch (1.1.0 or later) 。

elasticsearch.properties配置文件:

connector.name=elasticsearch
elasticsearch.host=190.168.1.1,190.168.1.2,190.168.1.3
elasticsearch.port=9200
elasticsearch.default-schema-name=default
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顧棟

若对你有帮助,望对作者鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值