Dinky项目常规部署指南:从数据库初始化到服务启动
前言
Dinky是一款基于Flink的实时计算平台,提供了一站式的Flink SQL开发与运维能力。本文将详细介绍Dinky项目的常规部署流程,帮助用户快速搭建Dinky服务环境。
数据库准备
Dinky使用MySQL作为后端存储数据库,要求MySQL版本5.7及以上。以下是数据库初始化步骤:
1. 创建数据库和用户
根据MySQL版本不同,创建方式略有差异:
MySQL 5.x版本:
# 创建数据库
CREATE DATABASE dinky;
# 创建用户并授权
GRANT ALL PRIVILEGES ON dinky.* TO 'dinky'@'%' IDENTIFIED BY 'dinky' WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL 8.x版本:
# 创建数据库
CREATE DATABASE dinky;
# 创建用户
CREATE USER 'dinky'@'%' IDENTIFIED WITH mysql_native_password BY 'dinky';
# 授权
GRANT ALL PRIVILEGES ON dinky.* TO 'dinky'@'%';
FLUSH PRIVILEGES;
2. 执行初始化脚本
首次部署时,需要执行Dinky提供的SQL初始化脚本:
# 使用dinky用户登录
mysql -h 主机地址 -udinky -pdinky
# 执行初始化脚本
USE dinky;
SOURCE /opt/dinky/sql/dinky-mysql.sql;
Dinky服务部署
1. 解压安装包
Dinky从1.0.0版本开始采用新的打包方式,每个Flink版本对应单独的二进制包:
# 解压安装包
tar -zxf dinky-release-${flink.version}-${dinky.version}.tar.gz
# 重命名并进入目录
mv dinky-release-${flink.version}-${dinky.version} dinky
cd dinky
2. 配置文件修改
Dinky的主要配置文件位于config/目录下:
- 修改主配置文件
application.yml:
spring:
profiles:
active: ${DB_ACTIVE:mysql} # 支持mysql、pgsql、h2三种数据库
- 修改MySQL连接配置
application-mysql.yml:
spring:
datasource:
url: jdbc:mysql://${MYSQL_ADDR:127.0.0.1:3306}/${MYSQL_DATABASE:dinky}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
username: ${MYSQL_USERNAME:dinky}
password: ${MYSQL_PASSWORD:dinky}
driver-class-name: com.mysql.cj.jdbc.Driver
3. 依赖管理
Dinky需要Flink相关依赖支持,这些依赖应放置在extends/flink${FLINK_VERSION}目录下。典型依赖包括:
- flink-dist-${version}.jar
- flink-table-api-java-uber-${version}.jar
- flink-table-planner_2.12-${version}.jar
- flink-connector-jdbc-${version}.jar
- flink-shaded-hadoop-uber-${version}.jar
特别注意:
- 需要将
flink-table-planner-loader-${version}.jar替换为不带loader的版本 - 必须添加Hadoop相关依赖,即使不使用Hadoop功能
- MySQL/PostgreSQL驱动需要手动添加到
lib或extends目录
4. 目录结构说明
完整的Dinky部署目录结构应包含以下关键内容:
├── auto.sh # 启停脚本
├── config/ # 配置文件目录
├── extends/ # 扩展依赖目录
│ └── flink1.16/ # Flink版本特定依赖
├── jar/ # 应用jar包
├── lib/ # 核心依赖
└── sql/ # SQL脚本
服务启停管理
Dinky提供了便捷的启停脚本:
# 启动服务
sh auto.sh start [flink版本号] # 如: sh auto.sh start 1.16
# 停止服务
sh auto.sh stop
# 重启服务
sh auto.sh restart
# 查看状态
sh auto.sh status
# 前台启动(调试用)
sh auto.sh startOnPending
访问服务
服务启动成功后,可通过以下方式访问:
- 默认地址:http://127.0.0.1:8888
- 默认账号:admin/dinky123!@#
常见问题处理
- 依赖冲突:特别是Hadoop相关依赖中的javax.servlet冲突,需要手动解决
- 版本适配:确保Dinky版本与Flink版本严格匹配
- 权限问题:MySQL用户需要有足够的权限
- 监控功能:必须配置Hadoop相关依赖才能正常使用监控功能
结语
通过以上步骤,您应该已经成功部署了Dinky服务。在实际生产环境中,建议根据具体需求调整JVM参数、数据库连接池配置等优化项。Dinky作为Flink SQL开发平台,能够显著提升实时计算任务的开发效率,值得深入探索和使用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



