一、Dinky 简介
Dinky 是一个开源的流式计算平台,基于 Apache Flink 构建,致力于提供流处理作业的开发、调试、发布、运维一站式服务。它支持 SQL 语法,方便数据开发人员快速上手。
在本文中,我们将详细介绍 Dinky 0.7.3 版本的安装步骤和简单使用。
二、Dinky 0.7.3 安装步骤
1. 安装前准备
在安装 Dinky 之前,需确保以下环境已经配置好:
1. JDK 1.8 及以上版本
2. Apache Flink(建议使用 1.13.x 以上版本)
3. MySQL 数据库
4. Maven 3.6.0+(用于构建)
确保环境变量配置正确
export JAVA_HOME=/usr/local/java/jdk1.8
export FLINK_HOME=/opt/flink
export PATH=$JAVA_HOME/bin:$PATH
2. 下载 Dinky 0.7.3
前往 [Dinky 官方 GitHub 仓库](https://github.com/DataLinkDC/dinky) 下载 0.7.3 版本的安装包。
wget https://github.com/DataLinkDC/dinky/releases/download/v0.7.3/dlink-release-0.7.3.tar.gz
3. 解压安装包
tar -zxvf dlink-release-0.7.3.tar.gz -C /opt/installs
cd /opt/installs
mc dlink-release-0.7.3 dinky
4. 配置 MySQL 数据库
Dinky 需要 MySQL 作为元数据存储。请在 MySQL 中创建一个数据库:
#创建数据库
CREATE DATABASE dinky DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#创建用户并允许远程登录
create user 'dinky'@'%' IDENTIFIED WITH mysql_native_password by 'dinky';
#授权
grant ALL PRIVILEGES ON dinky.* to 'dinky'@'%';
#刷新
flush privileges;
登录创建好的dinky用户,执行初始化sql文件
mysql -udinky -pdinky
use dinky;
source /opt/module/dinky/sql/dinky.sql
修改 `conf/application.yml` 文件中的数据库连接配置:
spring:datasource:url: jdbc:mysql://bigdata01:3306/dinkyusername: rootpassword: 123456
4. 加载依赖
加载Flink依赖
cp /opt/installs/flinklib/* /opt/installs/dinky/plugins/flink1.13
加载Hadoop依赖
Dinky 当前版本的 yarn 的 perjob 与 application 执行模式依赖 flink-shade-hadoop ,需要额外添加 flink-shade-hadoop-uber-3 包。将flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar上传到/opt/module/dinky/plugins目录下。
5.上传jar包
使用 Application 模式时,需要将flink和dinky相关的包上传到HDFS。
hdfs dfs -mkdir -p /dinky/jar/
hdfs dfs -put /opt/installs/dinky/jar/dlink-app-1.17-0.7.3-jar-with-dependencies.jar /dinky/jar
6. 启动 Dinky
执行以下命令启动 Dinky:
cd /opt/installs/dinky
sh auto.sh start 1.17
启动成功后,访问 [http://bigdata01:8888] 即可进入 Dinky 管理界面。
三、Dinky 简单使用
1. 登录 Dinky 控制台
默认登录用户名和密码:
- 用户名:admin
- 密码:admin
2. 配置 Flink 集群
进入 Flink 管理 ➞ 集群配置 页面,点击 新增集群,配置如下:
- 集群名称:flink-1.13
- 集群地址:http://bigdata01:8081
- Flink 版本:1.13
3. 创建 SQL 作业
在 作业开发 ➞ 新增作业 中,创建一个简单的 SQL 作业,如下:
CREATE TABLE source (id INT,name STRING
) WITH ('connector' = 'kafka','topic' = 'test-topic','properties.bootstrap.servers' = 'localhost:9092','format' = 'json'
);CREATE TABLE sink (id INT,name STRING
) WITH ('connector' = 'print'
);INSERT INTO sink
SELECT * FROM source;
4. 提交作业
点击 保存 并 提交 作业,Dinky 将自动将 SQL 转换为 Flink 作业并在集群上运行。
四、常见问题解决
1. 启动失败,提示端口占用:
检查 `8888` 端口是否被占用,可以修改 `application.yml` 中的 `server.port` 来更换端口。
2. 无法连接 Flink 集群:
确保 Flink 集群的 JobManager 正常运行并且地址配置正确。
五、总结
Dinky 0.7.3 提供了方便的 SQL 流式开发功能,结合 Flink,可以快速实现实时数据处理。通过本教程,你可以快速完成 Dinky 的安装和简单使用。