wsl内置Ubuntu使用 Dinky 与 Flink 集成

这篇具有很好参考价值的文章主要介绍了wsl内置Ubuntu使用 Dinky 与 Flink 集成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Dinky 与 Flink 集成

说明

本文档介绍 Dinky 与 Flink 集成的使用方法,

如果您是 Dinky 的新用户, 请先阅读 本文档, 以便更好的搭建 Dinky 环境

如果您已经熟悉 Dinky 并已经部署了 Dinky, 请跳过本文档的前置要求部分, 直接阅读 Dinky 与 Flink 集成部分

注意: 本文档基于 Dinky 1.0.0+ 版本编写, 请确保 Dinky 版本 >= 1.0.0

前置要求

  • JDK 1.8/11
  • Dinky 1.0.0+
  • MySQL 5.7+
  • Flink 1.14+(Dinky v1.0.0 支持 Flink 1.14+ 及以上版本)

Flink 环境准备

本案例以 Flink 1.18.0 模式采用 Standalone 模式为例, 请根据实际情况自行选择部署模式,各个模式的部署方案自行参考 Flink 官方文档/百度/谷歌/必应…

下载 Flink

wget https://archive.apache.org/dist/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz

解压 Flink

tar -zxvf flink-1.18.0-bin-scala_2.12.tgz

mv flink-1.18.0 flink

配置环境变量

vim ~/.bashrc

# 末尾加入以下内容
export FLINK_HOME=/opt/flink
export PATH=$PATH:$FLINK_HOME/bin

# 使环境变量生效
source ~/.bashrc

启动 Flink

cd flink

./bin/start-cluster.sh

验证页面访问: http://ip:8081

我使用的是wsl的ubuntu系统。

wsl端口号

http://172.26.217.146:8081

172.26.217.146:8081

需要修改flink的conf bind.adress的配置,为0.0.0.0,才可以从外部服务访问

http://172.26.217.146:8081/#/overview

Dinky 环境准备

下载 Dinky

wget https://github.com/DataLinkDC/dinky/releases/download/v1.0.0-rc2/dinky-release-1.0.0-rc2.tar.gz

解压 Dinky

tar -zxvf dinky-release-1.0.0-rc2.tar.gz

mv dinky-release-1.0.0-rc2 dinky

配置数据库

本案例以 MySQL 为例, 支持 MySQL 5.7+, PostgreSQL , 或者直接使用内置 H2 数据库,请根据实际情况自行选择数据库,各个数据库的部署方案自行参考官方文档/百度/谷歌/必应…

如果选择使用 H2 数据库, 请跳过本节 ,MySQL 安装步骤在这里不再赘述, 请自行百度/谷歌/必应…

安装完成之后 创建 dinky 数据库, 并设置账户密码,也可使用默认账户密码, 创建完成数据库之后需要执行初始化 sql 脚本, 脚本路径为 dinky/sql/dinky-mysql.sql

修改 conf/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&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: ${MYSQL_USERNAME:dinky}
    password: ${MYSQL_PASSWORD:dinky}
    driver-class-name: com.mysql.cj.jdbc.Driver

修改 conf/application.yml 文件, 修改数据库连接使用方式

spring:
  # Dinky application name
  application:
    name: Dinky
  profiles:
    # The h2 database is used by default. If you need to use other databases, please set the configuration active to: mysql, currently supports [mysql, pgsql, h2]
    # If you use mysql database, please configure mysql database connection information in application-mysql.yml
    # If you use pgsql database, please configure pgsql database connection information in application-pgsql.yml
    # If you use the h2 database, please configure the h2 database connection information in application-h2.yml,
    # note: the h2 database is only for experience use, and the related data that has been created cannot be migrated, please use it with caution
    active: mysql #[h2,mysql,pgsql]  修改此处,默认为 h2, 修改为 mysql
    include: jmx

Dinky 与 Flink 集成

注意

修改完数据库连接配置不要着急启动,接下来 Dinky 与 Flink 集成

  1. 将 Flink 的 lib 目录下的 所有 jar 包复制到 Dinky 的 extends 目录下
