Flink的安装、项目创建、任务打包和部署完整实现,任务实现使用JAVA语言

Flink资源下载地址

 Flink安装包下载地址

一、本地模式安装Flink

1、在Linux服务上,创建flink文件夹  

mkdir flink

2、上传文件并解压

tar -zxvf flink-1.14.6-bin-scala_2.11.tgz

解压完成后,如图:

3、启动Flink
进入到解压目录下,执行以下脚本:

 ./bin/start-cluster.sh

启动成功,通过jps查看服务信息:

4、访问Flink
在浏览器中访问服务器8081端口即可查看Flink的WebUI,
比如http://82.xxx.xxx.xxx:8081/,从WebUI中可以看出,当前本地模式的Task Slot数量和TaskManager数量。访问结果如下图所示:


5、停止Flink

./bin/stop-cluster.sh

二、创建Flink任务

1、不同的Main方法
创建Flink的main方法和Springboot项目中main方法的依赖是不同的,在pom.xml文件中需要注意。区别主要如下:

  • Flink创建Java任务的main方法和Spring Boot的main方法之所以不同,是因为它们服务于不同的目的和框架。
  • 在Flink中,创建Java任务的main方法主要用于定义和配置Flink作业的执行逻辑。这个main方法通常包含了Flink的核心API调用,例如创建数据源、定义转换操作和设置输出等。Flink作业的执行逻辑会在Flink集群上进行分布式计算。
  • 而Spring Boot的main方法则是用于启动一个基于Spring框架的应用程序。Spring Boot主要用于开发Web应用或者其他类型的企业级应用。在Spring Boot的main方法中,你可以初始化Spring容器、配置各种组件、定义路由规则等。Spring Boot应用程序通常会运行在一个嵌入式的服务器上,如Tomcat或Jetty。

总结来说,Flink的main方法用于定义分布式计算任务的执行逻辑,而Spring Boot的main方法用于启动基于Spring框架的应用程序。

2、创建Flink项目
使用Maven命令创建一个项目,再使用Intellij Idea打开该项目,打开cmd输入:

mvn

org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeGroupId=org.apache.flink

-DarchetypeArtifactId=flink-quickstart-scala

-DarchetypeVersion=1.8.1

-DgroupId=com.myflink

-DartifactId=flink-study-scala

-Dversion=0.1

-Dpackage=quickstart

-DinteractiveMode=false

开始执行:

创建完成,目录结构:

三、创建Flink任务

实现kafka同步数据到sink,创建main方法,大致项目结构如下:

启动main方法,在kafka生产数据:

打印信息:

四、Flink任务打包

1、打开项目,找到project structure:

2、然后选择主类,点击应用Apply:

3、构建服务

然后会继续弹出,点击Build

4、构建成功:

五、Flink任务部署

1、上传jar任务到flink-1.14.6/examples/streaming 目录下

上传完成后,执行命令:

./bin/flink run examples/streaming/flink-study-scala-0.1.jar

启动成功,访问页面

六、停止Flink任务

1、查询JobID:

./bin/flink list

2、执行停止命令:

./bin/flink cancel f26d5469cf2015ef371350e77605d17b

到这里,Flink的本地模式安装、项目创建、任务打包和部署算是完成了,后续有资源条件了,再补充生产环境常用的Flink on YARN模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

樱花下落的速度(区间放缩,思维)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 已知一朵樱花有 n 枚花瓣,每一枚花瓣各不相同。将它们用一个长为 n 的排列编号。 我们根据一朵樱花的编号来认定它的特征: 每一个排列均具有两组特征码 fa,f…

YOLOv9训练损失、精度、mAP绘图功能 | 支持多结果对比,多结果绘在一个图片(消融实验、科研必备)

一、本文介绍 本文给大家带来的是YOLOv9系列的绘图功能,我将向大家介绍YOLO系列的绘图功能。我们在进行实验时,经常需要比较多个结果,针对这一问题,我写了点代码来解决这个问题,它可以根据训练结果绘制损失(loss)和mA…

使用官方代码打印yolov8 PyTorch模型结构

理解模型结构的重要性 在进行深度学习模型的开发时,一个清晰的模型结构有助于理解网络是如何从输入数据中提取特征,并执行分类或回归任务的。对于如YOLOv8这样的复杂模型来说,理解每个层的作用和相互间的连结尤为重要。 下面是我整合的代码…

ORACLE创建表空间及用户

创建用户之前需要先为用户创建表空间。 创建临时表空间:Oracle 临时表空间用于存储数据库操作过程中的临时数据,例如排序、哈希操作或者大查询的中间结果。临时表空间主要用于保证用户会话中的操作不会影响到系统的稳定性。 #用管理员登入数据库。 sq…

