Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包

news2024/11/28 18:38:58

大纲

  • 安装Flink
    • 操作系统
    • 安装JDK
    • 安装Flink
    • 修改配置
    • 启动Flink
    • 测试
  • 使用IntelliJ制作任务包
    • 新建工程
      • Archetype
    • 编写测试代码
    • 打包
    • 测试
  • 参考资料

在《0基础学习PyFlink》专题中,我们熟悉了Flink的相关知识以及Python编码方案。这个系列我们将使用相对主流的Java语言,来实践Flink的相关设计。

安装Flink

操作系统

我安装的是Ubuntu 22TLS版。

cat /proc/version

Linux version 5.15.0-112-generic (buildd@lcy02-amd64-051) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #122-Ubuntu SMP Thu May 23 07:48:21 UTC 2024

安装JDK

sudo apt install openjdk-11-jdk

通过下面命令查看java版本号

java --version

openjdk 11.0.23 2024-04-16
OpenJDK Runtime Environment (build 11.0.23+9-post-Ubuntu-1ubuntu122.04.1)
OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Ubuntu-1ubuntu122.04.1, mixed mode, sharing)

安装Flink

从https://flink.apache.org/downloads/可以获得最新的地址

wget https://dlcdn.apache.org/flink/flink-1.19.1/flink-1.19.1-bin-scala_2.12.tgz .
tar -xzf flink-*.tgz

修改配置

为了让本地之外的其他机器可以访问,我们需要修改Flink的配置

 vim flink-1.19.1/conf/config.yaml

把所有的localhost改成0.0.0.0
vim的指令是

:%s/localhost/0.0.0.0/g

启动Flink

cd flink-1.19.1/
./bin/start-cluster.sh

Starting cluster.
Starting standalonesession daemon on host fangliang.
Starting taskexecutor daemon on host fangliang.

测试

我们通过IP:8081打开后台,可以看到正常显示
在这里插入图片描述
然后我们运行一个软件包自带的任务包

./bin/flink run examples/streaming/WordCount.jar

可以看到如下输出

Executing example with default input data.
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
Job has been submitted with JobID 6c309e274649b1585a6be46197b16880
Program execution finished
Job with JobID 6c309e274649b1585a6be46197b16880 has finished.
Job Runtime: 414 ms

以及在后台的任务完成列表中看到该任务
在这里插入图片描述

使用IntelliJ制作任务包

我们使用Maven方案。

新建工程

JDK选择和Flink运行环境匹配的Java 11。

Archetype

组ID:org.apache.flink
工件ID:flink-quickstart-java
版本:1.19.1
这个版本号就是我们下载的Flink的版本号。
在这里插入图片描述
在这里插入图片描述
会生成如下结构的工程
在这里插入图片描述

编写测试代码

我们在DataStreamJob.java中插入如下代码:

		env.fromData(1, 2, 3, 4, 5)
			.map(i -> i * i)
			.print();

打包

在这里插入图片描述
然后我们看到target目录下生成了jar包
在这里插入图片描述

测试

在Flink后台,我们上传这个包
在这里插入图片描述
然后运行这个包
在这里插入图片描述
可以看到这个包正常运行了
在这里插入图片描述

参考资料

  • https://flink.apache.org/downloads/

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

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

相关文章

SQL Server 2022 中的 Tempdb 性能改进非常显著

无论是在我的会话中还是在我写的博客中,Tempdb 始终是我的话题。然而,当谈到 SQL Server 2022 中引入的重大性能变化时,我从未如此兴奋过。他们解决了我们最大的性能瓶颈之一,即系统页面闩锁并发。 在 SQL Server 2019 中&#x…

python函数和c的区别有哪些

Python有很多内置函数(build in function),不需要写头文件,Python还有很多强大的模块,需要时导入便可。C语言在这一点上远不及Python,大多时候都需要自己手动实现。 C语言中的函数,有着严格的顺…

【pyhton学习】深度理解类和对象

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 一、一切皆对象1.1 对象的概念1.2 如何创建类对象1.3 类型检测 二、属性与方法2.1 如何查看属性与方法2.2 属性和方法…

14-39 剑和诗人13 - 顶级大模型测试分析和建议

​​​​​ 随着对高级语言功能的需求不断飙升,市场上涌现出大量语言模型,每种模型都拥有独特的优势和功能。然而,驾驭这个错综复杂的生态系统可能是一项艰巨的任务,开发人员和研究人员经常面临选择最适合其特定需求的模型的挑战。…

SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目

1,如何打包一个项目 通过IDEA自带的命令行,执行 ./gradlew clean build 2,检查生成的JAR文件 进入 build/libs 目录,你应该会看到一个类似 helloredis-0.0.1-SNAPSHOT.jar 的文件。 3:运行生成的JAR文件 你可以使…

