Flink入门学习 | 大数据技术

简单说两句

✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:后端小知识CSDN后端领域新星创作者 |阿里云专家博主

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

Flink入门学习-WordCount

image-20240414195737021

我们今天来编写一个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();
    }
}

运行看结果

image-20240401232613214

提交到集群运行

启动集群后我们使用命令

flink run -c 类全限定路径名 jar文件 

flink run -c cn.wy.chapter02.WordCount FlinkDemo-1.0-SNAPSHOT.jar

image-20240401233542495

可以看到任务提交切运行成功了

我们进入web-ui界面

网址

http://localhost:8081/#/job/completed

界面如下图所示

image-20240401233753324

可以清晰的看到任务状态是FINISHED(完成)

任务执行成功了,我们的日志在哪看呢?

我们直接去TaskManager中看

image-20240401233949094

点击地址进去

image-20240401234102076这里就是结果啦

【都看到这了,点点赞点点关注呗,爱你们】😚😚

后端小知识关注引导

image-20240330155339598

💬

✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:后端小知识CSDN后端领域新星创作者 | 阿里云专家博主

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优化汽车制造中的库存管理

在拥有足够的库存以满足客户需求和最大限度地减少过剩库存之间取得适当的平衡&#xff0c;对于高效运营和正向现金流运营至关重要。我们将探讨如何利用数据见解和预测技术来支持汽车制造商进行精益运营&#xff0c;避免库存过多或不足的缺陷。 销售模式告诉我们什么&#xff1…

手拉手安装启动Kafka2.13

启动Kafka本地环境需Java 8以上 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xff09;是在现代网络上的许多社会功能的一个关键因素。 Kafka启动…

创新营销利器:淘宝扭蛋机小程序开发全解析

在数字化浪潮的推动下&#xff0c;淘宝扭蛋机小程序的开发成为了一种全新的购物体验。它巧妙地将传统扭蛋机的乐趣与移动技术的便捷相结合&#xff0c;为用户带来了前所未有的惊喜与互动。 淘宝扭蛋机小程序的开发&#xff0c;不仅是一次技术的革新&#xff0c;更是一次购物方…

c++中常用库函数

大小写转换 islower/isupper函数 char ch1 A; char ch2 b;//使用islower函数判断字符是否为小写字母 if(islower(ch1)){cout << ch1 << "is a lowercase letter." << end1; } else{cout << ch1 << "is not a lowercase lette…

Java单例集合

Collection接口介绍 Collection 表示一组对象&#xff0c;它是集中、收集的意思。Collection接口的两个子接口是List、Set接口。 Collection接口中定义的方法 方法说明boolean add(Object element)增加元素到容器中boolean remove(Object element)从容器中移除元素 boolean c…

【源码】2024全开源多语言多商户跨境商城源码|多语言跨境外贸电商系统App

ikTok SHOP跨境电商系统V8版是一套B2CB2B跨境电商商城系统源码&#xff0c;多商户多语言&#xff0c;全新百变DIY模板&#xff1b;该系统支持B-C自营、B-B-C第三方卖家系统、B2B批发电商模式&#xff1b;该源码是使用Laravel框架PHP开发的&#xff0c;前后端全开源可二开。 版…

行业模板|DataEase批发零售大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…

构建跨设备3D应用:HOOPS的跨平台开发能力

在当今数字化和可视化需求不断提升的时代&#xff0c;三维技术的应用越来越广泛&#xff0c;尤其在制造、建筑、工程及媒体行业。HOOPS&#xff0c;由Tech Soft 3D开发&#xff0c;是一套全面的软件开发工具包&#xff0c;用于构建高性能的三维应用程序。该工具包涵盖了从三维渲…

韩国ECS电子离心开关的安装和应用

韩国ECS电子式离心开关是一种新型的固体开关&#xff0c;其工作原理是通过采样电动机的电流、电压、相位等参数来判定电动机的启动转速。当电动机转速达到额定转速的72%~83%时&#xff0c;启动电容将被断开&#xff0c;使电动机启动运转。这种开关具有工作精确、可靠性高、一致…

