当前位置: 首页 > ops >正文

Dinky 安装部署并配置提交 Flink Yarn 任务

官方文档

https://www.dinky.org.cn/docs/1.1/deploy_guide/normal_deploy

版本

  • dinky 1.1.0、1.2.3 当前最新发布版本为 1.2.3 ,但是官方文档最新稳定版为 1.1 ,所以先选择 1.1.0,验证通过后,再尝试 1.2.3 ,发现 1.1.0 和 1.2.3 的安装配置完全一样,都能正常使用。
  • Flink 1.15.3

安装包

https://github.com/DataLinkDC/dinky/releases/download/v1.1.0/dinky-release-1.15-1.1.0.tar.gz
https://github.com/DataLinkDC/dinky/releases/download/v1.2.3/dinky-release-1.15-1.2.3.tar.gz

解压

tar -zxvf dinky-release-1.15-1.1.0.tar.gz
mv dinky-release-1.15-1.1.0 dinky
mv dinky /opt/

数据库初始化

创建库和用户

myql-5.x

#登录mysql
mysql -uroot -p
#创建数据库
mysql>
CREATE DATABASE dinky;
#创建用户并允许远程登录
mysql>
create user 'dinky'@'%' IDENTIFIED WITH mysql_native_password by 'dinky';
#授权
mysql>
grant ALL PRIVILEGES ON dinky.* to 'dinky'@'%';
mysql>
flush privileges;

msyql-8.x

#登录mysql
mysql -uroot -p
#创建数据库
mysql>
CREATE DATABASE dinky;
#创建用户并允许远程登录
mysql>
create user 'dinky'@'%' IDENTIFIED WITH mysql_native_password by 'dinky';
#授权
mysql>
grant ALL PRIVILEGES ON dinky.* to 'dinky'@'%';
mysql>
flush privileges;

初始化表

mysql> use dinky;
mysql> source /opt/dinky/sql/dinky-mysql.sql

配置

创建好数据库后,修改 Dinky 配置文件,选择默认数据源为 mysql。

cd /opt/dinky/config/
vi application.yml
# 修改 Dinky 所使用的数据库类型为 mysql
spring:application:name: Dinkyprofiles:# 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 cautionactive: ${DB_ACTIVE:mysql} #[h2,mysql,pgsql]

修改 Dinky 的 mysql 的配置文件。

vi application-mysql.yml
# 修改 Dinky 的 mysql 链接配置
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=trueusername: ${MYSQL_USERNAME:dinky}password: ${MYSQL_PASSWORD:dinky}driver-class-name: com.mysql.cj.jdbc.Driver

注意:当MySQL 和 Dinky 在相同的机器,虽然配置 MySQL 的IP 为默认的 127.0.0.1,Dinky 也能正常运行,但是当提交 yarn-application任务时,ApplicationMaster需要连接 MySQL 获取任务信息,如果ApplicationMaster在别的节点,则会报连接MySQL失败,所以需要将 IP 由 127.0.0.1 改为别的节点也能连接的 IP

上传依赖

主要是将 flink lib 下的jar 包传到 extends/flink${FLINK_VERSION}