React的Key和diff

React的Key 先说说React组件的中Key,在渲染一个列表的时候,都要求设置一个唯一的Key,不然就会提示:Each child in a list should have a unique "key" prop. 意思是列表的每一个子元素都应该需要设置一个唯一的key值。在开发中一搬会以id作为key。比如 const …

Java的八大基本数据类型和 println 的介绍

前言 如果你有C语言的基础,这部分内容就会很简单,但是会有所不同~~ 这是我将要提到的八大基本数据类型: 注意,Java的数据类型是有符号的!!!和C语言不同,Java不存在无符号的数据。 整…

Day:动态规划 LeedCode 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

123. 买卖股票的最佳时机 III 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票&a…

安全开发实战(2)---域名反查IP

目录 安全开发专栏 前言 域名与ip的关系 域名反查ip的作用 1.2.1 One 1.2.2 Two 1.2.3 批量监测 ​总结 安全开发专栏 安全开发实战http://t.csdnimg.cn/25N7H 这步是比较关键的一步,一般进行cdn监测后,获取到真实ip地址后,或是域名时,然后进行域名反查IP地址,进行进…

基于Springboot的职称评审管理系统

基于SpringbootVue的职称评审管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 评审条件 论坛信息 系统公告 后台登录页面 用户管理 评审员管理 省份…

再谈C语言——理解指针(四)

assert断⾔ assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。 assert(p ! NULL); 上⾯代码在程序运⾏到这⼀⾏语句时,验证变量 p 是否等于 NULL 。…

​LeetCode解法汇总2385. 感染二叉树需要的总时间

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:. - 力扣(LeetCode) 描述: 给你一棵二叉树的根节点 root &#xff0…

Linux-System V共享内存

目录 System V共享内存共享内存概述创建或打开共享内存使用共享内存分离共享内存控制共享内存1、IPC_STAT2、IPC_SET 代码示例 System V共享内存 共享内存概述 共享内存是所有IPC中最快的一种。它之所以快是因为共享内存一旦映射到进程的地址空间,进程之间数据的传…

创建型设计模式

七大原则 1. 开闭原则(Open-Closed Principle, OCP) 详解:软件实体(类、模块、函数等)应该易于扩展,但是不易于修改。换句话说,当软件需求变化时,应该通过添加新代码来实现变化&am…

CSP初赛知识精讲--排列组合

第十一节 排列组合 基础知识 排列是指从给定个数的元素中取出指定个数的元素进行排序。  组合是指从给定个数的元素中仅仅取出指定元素个数的元素,不考虑排序。  排列组合问题的关键就是研究给定要求的排列和组合可能出现的情况的总数。 定义与公式  排列&…

销冠必备:高效跟进客户的四个技巧

作为一名销售,高效而精准地跟进客户是取得成功的关键。今天,我将分享四个技巧,让你也能够高效的跟进客户。 1、善于发问 通过多询问客户,你可以更好地了解客户的需求和痛点。在与客户交流时,不要只是简单地回答问题&…

LeetCode 0216.组合总和 III:回溯(剪枝) OR 二进制枚举

【LetMeFly】216.组合总和 III:回溯(剪枝) OR 二进制枚举 力扣题目链接:https://leetcode.cn/problems/combination-sum-iii/ 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返…

业务复习知识点Oracle查询

业务数据查询-1 单表查询 数据准备 自来水收费系统建表语句.sql 简单条件查询 精确查询 需求 :查询水表编号为 30408 的业主记录 查询语句 : select * from t_owners where watermeter 30408; 查询结果 : 模糊查询 需求 :查询业…

毕业设计注意事项(2024届更新中)

1.开题 根据学院发的开题报告模板完成,其中大纲部分可参考资料 2.毕设 根据资料中的毕设评价标准,对照工作量 3.论文 3.1 格式问题 非常重要,认真对比资料中我发的模板,格式有问题,答辩输一半! 以word…

W801学习笔记十四:掌机系统——菜单——尝试打造自己的UI

未来将会有诸多应用,这些应用将通过菜单进行有序组织和管理。因此,我们需要率先打造好菜单。 LCD 驱动通常是直接写屏的,虽然速度较快,但用于界面制作则不太适宜。所以,最好能拥有一套 UI 框架。如前所述,…

【linux】编译器使用

目录 1. gcc ,g 编译器使用 a. 有关gcc的指令(g同理) 2. .o 文件和库的链接方式 a. 链接方式 b. 动态库 和 静态库 优缺点对比 c. debug 版本 和 release 版本 1. gcc ,g 编译器使用 a. 有关gcc的指令(g同理&…