Trino 安装与查询示例指南

2025年4月11日 作者 unix2go

本指南将帮助你安装Trino并运行一个示范查询。我们将使用单节点部署方式,适合测试和学习。

1. 系统要求

  • Java 17或更高版本
  • Linux/macOS/Windows操作系统
  • 至少4GB内存

2. 安装Java

确保系统已安装Java:

# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk

# CentOS/RHEL
sudo yum install java-17-openjdk

# macOS (使用Homebrew)
brew install openjdk@17

# 验证Java安装
java -version

3. 下载并解压Trino服务器

# 创建安装目录
mkdir -p ~/trino
cd ~/trino

# 下载最新版Trino
wget https://repo1.maven.org/maven2/io/trino/trino-server/420/trino-server-420.tar.gz

# 解压文件
tar -xzf trino-server-420.tar.gz

4. 配置Trino

创建必要的配置目录和文件:

mkdir -p ~/trino/trino-server-420/etc
mkdir -p ~/trino/trino-server-420/etc/catalog

创建 etc/node.properties

cat > ~/trino/trino-server-420/etc/node.properties << EOF
node.environment=demo
node.id=demo-node
node.data-dir=/tmp/trino-data
EOF

创建 etc/jvm.config

cat > ~/trino/trino-server-420/etc/jvm.config << EOF
-server
-Xmx4G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
EOF

创建 etc/config.properties

cat > ~/trino/trino-server-420/etc/config.properties << EOF
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=2GB
query.max-memory-per-node=1GB
discovery.uri=http://localhost:8080
EOF

创建 etc/catalog/tpch.properties

这将添加TPCH连接器,它是一个内置的测试数据源:

cat > ~/trino/trino-server-420/etc/catalog/tpch.properties << EOF
connector.name=tpch
EOF

5. 启动Trino服务器

cd ~/trino/trino-server-420
bin/launcher run

服务器启动后,你应该能在日志中看到类似”SERVER STARTED”的消息。

6. 下载CLI客户端

在新的终端窗口中:

wget https://repo1.maven.org/maven2/io/trino/trino-cli/420/trino-cli-420-executable.jar
mv trino-cli-420-executable.jar trino
chmod +x trino

7. 运行示例查询

使用CLI连接并执行查询:

./trino --server localhost:8080 --catalog tpch --schema sf1

连接后,你可以运行以下示例查询:

-- 查看可用表
SHOW TABLES;

-- 简单查询
SELECT * FROM customer LIMIT 5;

-- 聚合查询
SELECT 
    c_nationkey, 
    COUNT(*) as customer_count, 
    SUM(c_acctbal) as total_balance
FROM 
    customer 
GROUP BY 
    c_nationkey 
ORDER BY 
    customer_count DESC 
LIMIT 10;

-- 多表联合查询
SELECT 
    n.n_name as Nation, 
    COUNT(c.c_custkey) as Customers
FROM 
    customer c 
JOIN 
    nation n ON c.c_nationkey = n.n_nationkey 
GROUP BY 
    n.n_name 
ORDER BY 
    Customers DESC;

8. 停止Trino服务器

在服务器终端按 Ctrl+C 或在新终端中使用:

cd ~/trino/trino-server-420
bin/launcher stop

进阶配置

实际生产环境中,你可能需要:

  1. 配置更多连接器(MySQL、PostgreSQL、Hive等)
  2. 设置身份验证与授权
  3. 配置多节点集群
  4. 调整内存和并发设置

如需更多配置选项,请参考Trino官方文档

这个单节点设置让你可以快速体验Trino的功能,而无需复杂的Hadoop环境。