cp lib/* /opt/dinky/extends/flink1.15/dinky/

例如

flink-cep-1.15.3.jar
flink-connector-files-1.15.3.jar
flink-connector-jdbc-1.15.3.jar
flink-csv-1.15.3.jar
flink-dist-1.15.3.jar
flink-json-1.15.3.jar
flink-scala_2.12-1.15.3.jar
flink-shaded-hadoop-2-uber-2.7.5-8.0.jar
flink-shaded-zookeeper-3.5.9.jar
flink-table-api-java-uber-1.15.3.jar
# !!!特别注意,flink自带lib里的planner是带loader的,比如:flink-table-planner-loader-1.15.3.jar,
# 需要删除带loader的jar包,换一个不带loader的jar, 可前往flink根下的opt目录中找到
# 对于standalone,hdfs,k8s等集群上的flink集群同样要做此操作
flink-table-planner_2.12-1.15.3.jarflink-table-runtime-1.15.3.jar
log4j-1.2-api-2.17.1.jar
log4j-api-2.17.1.jar
log4j-core-2.17.1.jar
log4j-slf4j-impl-2.17.1.jar

启动 Dinky

#启动
sh auto.sh start
#停止
sh auto.sh stop
#重启
sh auto.sh restart
#查看状态
sh auto.sh status# 前台启动(调试使用,会输出日志,阻塞当前终端,结束请Ctrl+C,但是会直接退出服务,仅供启动时无日志输出且在排查问题时使用)
sh auto.sh startOnPending

说明
服务启动后,默认端口 8888,http://127.0.0.1:8888 , 默认用户名/密码: admin/dinky123!@# ,如需修改,请使用默认用户名/密码登录后,在认证中心->用户中修改

Dinky 部署需要 MySQL5.7 以上版本

以下是对应版本的截图

1.1.0


1.2.3

相比于 1.1.0 ,1.2.3 版本在第一次安装登录时,多了一些初始配置界面。






源码编译

官网

https://www.dinky.org.cn/docs/1.1/deploy_guide/compile_deploy
https://github.com/DataLinkDC/dinky

打包命令

# 需要网络能下载 nodejs、npm
mvn clean package -DskipTests=true -P prod,flink-single-version,aliyun,flink-1.15,web

编译结果

编译完成后,请查看编译后的目录,如果编译成功,会在 dinky/build 目录下生成对应的版本的 tar.gz 包

问题解决

1.1.0 以及最新的 1.3.0-SNAPSHOT(dev分支)打包都正常,但是 1.2.3 会报:

[ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.27.1:check (spotless-check) on project dinky-common: Execution spotless-check of goal com.diffplug.spotless:spotless-maven-plugin:2.27.1:check failed: java.lang.reflect.InvocationTargetException: com/palantir/javaformat/java/JavaFormatterOptions has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 -> [Help 1]

解决方法:将 pom 中的 spotless-maven-plugin 配置删掉

提交 Flink Yarn 任务

首先需要创建集群,官方文档:https://www.dinky.org.cn/docs/1.1/user_guide/register_center/cluster_manage
Flink 路径:和在 上传依赖 步骤中一样,将Flink 的lib 包上传到对应的 HDFS 路径
Jar 文件路径: 将 $DINKY_HOME/jar 下面的 jar 包上传到对应的 HDFS 路径

1.1.0

创建集群

默认禁用,需要启用

数据开发-> 创建作业

提交到yarn: 选择刚才创建的集群

1.2.3

创建集群

默认启用

数据开发-> 创建作业

yarn-per-job: 选择刚才创建的集群

yarn-application

异常解决

Caused by: java.lang.IncompatibleClassChangeError: org/apache/flink/sql/parser/validate/FlinkSqlConformance

原因为在升级 Hudi 0.13.0时添加了 calcite-core-1.10.0.jar, 导致冲突,删掉即可。

Caused by: org.dinky.data.exception.BusException: The JobID or JobManagerAddress is null. 

1.1.0 yarn-application 模式报该异常,未解决,升级到 1.2.3 即可。

http://www.xdnf.cn/news/5707.html

相关文章:

  • 某实战项目登录口处的渗透测试
  • 运行Spark程序-在Spark-shell——RDD
  • #跟着若城学鸿蒙#HarmonyOS NEXT学习之Blank组件详解
  • 2025年01月10日浙江鑫越系统科技前端面试
  • 商业航天运动控制系统中的高可靠性芯片解决方案:挑战、策略与应用研究
  • Spark处理过程-转换算子
  • K8s 图形界面管理kubesphere
  • 遨游5G-A防爆手机:赋能工业通信更快、更安全
  • SAM论文学习
  • LVGL(lv_led LED灯控件)
  • 【ROS2】通信部署概述(以话题(Topic)通信为例)
  • The 2024 Sichuan Provincial Collegiate Programming Contest部分题解(L,H,E,B,I)
  • vue H5解决安卓手机软键盘弹出,页面高度被顶起
  • 连接词化归律详解
  • Linux系统管理与编程19:自动部署dns
  • 十二、操作符重载
  • 多媒体预研
  • 基于STM32、HAL库的BME680气压传感器 驱动程序设计
  • 如何找正常运行虚拟机
  • 【Kubernetes】初识基础理论(第一篇)
  • OSCP - Hack The Box - Sau
  • 【面试真题】王者荣耀亿级排行榜,如何设计?
  • 项目售后服务承诺书,软件售后服务方案,软件安装文档,操作文档,维护文档(Word原件)
  • MySQL性能调优探秘:我的实战笔记 (下篇:深入内核、锁与监控)
  • java反序列化commons-collections链1
  • 如何使用 WMIC 命令在 Windows 11 或 10 上卸载软件
  • 每周靶点分享:CD20、GIPR及文献分享
  • el-table滚动条,都悬浮在页面的底层显示,表格吸底滚动条效果
  • bootstrap自助(抽样)法
  • 机器学习实战:归一化与标准化的选择指南