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

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 即可。

相关文章:

  • 11. CSS从基础样式到盒模型与形状绘制
  • C++学习之路,从0到精通的征途:继承
  • 基于脑功能连接组和结构连接组的可解释特定模态及交互图卷积网络|文献速递-深度学习医疗AI最新文献
  • 在虚拟机Ubuntu18.04中安装NS2教程及应用
  • 大白话解释联邦学习
  • hadoop3.x单机部署
  • Mysql索引优化
  • Spring Boot之Web服务器的启动流程分析
  • 【android bluetooth 框架分析 02】【Module详解 7】【VendorSpecificEventManager 模块介绍】
  • 使用光标测量,使用 TDR 测量 pH 和 fF
  • AI 模型训练轻量化技术在军事领域的实战应用与技术解析
  • ​​华为云服务器:智能算力网格​
  • Vue 3.5 新特性深度解析:全面升级的开发体验
  • MQTT协议详解:物联网通信的轻量级解决方案
  • idea Maven 打包SpringBoot可执行的jar包
  • 【YOLO模型】参数全面解读
  • 微信小程序 密码框改为text后不可见,需要点击一下
  • uni-app学习笔记五-vue3响应式基础
  • 云原生|kubernetes|kubernetes的etcd集群备份策略
  • 9.1 C#控制SW中零件的变色与闪烁
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 三亚通报救护车省外拉警报器开道旅游:违规违法,责令公司停业整顿
  • 训练孩子的科学思维,上海虹口推出“六个一百”旗舰工程
  • 中美发布日内瓦经贸会谈联合声明达成关税共识,外交部回应
  • 世贸组织欢迎中美经贸高层会谈取得积极成果
  • 国家统计局今年将在全国开展两次人口固定样本跟访调查