查询网关 Trino 439

部署运行你感兴趣的模型镜像

安装配置

安装Python

sudo apt update
sudo apt install -y python3
sudo ln -sf /usr/bin/python3 /usr/bin/python

安装 JDK 21

# 切换到用户目录
cd ~
# 上载文件
# 解压
tar -xzf jdk-21_linux-x64_bin.tar.gz 
# 移动
mv jdk-21.0.9/ /opt/module/

# 最终JDK目录
/opt/module/jdk-21.0.9

安装 Trino 439

下载文件 trino-server-439.tar

# 切换到用户目录
cd ~
# 解压
tar -xzf trino-server-439.tar.gz
# 移动
mv trino-server-439 /opt/module/

配置环境变量

sudo vim /etc/profile.d/myprofile.sh
#设置 Trino 环境变量
export TRINO_HOME=/opt/module/trino-server-439
export PATH=$TRINO_HOME/bin:$PATH
 
# 配置生效
source /etc/profile

创建目录

# 创建配置目录
mkdir -p $TRINO_HOME/etc/

 配置 config.properties

# 配置 config.properties(单机 Coordinator + Worker)
cat > $TRINO_HOME/etc/config.properties <<EOF
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8091
query.max-memory=4GB
query.max-memory-per-node=2GB
discovery.uri=http://localhost:8091
node.environment=production
EOF

配置 node.properties

# 配置 node.properties
cat > $TRINO_HOME/etc/node.properties <<EOF
# 单机可固定,多节点必须唯一
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/opt/data/trino/trino-data
EOF

配置 jvm.config

# 配置 jvm.config
cat >$TRINO_HOME/etc/jvm.config <<EOF
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-Djdk.attach.allowAttachSelf=true
EOF

配置 launcher.properties

# 只需创建一个文件(1 行)
cat >$TRINO_HOME/etc/launcher.properties <<EOF
java-home=/opt/module/jdk-21.0.9
EOF

安装客户端

将trino-cli-439-executable.jar 上载到 /opt/module/trino-server-439/bin

mv trino-cli-439-executable.jar trino
chmod +x trino

启停

# 前台运行
JAVA_HOME=/opt/module/jdk-21.0.9 \
PATH=/opt/module/jdk-21.0.9/bin:$PATH \
$TRINO_HOME/bin/launcher run

# 后台运行
JAVA_HOME=/opt/module/jdk-21.0.9 \
PATH=/opt/module/jdk-21.0.9/bin:$PATH \
$TRINO_HOME/bin/launcher start

脚本

vim /opt/script/xtrino

#!/bin/bash
# Trino 生产启停脚本 (Trino 439)
# 支持: start | stop | status | restart

set -e

# ================== 配置区 ==================
TRINO_HOME="/opt/module/trino-server-439"
JAVA_HOME="/opt/module/jdk-21.0.9"
LOG_FILE="$TRINO_HOME/var/log/launcher.log"
PID_FILE="$TRINO_HOME/var/run/launcher.pid"

# 确保目录存在
mkdir -p "$TRINO_HOME/var/run" "$TRINO_HOME/var/log"

# 设置 PATH
export JAVA_HOME
export PATH="$JAVA_HOME/bin:$PATH"
# ===========================================

LAUNCHER="$TRINO_HOME/bin/launcher"

log() {
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

status() {
    if [ -f "$PID_FILE" ]; then
        PID=$(cat "$PID_FILE")
        if kill -0 "$PID" 2>/dev/null; then
            echo "Trino is running (PID: $PID)"
            return 0
        else
            echo "Trino is not running (stale PID file found)"
            rm -f "$PID_FILE"
            return 1
        fi
    else
        echo "Trino is not running"
        return 1
    fi
}

start() {
    if status >/dev/null 2>&1; then
        log "Start failed: Trino is already running"
        exit 1
    fi

    log "Starting Trino via nohup..."
    cd "$TRINO_HOME"

    export JAVA_HOME="/opt/module/jdk-21.0.9"
    export PATH="$JAVA_HOME/bin:$PATH"

    # 使用 nohup 后台启动,并记录 PID
    nohup "$LAUNCHER" run > var/log/server.log 2>&1 &
    echo $! > "$PID_FILE"

    sleep 3

    if kill -0 $(cat "$PID_FILE") 2>/dev/null; then
        log "Trino started successfully (PID: $(cat $PID_FILE))"
        return 0
    else
        log "ERROR: Trino process died immediately"
        rm -f "$PID_FILE"
        exit 1
    fi
}

stop() {
    if ! status >/dev/null 2>&1; then
        log "Stop skipped: Trino is not running"
        exit 0
    fi

    log "Stopping Trino..."
    "$LAUNCHER" stop
    sleep 5

    if status >/dev/null 2>&1; then
        log "WARNING: Trino did not stop gracefully, killing process..."
        kill -9 "$(cat "$PID_FILE")" 2>/dev/null || true
        rm -f "$PID_FILE"
    fi

    log "Trino stopped"
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 2
        start
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac
# 修改脚本权限
sudo chmod 777 /opt/script/xtrino
# 添加一个链接
sudo ln -s -f /opt/script/xtrino /bin/xtrino

使用: xtrino start | stop | status | restart

验证服务

trino客户端

$TRINO_HOME/bin/trino --server http://mydoris:8091

curl

curl -s "http://mydoris:8091/v1/info" | jq .

Web UI

访问 Web UI: http://mydoris:8091

配置 Gravitino Catalog

下载Trino connector:gravitino-trino-connector-1.0.1.tar

cd $TRINO_HOME/plugin
# 上载插件  gravitino-trino-connector-1.0.1.tar.gz
tar -xzf gravitino-trino-connector-1.0.1.tar.gz
mv gravitino-trino-connector-1.0.1 gravitino

创建 Trino Catalog 配置

mkdir -p $TRINO_HOME/etc/catalog

cat > $TRINO_HOME/etc/catalog/gravitino.properties <<EOF
connector.name=gravitino
gravitino.uri=http://mydoris:8090
gravitino.metalake=MyMetalake
EOF

启用 Trino 的 Dynamic Catalog Management

vim $TRINO_HOME/etc/config.properties

# 增加以下内容
catalog.management=dynamic

完整内容如下:

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8091
query.max-memory=4GB
query.max-memory-per-node=2GB
discovery.uri=http://localhost:8091
node.environment=production
# 启用动态 catalog 管理(必须)
catalog.management=dynamic

停止:xtrino stop

使用前台方式启动(便于错误分析)

# 前台运行
JAVA_HOME=/opt/module/jdk-21.0.9 \
PATH=/opt/module/jdk-21.0.9/bin:$PATH \
$TRINO_HOME/bin/launcher run

使用client连接测试

$TRINO_HOME/bin/trino --server http://mydoris:8091

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值