网站首页 > 博客文章 正文
导读
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
猜你喜欢
- 2025-07-17 你没见过的分库分表原理解析和解决方案(二)
- 2025-07-17 安装MySQL(绿联nas安装mysql)
- 2025-07-17 SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
- 2025-07-17 一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!
- 2025-07-17 高效使用Java构建工具,Maven篇|云效工程师指北
- 2025-07-17 Java,screw,生成简洁好用的数据库表结构(html、doc、md)文档
- 2025-07-17 SpringBoot数据库操作的应用(springboot如何操作数据库)
- 2025-07-17 Mac Docker环境,利用Canal实现MySQL同步ES
- 2025-07-17 经常使用到开源的MySQL,今天我们就来系统地认识一下
- 2025-07-17 用 Spring AI Alibaba 开发了一款能连接 MySQL 的 MCP 服务,手把手教你
你 发表评论:
欢迎- 08-06nginx 反向代理
- 08-06跨表插入连续的日期,sheetsname函数#excel技巧
- 08-06初中生也能学的编程,不走弯路,先用后学
- 08-06find命令的“七种武器”:远不止-name和-type
- 08-06恶意代码常见的编程方式
- 08-06kali2021ping 外网不通
- 08-06因为一个函数strtok踩坑,我被老工程师无情嘲笑了
- 08-06hadoop集群搭建详细方法
- 23℃nginx 反向代理
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- #NAME? (61)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)