专业的编程技术博客社区

网站首页 > 博客文章 正文

Apache Gravitino 之 Trino connector 初体验

baijin 2025-07-17 17:08:47 博客文章 9 ℃ 0 评论

导读

Trino 可以使用 Apache Gravitino 提供的 Gravitino Trino Connector 来实现动态管理 Catalog,同时可以与其他组件实现统一的 metadata 管理。

Docker 部署 Gravitino

// 镜像拉取与启动
docker pull apache/gravitino:0.9.0-incubating
docker run -d --name gravitino -i -p 8090:8090 apache/gravitino:0.9.0-incubating

// JDBC-Driver 需要独自下载并复制到 Gravitino 容器对应的目录中
docker cp mysql-connector-java-8.0.11.jar gravitino:/root/gravitino/catalogs/jdbc-mysql/libs
// 重启
docker restart

访问 WebUi,http://<your ip>:8090/

Docker 部署 MySQL

根据官方文档建议,我们选择 MySQL 8.0 版本

// 镜像拉取与启动
docker pull mysql:8.0.33
docker run -d   --name mysql8   -p 3306:3306   -e MYSQL_ROOT_PASSWORD=<your_password>   mysql:8.0.33

// 登陆
docker exec -it mysql8 mysql -uroot -p

建测试库表

-- 查看现有数据库
SHOW DATABASES;

-- 创建新数据库
CREATE DATABASE testdb;

-- 使用数据库
USE testdb;

-- 创建表示例
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入数据
INSERT INTO users (name, email) VALUES ('test', 'test@example.com');

-- 查询数据
SELECT * FROM users;

网络连接与 Catalog 创建

由于笔者测试时 Gravitino 和 MySQL容器在同一台服务器上,因此使用 Docker Network 进行连接。

docker network create gravitino-mysql
docker network connect gravitino-mysql gravitino
docker network connect gravitino-mysql  mysql8

接下来创建一个 Catalog,连接建立后 Gravitino 便可以获取到 schema 及 table

Docker 部署 Trino

根据官方建议我们选择 439 版本

docker run --name trino -d -p 8080:8080 trinodb/trino:439
docker network connect gravitino-mysql  trino

Trino 安装 Gravitino Trino connector 插件

// 下载
wget https://github.com/apache/gravitino/releases/gavitino-trino-connector-0.9.0-incubating.tar.gz
// 解压
tar -zxvf gavitino-trino-connector-0.9.0-incubating.tar.gz
// 将目录复制到Trino容器的插件目录
docker cp gravitino-trino-connector-0.9.0-incubating gravitino:/lib/trino/plugin

Trino 开启动态 Catalog 配置Gravitino 是通过生成 CREATE CATAGLOG语句,并在当前的Trino 服务器上执行该语句,向Trino注册 Catalog。

// 进入 trino 容器
docker exec -it trino bash
// 开启动态 catalog 配置
echo "catalog.management=dynamic" >> /etc/trino/config.properties

Trino 添加 gravitino catalog

// 编写 properties 文件
vim gravitino.properties
// 加入以下内容
connector.name=gravitino
gravitino.uri=http://gravitino:8090
gravitino.metalake=test

// 复制到 Trino 容器中
docker cp gravitino.properties trino:/etc/trino/catalog

重启 Trino 生效,并测试

docker restart trino
// 测试
docker exec -it trino trino
trino> show catalogs
// 如果有问题则排查日志
docker log --tail 300 trino

参考文档

https://gravitino.apache.org/docs/0.9.0-incubating/trino-connector/installation

https://gravitino.apache.org/docs/0.9.0-incubating/how-to-install

https://gravitino.apache.org/docs/0.9.0-incubating/jdbc-mysql-catalog

https://trino.io/docs/current/installation/containers.html

https://trino.io/docs/current/admin/properties-catalog.html

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表