【工具】豆瓣自动回贴软件

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 相比于之前粗糙丑陋的黑命令框版本,这个版本新增了UI界面,从此可以不需要再挨个去翻配置文件了。 另外,升级了隐藏浏…

Java基础(六)——继承

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

Blazor SPA 的本质是什么以及服务器端渲染如何与 Blazor 的新 Web 应用程序配合使用

Blazor 通常被称为单页应用程序 (SPA) 框架。当我第一次开始使用 Blazor 时,我对 SPA 的含义、组件如何为 SPA 架构做出贡献以及所有这些如何与交互性联系在一起感到困惑。 今天,我将解答大家可能关心的三个问题: 什么是 SPA?了…

A Threat Actors 出售 18 万名 Shopify 用户信息

BreachForums 论坛成员最近发布了涉及 Shopify 的重大数据泄露事件。 据报道,属于近 180,000 名用户的敏感数据遭到泄露。 Shopify Inc. 是一家总部位于安大略省渥太华的加拿大公司。 开发和营销同名电子商务平台、Shopify POS 销售点系统以及专用于企业的营销工…

文心一言最常用的20条指令及指令说明,含增强指令

下面是20条文心一言的指令及其说明,每条指令尽量简洁明了,以便在有限的字数内提供尽可能多的信息。以下是这些指令及其说明: 1. 查询天气 指令:今天北京的天气怎么样?说明:此指令用于查询特定城市&#xf…

24西安电子科技大学经济与管理学院—考研录取情况

24西安电子科技大学—经理与管理学院—考研录取统计 01、经理与管理学院各个方向 02、24经济与管理近三年复试分数线对比 1、经管院24年院线相对于23年院线普遍下降2-15分,个别专业上涨4-10分。 2、经管院应用经济学2024年院线350分;管理科学与工程院线…

用kimi实现一键实体识别与关系抽取

实体识别与关系抽取是自然语言处理(NLP)中的两个重要任务,通常被视为知识图谱构建的基础技术。 实体识别(Named Entity Recognition, NER): 实体识别的目标是从文本中识别出具有特定意义的实体&#xff0…

Java.lang.Thread类和Java的主线程

一.Java.lang.Thread类 支持多线程编程 常用方法 二.主线程 ◆Java程序启动时,一个线程立即随之启动,通常称之为程序的主线程 ◆main()方法即为主线程入口 ◆产生其他子线程的线程 ◆必须最后完成执行,因为它执行各种关闭动作 示例 使用…

Vben:表格的表头和表格的内容对不齐,以及解决方法

文章目录 一、问题描述二、解决方法 一、问题描述 基于Vue-Vbne-admin框架进行前端开发的时候,调用表格useTable函数实现表格之后,发现表格的表头和表格的内容对不齐。如下图所示。针对这种情况,本文记录了解决方法。 调用的模块如下&#x…

centos7部署mysql8.0

1.安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。查看是否安装mariadb rpm -qa | grep mariadb 2. 卸载mariadb rpm -e --nodeps 查看到的文件名 3.下载MySQL安装包 MySQL官网下载地址: MySQL :: Download MySQL Community Serverhttps://dev.mys…

AE界面讲解

目录 菜单栏 快捷工具栏 项目窗口 合成窗口 选项面板 时间线面板 菜单栏 快捷工具栏 切换工具的方式:按住Alt键,点击要切换的工具选项,就可以快速切换同一个工具子菜单下的其他工具 项目窗口 用来存放项目的区域 合成窗口 用于预览视…

TEE RPMB的简介以及开发流程

思考: 如何开发一个TA? sdk又是什么?开发一个TA的流程是怎样的?How to do?有关TA的签名介绍TEE开发Secure driver介绍RPMB的简介以及开发流程共享内存的最大限制是什么?TA的栈内存/堆内存又有哪些限制TA都支持哪些密码学算法?TA都可以使用哪些存储接口?分别都存放在了哪…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十一)-git(3)

Git是目前最流行的版本控制系统之一,在现代软件开发中扮演着重要的角色。它能够有效地跟踪文件变化、协作开发,并存储项目的历史记录。本文的目的是向读者介绍Git的基本概念和工作原理,帮助初学者快速上手使用Git,并帮助有经验的开…

leetcode每日一题-3101 交替子数组计数

暴力遍历&#xff1a;看起来像是回溯,实际上就是递归 class Solution { private:long long _res 0; public:long long countAlternatingSubarrays(vector<int>& nums) {backtrack(nums, 0);return _res;}void backtrack(vector<int>& nums, long long st…

Threejs环境、透视相机、坐标系、光源

文章目录 如何引入threejsnpm方式script方式script module方式 基本流程与坐标摄像机Geometry(几何体)和Material(材质)光源 如何引入threejs 对于很多刚刚上手threejs的朋友&#xff0c;可能第一步引入threejs就出问题了&#xff0c; 明明已经导入了&#xff0c;就是这样问题…