【新特性】专为开发者设计的 Jira 个性化工作建议

开发者体验&#xff08;Developer Experience&#xff0c;简称 DX&#xff09;是指开发人员在使用工具、框架或平台时所体验到的整体感受和印象。类似于用户体验&#xff08;User Experience&#xff0c;简称UX&#xff09;&#xff0c;开发者体验关注的是开发者在他们的工作中…

DrugBAN:基于双线性注意力网络进行药物-靶点结合预测。

DrugBan&#xff1a;一种可解释的双线性注意力网络进行药物-靶点结合预测。 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 DrugBan&#xff1a;一种可解释的双线性注意力网络进行药物-靶点结合预测。前言一、模型…

gcn代码处理出现的问题

README 版本不一致 python 2.7 PYTHON 3.7 切换 TensorFlow系统的学习使用 数据集下载

yolo系列(之一)

深度学习经典检测算法 two-stage (两阶段) : Faster-rcnn Mask-Rcnn系列 &#xff08;输入图像---》CNN特征---》预选框---》输出结果&#xff09; one-stage (单阶段): YOLO系列 &#xff08;输入图像---》CNN特征---》输出结果&#xff09; one-stage的特点&#xff1a;&…

无人机GB42590接收端 +接收端,同时支持2.4G与5.8G双频WIFI模组

严格按照GB42590的协议开发的发射端&#xff0c;通过串口和模块通讯&#xff0c;默认波特率 921600。 http://www.doit.am/首页-深圳四博智联科技有限公司-淘宝网https://shop144145132.taobao.com/?spma230r.7195193.1997079397.2.71f6771dJHT2r0 二、接口文档 单片机和模…

Netron 显示每层输入shape

前言 我是用yolov5s直接export的onnx&#xff0c;用netron打卡&#xff0c;发现看不到每层的输入&#xff0c;又不想自己算。 步骤 1.准备好onnx 2 执行以下代码 import onnx onnx_ori"yolov5s.onnx" onnx_show"yolov5s_show.onnx" onnx_graph onnx.l…

MGRE-OSPF接口网络类型实验

OSPF接口网络类型实验 一&#xff0c;实验拓扑 初始拓扑&#xff1a; 最终拓扑&#xff1a; 二&#xff0c;实验要求及分析 要求&#xff1a; 1&#xff0c;R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2&#xff0c;R1/R4/R5为全连的MGRE结构&#xff0c;R…

sd sdxl diffusers GPU 显存 优化

# 使用 fp 16, 显存减少&#xff0c;速度提示 pipe StableDiffusionXLPipeline.from_single_file(modelPath,dtypetorch.bfloat16, variant"fp16", use_safetensorsTrue, load_safety_checkerFalse,device_map"auto")# VAE并发解码&#xff0c;改为串行&a…

九州金榜|孩子青春期应该如何家庭教育?

青春期&#xff0c;是一个人从儿童走向成年的重要过渡阶段&#xff0c;也是心理、生理发生巨大变化的时期。面对这一特殊时期的孩子&#xff0c;家庭教育显得尤为重要。那么&#xff0c;作为家长&#xff0c;我们该如何进行青春期孩子的家庭教育呢&#xff1f;九州金榜家庭教育…

基于springboot酒店管理系统的人事部门管理子系统

基于springboot酒店管理系统的人事部门管理子系统 前言 酒店管理系统的设计与实现-人事部门管理子系统&#xff0c;可以让用户在最短的时间里享受到最好的服务&#xff1b;而开发本系统&#xff0c;又能够提高系统整体工作水平&#xff0c;简化工作程序&#xff0c;这对管理员…

图片壁纸社区app前后端开源小程序源码 取图小程序源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 图片壁纸社区APP前后端开源小程序源码&#xff0c; 修改了开源版的前端样式&#xff0c;变成图片社区&#xff0c;也可以用来作为壁纸。 图片壁纸社区 APP 前后端开源小程序源码&am…