• 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版本集成的。

    组件名称版本号说明
    Hadoop3.1.3
    Hbase2.4.6
    Hive3.1.2
    Iceberg0.13.2
    Flink1.12.7打算升级到1.14
    Phoenix5.1.2
    Spark2.4.8打算升级到3.2.1

    1.1.3 组件集成说明

    • Phoenix集成Hbase
    • Iceberg集成Hive
    • Trino集成Phoenix
    • Trion集成Hive
    • Trino集成Kafka

    1.2 节点规划

    hostname节点用途
    hadoop200coordinator
    hadoop201Worker
    hadoop202Worker
    hadoop203Worker

    1.3 软件包安装(3个节点)

    1.3.1 安装jdk11

    由于集群环境中已经存在低版本jdk1.8,为了避免版本更新对已有项目的影响,所以在各台服务器新增用户trino,在新的用户中安装jdk11,并且在该新用户的环境变量配置jdk11。

    • 新建用户trino,密码也是trino
    useradd trino
    passwd trino
    
    • 1
    • 2

    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
    
    • 1
    • 2
    • 3
    • 4

    修改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
    
    • 1
    • 2
    • 3
    • 4

    切换到trino用户,查看jdk版本

    su trino
    source ~/.bash_profile
    java -version
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    分发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
    • 2
    • 3

    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 
    
    • 1
    • 2

    创建指定目录

    # 切换trino用户
    su trino
    
    # 创建日志存储目录
    mkdir /home/trino/trino-server-386/data/
    
    # 创建配置文件存放目录
    mkdir /home/trino/trino-server-386/etc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    分发到其他节点

    # 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
    • 2
    • 3
    • 4
    • 5
    • 6

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 配置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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 配置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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 配置 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 配置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/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    配置完成后分发到其他2个节点。
    注意:在hadoop集群是HA的模式下,需要用hive.config.resources指定core-site.xml和hdfs-site.xml。否则会报ns1找不到的问题。

    2.1.2 trino查询iceberg测试

    2.2 集成Hive

    2.3 集成Kafka

    2.4 集成Iceberg

    2.5 集成MySQL

    3.配置命令行模式

    3.1 下载安装

    下载地址:https://repo1.maven.org/maven2/io/trino/trino-cli/386/trino-cli-386-executable.jar
    新建文件夹trino-client,将包移动到该目录,并重命名为trino, 这里不需要带jar后缀

    编写启动脚本client.sh

    ./trino --server cdh192-57:8089
    
    • 1

    在这里插入图片描述

    3.2 命令行操作

    show catalogs; # 查询catalog
    
    • 1

    在这里插入图片描述

    show schemas from hive;
    
    • 1

    在这里插入图片描述

    show schemas from kafka;
    
    • 1

    在这里插入图片描述

    use kafka.default;
    show tables;
    
    • 1
    • 2

    在这里插入图片描述

    select * from "tablename" limit 10;
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    提升预算管控精度,助力保险资管协会财务管理数字化转型
    312.戳气球
    ApplicationContext种类
    基于微信小程序的桥牌计分系统设计与实现-计算机毕业设计源码+LW文档
    Spark Local模式的基本原理及部署
    TCP优化二:TCP 四次挥手性能优化
    React-hook-form-mui(五):包含内嵌表单元素的表单
    携职教育:初级会计考试明明不难,为什么通过率这么低?
    视觉特效,图片转成漫画功能
    liunx下定时备份mysql数据
  • 原文地址:https://blog.csdn.net/wang6733284/article/details/125431178