Dinky项目Docker部署完全指南

Dinky项目Docker部署完全指南

【免费下载链接】dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. 【免费下载链接】dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

前言

Dinky作为一款开源的实时计算平台,提供了强大的Flink作业开发和管理能力。本文将详细介绍如何通过Docker快速部署Dinky项目,涵盖多种部署场景和配置方式,帮助开发者快速搭建开发测试环境。

部署方式概览

Dinky提供了三种主要的Docker部署方式:

  1. Standalone模式:使用内置H2数据库快速启动
  2. 外部数据库模式:连接已有的MySQL或PostgreSQL数据库
  3. docker-compose模式:一键部署完整环境(包含Flink集群)

环境准备

在开始部署前,请确保满足以下条件:

  • Docker 1.13.1或更高版本
  • Docker Compose 1.28.0或更高版本(如需使用docker-compose部署)
  • 至少4GB可用内存(推荐8GB以上以获得更好体验)

Standalone模式部署

使用H2数据库快速启动

docker run --restart=always -p 8888:8888 --name dinky dinkydocker/dinky-standalone-server:1.1.0-flink1.17

特点

  • 最简单快捷的部署方式
  • 内置H2数据库,无需额外配置
  • 适合快速体验和测试环境
  • 数据不会持久化,容器删除后数据会丢失

使用外部MySQL数据库

docker run --restart=always -p 8888:8888 \
  --name dinky \
  -e DB_ACTIVE=mysql \
  -e MYSQL_ADDR=127.0.0.1:3306 \ 
  -e MYSQL_DATABASE=dinky \ 
  -e MYSQL_USERNAME=dinky \
  -e MYSQL_PASSWORD=dinky \
  -v /opt/lib:/opt/dinky/customJar/ \ 
  dinkydocker/dinky-standalone-server:1.1.0-flink1.17

注意事项

  1. 由于MySQL与Apache 2.0协议不兼容,Dinky默认不提供MySQL驱动
  2. 需要手动提供MySQL驱动jar包并挂载到/opt/dinky/customJar/目录
  3. 建议使用MySQL 5.7或8.0版本

使用外部PostgreSQL数据库

docker run --restart=always -p 8888:8888 \
  --name dinky \
  -e DB_ACTIVE=pgsql \
  -e POSTGRES_ADDR=127.0.0.1:5432 \ 
  -e POSTGRES_DATABASE=dinky \ 
  -e POSTGRES_USERNAME=dinky \
  -e POSTGRES_PASSWORD=dinky \
  -v /opt/lib:/opt/dinky/customJar/ \ 
  dinkydocker/dinky-standalone-server:1.1.0-flink1.17

特点

  • 适合生产环境使用
  • 数据持久化,可靠性高
  • 支持PostgreSQL 9.6及以上版本

docker-compose模式部署

docker-compose方式可以一键部署完整的Dinky环境,包括Flink集群,适合需要完整功能体验的场景。

部署步骤

  1. 获取部署文件
cd deploy/docker/
  1. 修改.env配置文件(可选)
# 定义Dinky版本号
DINKY_VERSION=1.0.3
# 定义Flink版本(不要写小版本号)
FLINK_VERSION=1.17

# 自定义jar包依赖本地路径(例如:mysql驱动)
CUSTOM_JAR_PATH=/opt/dinky/extends/

# 使用哪种数据库,默认h2
DB_ACTIVE=h2
# h2数据库持久化文件路径
H2_DB=./tmp/db/h2

# 时区设置
TZ=Asia/Shanghai
# 自带Flink集群配置
FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager"
  1. 启动服务
docker-compose up -d

配置说明

  • 数据库配置:支持H2、MySQL和PostgreSQL三种数据库
  • Flink版本:可根据需要修改FLINK_VERSION变量
  • 时区设置:默认为Asia/Shanghai,可根据实际情况调整
  • 自定义JAR:通过CUSTOM_JAR_PATH指定外部依赖路径

本地开发模式

对于开发者,可以使用以下命令构建并运行开发环境:

docker compose --profile standalone -f docker-compose.yml -f docker-compose.dev.yml up

如果需要前后端分离开发,可使用:

docker compose --profile ms -f docker-compose.yml -f docker-compose.dev.yml up

注意事项

  1. 对于Flink 1.15及以上版本,需要手动调整planner jar包
  2. 可通过映射/opt/dinky/customJar目录添加自定义jar包

Nginx配置指南

Dinky 1.0-1.1版本配置

这些版本使用SSE技术进行日志推流,需要配置Nginx支持:

proxy_buffering off;
proxy_cache off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;

Dinky 1.2+版本配置

新版本使用Websocket技术,需要添加以下配置:

location /api/ws/global {
    proxy_pass ${后端地址};
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

location /ws/sql-gateway/ {
    proxy_pass ${后端地址};
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

同时需要在http节点添加:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

常见问题解决

  1. MySQL连接问题:确保已正确挂载MySQL驱动jar包
  2. Websocket连接失败:检查Nginx配置是否正确
  3. Flink版本兼容性:确保Dinky版本与Flink版本匹配
  4. 时区问题:通过TZ环境变量设置正确的时区

总结

本文详细介绍了Dinky项目的多种Docker部署方式,从最简单的Standalone模式到完整的docker-compose部署,涵盖了开发和生产环境的不同需求。通过合理的配置,可以快速搭建稳定可靠的Dinky环境,为实时计算任务提供强大支持。

【免费下载链接】dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. 【免费下载链接】dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值