Flink入门学习 | 大数据技术
⭐简单说两句⭐
✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~作者:后端小知识,CSDN后端领域新星创作者 |阿里云专家博主
CSDN个人主页:后端小知识
🔎GZH:
后端小知识🎉欢迎关注🔎点赞👍收藏⭐️留言📝
Flink入门学习-WordCount

我们今天来编写一个Flink入门学习案例,统计单词出现的次数
这里就先直接上手实践,先不看枯燥的理论
IDEA方式运行
我们首先创建Flink运行环境
//设置Flink运行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
然后模拟一点数据
//从集合中读取模拟数据DataStream<String> stream = env.fromElements("spark flink kafka", "spark sqoop flink", "kakfa hadoop flink");
切词做转换
stream.flatMap((String value, Collector<Tuple2<String,Integer>> out) -> {//value就是每一个元素的数据System.out.println("读取内容:" + value);//将每一个元素按照空格切分String[] split = value.split(" ");//遍历每一个单词for (String word : split) {//将每一个单词发送到下游out.collect(new Tuple2<>(word, 1));}})
返回类型
.returns(Types.TUPLE(Types.STRING, Types.INT))
keyby分组(按照tuple的第一个元素进行分组)
.keyBy(f->f.f0)
聚合统计
.sum(1);
打印结果
sum.print();
最后执行execute
env.execute();
完整代码如下
package cn.wy.chapter02;import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;/*** @author tiancx*/
public class WordCount {public static void main(String[] args) throws Exception {//设置Flink运行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//从集合中读取模拟数据DataStream<String> stream = env.fromElements("spark flink kafka", "spark sqoop flink", "kakfa hadoop flink");SingleOutputStreamOperator<Tuple2<String, Integer>> sum = stream.flatMap((String value, Collector<Tuple2<String,Integer>> out) -> {//value就是每一个元素的数据System.out.println("读取内容:" + value);//将每一个元素按照空格切分String[] split = value.split(" ");//遍历每一个单词for (String word : split) {//将每一个单词发送到下游out.collect(new Tuple2<>(word, 1));}}).returns(Types.TUPLE(Types.STRING, Types.INT)).keyBy(f->f.f0).sum(1);//打印结果sum.print();env.execute();}
}
运行看结果

提交到集群运行
启动集群后我们使用命令
flink run -c 类全限定路径名 jar文件
flink run -c cn.wy.chapter02.WordCount FlinkDemo-1.0-SNAPSHOT.jar

可以看到任务提交切运行成功了
我们进入web-ui界面
网址
http://localhost:8081/#/job/completed
界面如下图所示

可以清晰的看到任务状态是FINISHED(完成)
任务执行成功了,我们的日志在哪看呢?
我们直接去TaskManager中看

点击地址进去
这里就是结果啦
【都看到这了,点点赞点点关注呗,爱你们】😚😚

💬
✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~
作者:后端小知识,CSDN后端领域新星创作者 | 阿里云专家博主
CSDN个人主页:后端小知识
🔎GZH:后端小知识
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
相关文章:
Flink入门学习 | 大数据技术
⭐简单说两句⭐ ✨ 正在努力的小新~ 💖 超级爱分享,分享各种有趣干货! 👩💻 提供:模拟面试 | 简历诊断 | 独家简历模板 🌈 感谢关注,关注了你就是我的超级粉丝啦! &…...
Arthas实战教程:定位Java应用CPU过高与线程死锁
引言 在Java应用开发中,我们可能会遇到CPU占用过高和线程死锁的问题。本文将介绍如何使用Arthas工具快速定位这些问题。 准备工作 首先,我们创建一个简单的Java应用,模拟CPU过高和线程死锁的情况。在这个示例中,我们将编写一个…...
HTML制作跳动的心形网页
作为一名码农 也有自己浪漫的小心思嗷~ 该网页 代码整体难度不大 操作性较强 祝大家都幸福hhhhh 效果成品: 全部代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE> 一个…...
如何在Odoo 17 销售应用中使用产品目录添加产品
Odoo,作为一个知名的开源ERP系统,发布了其第17版,新增了多项功能和特性。Odoo 17包中的一些操作简化了,生产力提高了,用户体验也有了显著改善。为了为其用户提供新的和改进的功能,Odoo不断进行改进和增加新…...
为什么pdf拆分出几页之后大小几乎没有变化
PDF 文件的大小在拆分出几页之后几乎没有变化可能有几个原因: 图像压缩: 如果 PDF 文件中包含图像,而这些图像已经被压缩过,拆分后的页面依然会保留这些压缩设置,因此文件大小可能不会显著变化。 文本和矢量图形: PDF 文件中的文…...
如何在 VM 虚拟机中安装 OpenEuler 操作系统保姆级教程(附链接)
一、VMware Workstation 虚拟机 若没有安装虚拟机的可以参考下篇文章进行安装: 博客链接https://eclecticism.blog.csdn.net/article/details/135713915 二、OpenEuler 镜像 点击链接前往官网 官网 选择第一个即可 三、安装 OpenEuler 打开虚拟机安装 Ctrl …...
(六)PostgreSQL的组织结构(3)-默认角色和schema
PostgreSQL的组织结构(3)-默认角色和schema 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:57771 默认角色 Post…...
DockerFile定制镜像
dockerfile 简介 Dockerfile 是⼀个⽤来构建镜像的⽂本⽂件,⽂本内容包含了⼀条条构建镜像所需的指令和 说明,每条指令构建⼀层,最终构建出⼀个新的镜像。 docker镜像的本质是⼀个分层的⽂件系统 centos的iso镜像⽂件是包含bootfs和rootfs…...
Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
个人主页: 进朱者赤 阿里非典型程序员一枚 ,记录平平无奇程序员在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) 引言 在Java中,并发编程一直是一个重要的领域,而JDK 8中的java.u…...
岛屿个数(dfs)
[第十四届蓝桥杯省B 岛屿个数] 小蓝得到了一副大小为 M N MN MN 的格子地图,可以将其视作一个只包含字符 0 0 0(代表海水)和 1 1 1(代表陆地)的二维数组,地图之外可以视作全部是海水,每个岛…...
【C++造神计划】运算符
1 赋值运算符 赋值运算符的功能是将一个值赋给一个变量 int a 5; // 将整数 5 赋给变量 a 运算符左边的部分叫作 lvalue(left value),右边的部分叫作 rvalue(right value) 左边 lvalue 必须是一个变量 右边 rval…...
Cortex-M3/M4处理器的bit-band(位带)技术
ARM Cortex-M3/M4的位带(Bit-Band)技术是一种内存映射技术,它允许对单个位进行直接操作,而不需要对整个字(通常是32位)进行操作。这项技术主要用于对特定的位进行高效的读写,特别是在需要对GPIO…...
【TOP】IEEE旗下1区,影响因子将破8,3个月录用,CCF推荐,性价比高!
计算机类 ● 好刊解读 IEEE出版社、中科院2区TOP,CCF推荐,今天推荐的期刊可谓buff叠满,好刊质量靠谱,有意向评职晋升毕业作者可重点关注: 01 期刊简介 ✅出版社:IEEE ✅影响因子:7.5-8.0 ✅…...
赚钱游戏 2.0.1 版 (资源免费)
没有c编辑器的可以直接获取资源来玩 #include <iostream> #include <string> #include <windows.h> #include <conio.h> #include <fstream> #include <ctime> #include <time.h> #include <stdio.h> #include <cstring&g…...
服务调用-微服务小白入门(4)
背景 各个服务应用,有很多restful api,不论是用哪种方式发布,部署,注册,发现,有很多场景需要各个微服务之间进行服务的调用,大多时候返回的json格式响应数据多,如果是前端直接调用倒…...
代码随想录算法训练营第三十六天| 435. 无重叠区间、 763.划分字母区间、56. 合并区间
435 题目: 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 题目链接:435. 无重叠区间 - 力扣(LeetCode) 思路: …...
【AIGC调研系列】rerank3是什么
Rerank 3是一个针对企业搜索和检索辅助生成(RAG)系统优化的新型基础模型,它支持多语种、多结构数据搜索,并提供高精度的语义重排。通过这种方式,Rerank 3能够大幅提升响应准确度和降低延迟,同时大幅降低成本…...
Linux下网络编程基础知识--协议
网络基础 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 协议 一组规则, 数据传输和数据的解释的规则。 比如说依次发送文件的文件名, 文件的大小, 以及实际的文件, 这样规定发送一个文件的顺序以及发送的每一个部分的格式等可以算是一种协议 型协议 …...
在 VS Code 中使用 GitHub Copilot
Code 结合使用。 GitHub Copilot 是什么 GitHub Copilot 是一个可以帮助你更简单、更快速地编写代码的工具,由 GPT-3 提供支持。你只需编写所需代码的描述——例如,编写一个函数来生成一个随机数,或对一个数组进行排序——Copilot 就会为你…...
使用spring-ai快速对接ChatGpt
什么是spring-ai Spring AI 是一个与 Spring 生态系统紧密集成的项目,旨在简化在基于 Spring 的应用程序中使用人工智能(AI)技术的过程。 简化集成:Spring AI 为开发者提供了方便的工具和接口,使得在 Spring 应用中集…...
泛微OA单点登录配置全攻略:从零开始实现第三方系统免密登录
泛微OA单点登录深度实战:Token机制与系统集成最佳实践 对于企业IT架构师和运维团队而言,系统间的无缝衔接一直是提升工作效率的关键。想象一下这样的场景:销售人员在CRM系统中完成客户跟进后,无需反复登录就能直接跳转到OA系统提…...
BlueROV2进阶:巧用ArduSub参数配置实现多舵机协同控制
1. 从单舵机到多舵机协同的跨越 第一次用Pixhawk控制单个舵机转动时的兴奋感还记忆犹新,但当真正开始构建BlueROV2这样的水下机器人时,你会发现单一舵机控制远远不够。想象一下这样的场景:机械爪需要精准开合,云台要平稳转动&…...
3个核心功能:从效率瓶颈到资源整合的高效管理与智能处理指南
3个核心功能:从效率瓶颈到资源整合的高效管理与智能处理指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、核心价值解析:短视频下载工具的技术突破与应用价值 1.1 多平台适配能…...
从Pikachu靶场实战解析越权漏洞:原理、攻击与防御
1. 越权漏洞:Web安全的隐形杀手 第一次接触越权漏洞是在三年前的一次渗透测试中,当时客户系统有个"查看订单详情"的功能,我无意间发现修改URL中的订单ID就能看到别人的订单信息。这种看似简单的漏洞,实际上危害极大——…...
酷狗音乐API实战指南:解决音乐应用开发的三大核心痛点
酷狗音乐API实战指南:解决音乐应用开发的三大核心痛点 【免费下载链接】KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi 在构建现代音乐应用时,开发者常常面临歌词同步不精准、API接口分…...
云效流水线实战:从零部署Java应用到阿里云ECS(含完整脚本)
云效流水线实战:从零部署Java应用到阿里云ECS(含完整脚本) 在当今快节奏的软件开发环境中,自动化部署已成为提升团队效率的关键环节。阿里云云效平台提供的流水线功能,为开发者提供了一套完整的CI/CD解决方案ÿ…...
nanomsg性能基准测试终极指南:不同消息大小下的吞吐量对比分析
nanomsg性能基准测试终极指南:不同消息大小下的吞吐量对比分析 【免费下载链接】nanomsg nanomsg library 项目地址: https://gitcode.com/gh_mirrors/na/nanomsg nanomsg是一个轻量级、高性能的消息传递库,专为解决常见的通信模式而设计。作为na…...
别再只会调库了!用NumPy和Random手搓一个SMOTE算法,我踩过的坑都在这了
从零实现SMOTE算法:NumPy实战与关键问题解析 理解类别不平衡问题的本质 在数据科学和机器学习领域,我们经常会遇到类别分布严重不均衡的数据集。想象一下,你正在处理一个信用卡欺诈检测项目,正常交易记录可能有数百万条࿰…...
League-Toolkit:英雄联盟智能辅助工具全方位评测
League-Toolkit:英雄联盟智能辅助工具全方位评测 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的英雄联盟对…...
lychee-rerank-mm惊艳效果集:Qwen2.5-VL底座下BF16高精度打分可视化
lychee-rerank-mm惊艳效果集:Qwen2.5-VL底座下BF16高精度打分可视化 想象一下,你有一个包含数百张图片的图库,想快速找出所有“夕阳下的海边剪影”照片。传统方法要么靠记忆,要么一张张翻看,费时费力。现在࿰…...