cp -r /opt/flink/lib/* /opt/dinky/extends/
  1. 添加/修改一些额外的依赖
cd /opt/dinky/extends/
# 添加 common-cli 依赖, 否则会出现异常
wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.6.0/commons-cli-1.6.0.jar

# 为什么要下载这个 jar 包, 因为内部有些冲突的已经被删除掉了, 
# 注意: 如果无需 hadoop 环境, 可以不下载这个 jar 包, 但是如果需要 hadoop 环境, 必须下载这个 jar 包
# 下载 Dinky 群公告 内的 flink-shaded-hadoop-3-uber-3.1.1.7.2.1.0-327-9.0.jar

# 将 flink-table-planner-loader 包换成 flink-table-planner 包
# 先删除 flink-table-planner-loader 包
rm -rf /opt/dinky/extends/flink-table-planner-loader-1.18.0.jar
rm -rf /opt/flink/lib/flink-table-planner-loader-1.18.0.jar
# 将 flink-table-planner 包复制到 extends 目录下和 flink lib 目录下
cp /opt/flink/opt/flink-table-planner_2.12-1.18.0.jar /opt/flink/lib/
cp /opt/flink/opt/flink-table-planner_2.12-1.18.0.jar /opt/dinky/extends/

注意

以上依赖修改完成之后, 需要重启 Flink

启动 Dinky

注意

当你阅读到这里的时候, 请确保你已经完成了上述的所有步骤, Flink 已经启动, 并可以正常访问. 请先不要添加其他连接器依赖

下述的命令中 1.18 代表 Flink 版本, 请根据实际情况修改 支持 1.14 , 1.15, 1.16 , 1.17 , 1.18,

通过指定版本使 Dinky 加载对应版本的 Flink 依赖, 以便 Dinky 能够正常与 Flink 集成。

cd dinky
# 1.18 代表 Flink 版本, 请根据实际情况修改 支持 1.14 , 1.15, 1.16 , 1.17 , 1.18, 
./auto.sh start 1.18

验证

页面访问: http://ip:8888 正常访问至登录页面, 证明 Dinky 已经启动成功, 请使用默认账户密码登录, 默认账户密码为 admin/admin

http://172.26.217.146:8888/

重点:启动失败,日志可以看到。没有mysql的jar包

无法访问 需要去mysql官网下载jar包 mysql

mysql-connector-j-8.3.0.jar

https://dev.mysql.com/downloads/connector/j/

将这个也放到 extends里面

/opt/dinky/extends/

然后重新启动文章来源地址https://www.toymoban.com/news/detail-825676.html

./auto.sh stop
./auto.sh start 1.18

Datagen 任务 Demo

创建 Datagen 任务

  1. 进入 数据开发 -> 项目 -> 新建根目录 名称自行定义
  2. 右键 新建作业 -> 类型选择FlinkSQL -> 输入名称 -> 输入描述(可选) 点击完成
  3. 在编辑器中输入如下代码
# checkpoint 配置 自行根据实际情况修改, 以下为示例
set execution.checkpointing.checkpoints-after-tasks-finish.enabled=true;
SET pipeline.operator-chaining=false;
set state.backend.type=rocksdb;
set execution.checkpointing.interval=8000;
set state.checkpoints.num-retained=10;
set cluster.evenly-spread-out-slots=true;

DROP TABLE IF EXISTS source_table3;
CREATE TABLE IF NOT EXISTS
  source_table3 (
    `order_id` BIGINT,
    `product` BIGINT,
    `amount` BIGINT,
    `order_time` as CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3)), 
    WATERMARK FOR order_time AS order_time - INTERVAL '2' SECOND
  )
WITH
  (
    'connector' = 'datagen',
    'rows-per-second' = '1',
    'fields.order_id.min' = '1',
    'fields.order_id.max' = '2',
    'fields.amount.min' = '1',
    'fields.amount.max' = '10',
    'fields.product.min' = '1',
    'fields.product.max' = '2'
  );

DROP TABLE IF EXISTS sink_table5;

CREATE TABLE IF NOT EXISTS
  sink_table5 (
    `product` BIGINT,
    `amount` BIGINT,
    `order_time` TIMESTAMP(3),
    `one_minute_sum` BIGINT
  )
WITH
  ('connector' = 'print');

INSERT INTO
  sink_table5
SELECT
  product,
  amount,
  order_time,
  SUM(amount) OVER (
    PARTITION BY
      product
    ORDER BY
      order_time
      RANGE BETWEEN INTERVAL '1' MINUTE PRECEDING
      AND CURRENT ROW
  ) as one_minute_sum
FROM
  source_table3;
  1. 配置右侧 任务配置 ,请根据实际情况填写,如对参数不了解, 请鼠标悬浮至表单的每项 label 右侧的 ? 查看帮助信息
  2. 点击保存按钮/ctrl+s 保存任务
  3. 可自行点击 DAG/检查 等按钮查看任务的 DAG 图和检查该作业的语法是否正确
  4. 以上完成之后,点击运行按钮, 等待任务运行完成, 可以在 运维中心 中查看任务的运行状态/直接点击运行按钮左侧的运维按钮,即可跳转至运维中心该任务的详情页面查看运行状态,如下图:

到了这里,关于wsl内置Ubuntu使用 Dinky 与 Flink 集成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Dinky: 实时即未来,让 Flink SQL 纵享丝滑--如何本地编译、运行

    实时即未来,Dinky 为 Apache Flink 而生,让 Flink SQL 纵享丝滑。 Dinky 是一个开箱即用、易扩展,以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架的一站式实时计算平台,致力于流批一体和湖仓一体的探索与实践。 最后,Dinky 的发展皆归功于 Apache Flink 等其他优秀的开源项目的

    2024年02月09日
    浏览(42)
  • 基于 Dinky + FlinkSQL + Flink CDC 同步 MySQL 数据到 Elasticsearch、Kafka

    Dinky 是一个开箱即用的一站式实时计算平台以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架致力于流批一体和湖仓一体的建设与实践。本文以此为FlinkSQL可视化工具。 Flink SQL 使得使用标准 SQL 开发流式应用变得简单,免去代码开发。 Flink CDC 本文使用 MySQL CDC 连接器 允许从

    2024年02月16日
    浏览(43)
  • 44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示例--网上有些说法好像是错误的

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月09日
    浏览(43)
  • WSL安装与使用(Ubuntu22.04)

    本文主要记录Windows WSL的安装和使用过程,内容包括WSL安装过程、WSL安装Ubuntu、Ubuntu更换镜像源,Ubuntu安装Dcoker并配置等步骤。 Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,

    2024年02月08日
    浏览(45)
  • 第二章 Flink集成Iceberg的集成方式及基本SQL使用

    注意事项:一般都是用基于Flink的Hive Catalog,使用HMS存储表模型数据 1、集成方式 (1)下载jar包 下载地址 (2)启动FlinkSQL ①StandLone模式启动 ②Flink On Yarn模式启动 2、基本使用 2.1、创建catalog 核心:可创建hive、hadoop、自定义等目录,创建模板如下 type : 必须的 iceberg 。(必需

    2024年02月08日
    浏览(40)
  • 【WSL】使用WSL在Windows上安装Linux(Ubuntu20.04)

    本文将介绍在win11系统下使用Windows自带的WSL功能安装Ubuntu20.04子系统,其中WSL2本质仍是基于Hyper-V的虚拟机。 Windows11 + WSL2 + Ubuntu20.04 (WSL译为适用于 Linux 的 Windows 子系统) 在Windows设置中添加可选功能,勾选 适用于Linux的Windows子系统(即WSL) 和 虚拟机平台 ,开启该功能需重

    2024年02月12日
    浏览(52)
  • WSL ubuntu使用systemctl命令报错,解决办法

    今天在wsl执行systemctl报以下错, systemctl enable docker Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable docker Failed to reload daemon: Interactive authentication required. Failed to reload daemon: Interactive authentication required. Failed

    2024年02月12日
    浏览(42)
  • wsl2中的ubuntu使用systemctl报错问题

    显示如下错误:System has not been booted with systemd as init system (PID 1). Can\\\'t operate 原因在于wsl中的ubuntu不完整,手动安装systemctl貌似也不好用,可以使用等同的sysvinit命令 替换关系如下:  

    2024年02月11日
    浏览(48)
  • Windows 11 设置 wsl-ubuntu 使用桥接网络

    在 Windows 11 下的 wsl-ubuntu 系统下学习 AI,内网的其他机器访问 wsl-ubuntu 中启动的服务非常麻烦,所以设置wsl-ubuntu 使用桥接网络,方便内网中其他机器进行访问。 如下图所示,启用 Hyper-V。 如下图所示。 使用快捷键Win+R唤出运行窗口,在打开栏内填入%USERPROFILE%并在打开的文件

    2024年02月02日
    浏览(43)
  • 【WSL2笔记9】Ubuntu 环境ComfyUI 安装使用笔记

    git clone https://github.com/comfyanonymous/ComfyUI.git 1.2.1 Python 版本 ComfyUI在Ubuntu环境下,python 3.8、 3.9、 3.10 实测都能通过 使用3.9是为了后续兼容其他第三方插件,有些插件在3.10下依赖版本冲突 conda create -n comfyui python==3.9 conda activate comfyui 1.2.2 Torch 版本 Conda 安装 conda install pytorch tor

    2024年03月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包