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

Flink入门

目录

一、Flink简介

三、与传统数据处理架构相比

四、Flinik批处理数据基础代码

五、Flink流处理基础代码


一、Flink简介

Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数 据流进行状态计算。

二、为什么选择Flink

流数据更真实地反映了我们的生活方式

传统的数据架构是基于有限数据集的

低延迟 ➢ 高吞吐 ➢ 结果的准确性和良好的容错性

三、与传统数据处理架构相比

传统分析处理中,将数据从业务数据库复制到数仓,再进行分析和查询

 而有状态的流式处理

 

四、Flinik批处理数据基础代码

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.util.Collector;//批处理word count
public class WordCount {public static void main(String[] args) throws Exception{//创建执行环境ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();//从文件里读取数据String inputPath = "D:\\java\\Flink\\src\\main\\webapp\\resource\\hello.txt";DataSource<String> inputDataSet = env.readTextFile(inputPath);//对数据集进行处理,按空格分词展开,转换成(word,1)二元组进行统计DataSet<Tuple2<String,Integer>> resultSet = inputDataSet.flatMap(new MyflatMapper()).groupBy(0)  //按照第一个位置的word分组.sum(1);  //将第二个位置上的数据求和resultSet.print();}//自定义类,实现FlatMapFunction接口public static class MyflatMapper implements FlatMapFunction<String, Tuple2<String,Integer>>{@Overridepublic void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception {//按空格分词String[] words = s.split(" ");//遍历所有的word,包成二元组输出for (String word: words){collector.collect(new Tuple2<>(word,1));}}}}

五、Flink流处理基础代码

import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;//流处理(数据边来边处理)
public class StreamWordCount {public static void main(String[] args) throws Exception{//创建流处理执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//设置并行度为8env.setParallelism(8);//从文件中读取数据
//        String inputPath = "D:\\java\\Flink\\src\\main\\webapp\\resource\\hello.txt";
//        DataStream<String> inputDataStream = env.readTextFile(inputPath);//从KAFKA中读取流数据(监听端口号,边输入边处理)//用parameter tool工具从程序启动参数中提取配置项ParameterTool parameterTool = ParameterTool.fromArgs(args);String host = parameterTool.get("host");int port = parameterTool.getInt("port");DataStream<String> inputDataStream = env.socketTextStream(host,port);//基于数据流进行转换计算SingleOutputStreamOperator<Tuple2<String,Integer>> resultStream =inputDataStream.flatMap( new WordCount.MyflatMapper()).keyBy(0).sum(1);resultStream.print();//执行任务env.execute();}
}

相关文章:

Flink入门

目录 一、Flink简介 二、为什么选择Flink 三、与传统数据处理架构相比 四、Flinik批处理数据基础代码 五、Flink流处理基础代码 一、Flink简介 Apache Flink 是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数 据流进行状态计算。 二、为什么选择Flink 流数据更…...

【Go微服务开发】gin+grpc+etcd 重构 grpc-todolist 项目

写在前面 最近稍微重构了之前写的 grpc-todolist 模块 项目地址&#xff1a;https://github.com/CocaineCong/grpc-todoList 1. 项目结构改变 与之前的目录有很大的区别 1.1 grpc_todolist 项目总体 1.1.1 改变前 grpc-todolist/ ├── api-gatway // 网关模块 ├── ta…...

单板硬件设计:存储器SD卡( NAND FLASH)

在单板设计中&#xff0c;无论是涉及到一个简易的CPU、MCU小系统或者是复杂的单板设计&#xff0c;都离不开存储器设计&#xff1a; 1、存储器介绍 存储器的分类大致可以划分如下&#xff1a; ROM和RAM指的都是半导体存储器&#xff0c;ROM在系统停止供电的时候仍然可以保持数…...

C++实现日期类Date(超详细)

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…...

实验室检验系统源码,集检验业务、质量控制、报告、统计分析、两癌等模块于一体

云 LIS 系统针对区域化 LIS 而设计&#xff0c;依托底层云架构&#xff0c;将传统的 LIS 功能模块进行“云化”。 该系统是集检验业务、科室管理、质量控制、报告、统计分析、两癌等模块于一体的数据检验信息平台。通过计算机联网&#xff0c;实现各类仪器数据结果的实时自动接…...

学习RHCSA的day.03

目录 2.6 Linux系统的目录结构 2.7 目录操作命令 2.8 文件操作命令 2.6 Linux系统的目录结构 1、Linux目录结构的特点 分区加载于目录结构&#xff1a; 使用树形目录结构来组织和管理文件。整个系统只有一个位于根分区的一个根目录&#xff08;树根&#xff09;、一棵树。…...

电子邮件协议(SMTP,MIME,POP3,IMAP)

SMTP 关键词&#xff1a; 电子邮件协议:SMTP简单邮件传输协议&#xff0c;负责将邮件上传到服务器&#xff0c;采用TCP的25端口&#xff0c;C/S工作。仅传送ASCII码文本 详细介绍&#xff1a; SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上…...

Golang笔记:使用embed包将静态资源嵌入到程序中

文章目录 目的使用演示//go:embed 指令在WebServer中应用总结 目的 Golang编译程序默认是静态编译&#xff0c;会把相关的库都打包到一起&#xff0c;这在分发部署使用时非常方便。不过如果项目中用到的外部的静态资源文件&#xff0c;通常就需要将这些资源和程序一起拷贝分发…...

ImportError: cannot import name ‘OldCsv‘ from ‘pyflink.table.descriptors‘

我最近开始使用flink用于数据处理。 当我尝试执行table api 用于计数时 我不能导入OldCsv and FileSystem from pyflink.table.descriptors. I have also downloaded apache-flink using: pip install apache-flink [rootmaster flink]# pip3 list | grep flink apache-fli…...

YouCompleteMe(YCM)安装

vim在各个linux版本中是个比较好编辑器&#xff0c;反正nano我是用不惯。但这个ycm的安装也是不断的在变&#xff0c;现在的安装比之前要简单的多&#xff0c;基本个几命令就搞定了&#xff0c;而且 也不用关心系统里有没有vim,ycm已经可以自动安装。具体安装步骤如下&#xff…...

day33_css

今日内容 零、 复习昨日 一、CSS 零、 复习昨日 见代码 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML&#xff08;标准通用标记语言的一个应用&#xff09;或XML&#xff08;标准通用标记语言的一个子集&#xff09;等文…...

10个最流行的向量数据库【AI】

矢量数据库是一种将数据存储为高维向量的数据库&#xff0c;高维向量是特征或属性的数学表示。 每个向量都有一定数量的维度&#xff0c;范围从几十到几千不等&#xff0c;具体取决于数据的复杂性和粒度。 推荐&#xff1a;用 NSDT场景设计器 快速搭建3D场景。 矢量数据库&…...

vite3+vue3 项目打包优化二 —— 依赖分包策略

在没有配置构建工具的分包功能时&#xff0c;构建出来的文件将无比巨大且是独立的一个 js 和 css 文件&#xff08;如下图&#xff09;&#xff0c;这样本地加载文件时会存在巨大的压力。 默认情况下&#xff0c;浏览器重复请求相同名称的静态资源时&#xff0c;会直接使用缓存…...

中国社科院与美国杜兰大学金融管理硕士——与时间赛跑,充分利用每一分钟

不管你愿不愿意&#xff0c;时间总是在不经意间流去。林清玄在《和时间赛跑》中写道&#xff1a;“虽然我知道人永远跑不过时间&#xff0c;但是可以比原来快跑几步。那几步虽然很小很小&#xff0c;但作用却很大很大”。是的&#xff0c;我们需要与时间赛跑&#xff0c;充分利…...

什么是Dirichlet分布?

Dirichlet分布是一种概率分布&#xff0c;用于描述多维随机变量的概率分布。它是一个连续分布&#xff0c;通常用于处理具有多种可能取值的离散型随机变量。在LDA模型中&#xff0c;Dirichlet分布通常被用作先验分布&#xff0c;用来表示主题的概率分布和单词的概率分布。 Dir…...

web前端开发需要哪些技术?学前端顺序千万千万不要搞错啦!

宝子们&#xff0c;下午好&#xff0c;之前给大家分享了前端岗位的前景规划&#xff0c;小源看的出来&#xff0c;还是有不少宝子想入行前端的&#xff01; 那除了会面试&#xff0c;还要有充足丰富的知识储备&#xff0c;需要什么技术&#xff0c;怎么样做才能找到高薪工作呢&…...

【AFNetWorking源码(二)AFURLSessionManger和AFHTTPSessionManager】

前言 学习了Mananger的初始化和以GET请求为例的过程&#xff0c;发现整个过程离不开AFHTTPSessionManager和AFURLSessionManger的某些方法。这两个是AFN的重要的网络通信模块内容&#xff0c;对它们作揖详细的学习。 AFURLSessionManager和AFHTTPSessionManager都是AFNetwork…...

编程不头秃,Google「AI程序员」来了,聊天就能敲代码

上周 Google 在 I/O 大会宣布了一个能够辅助编程的聊天机器人 Codey&#xff0c;现在它终于上线 Google Colab 啦&#xff01; &#x1f31f; Codey 是基于 Google 目前最新的大语言模型 PaLM 2 运行&#xff0c;有着强大的语言理解和编程能力。 Codey 有这些功能&#xff1…...

【数据结构与算法】基础数据结构

文章目录 数组概述动态数组二维数组局部性原理越界检查 链表概述单向链表单向链表&#xff08;带哨兵&#xff09;双向链表&#xff08;带哨兵&#xff09;环形链表&#xff08;带哨兵&#xff09; 队列概述链表实现环形数组实现 栈概述链表实现数组实现应用 双端队列概述链表实…...

k8s系列(四)——资源对象

k8s系列四——资源对象 pod概念 思考&#xff1a;为什么k8s会引出pod这个概念&#xff0c;容器不能解决么&#xff1f; 我的理解&#xff1a;一组密切相关的服务使用容器的话&#xff0c;如果他们的镜像不在一个容器里的话&#xff0c;那么就需要配置反向代理进行通信&#xf…...

如何用ComfyUI ControlNet预处理器打造精准AI图像控制:从入门到精通

如何用ComfyUI ControlNet预处理器打造精准AI图像控制&#xff1a;从入门到精通 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 在AI图像生成的世界里&…...

3大核心功能解析:ArchivePasswordTestTool高效恢复加密压缩包密码

3大核心功能解析&#xff1a;ArchivePasswordTestTool高效恢复加密压缩包密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool ArchivePassw…...

技术解析 | TSMaster—CCP/XCP标定功能在汽车电子开发中的实战应用

1. 汽车电子开发中的标定技术基础 在汽车电子系统开发过程中&#xff0c;标定&#xff08;Calibration&#xff09;是一个至关重要的环节。简单来说&#xff0c;标定就是通过调整ECU&#xff08;电子控制单元&#xff09;中的参数&#xff0c;使车辆性能达到最优状态的过程。想…...

从零搭建工业级Java Agent:Claude Code架构拆解完整教程

引言&#xff1a;随着AI Agent技术的爆发&#xff0c;越来越多开发者想从0到1掌握Agent的设计与落地&#xff0c;但市面上大多教程停留在“概念讲解”&#xff0c;缺乏与真实项目结合的实操指导。本文基于Claude Code&#xff08;Java版&#xff09;项目&#xff0c;拆解12节渐…...

OpenClaw本地部署指南|nanobot镜像预置GPU监控Dashboard(Grafana+Prometheus模板)

OpenClaw本地部署指南&#xff5c;nanobot镜像预置GPU监控Dashboard&#xff08;GrafanaPrometheus模板&#xff09; 1. 项目简介 nanobot是一款受OpenClaw启发的超轻量级个人人工智能助手&#xff0c;仅需约4000行代码就能提供核心代理功能&#xff0c;比传统方案的代码量减…...

154W,确实可以封神了!!

去年DeepSeek爆火&#xff0c;生成式AI和大模型技术呈现爆发式增长&#xff0c;也让算法工程师重新成了炙手可热的岗位&#xff0c;岗位薪资远超很多运维、嵌入式、前后端岗位&#xff0c;在程序员中稳居前列。AI的快速发展也给很多程序员带来更多的机会&#xff0c;很多公司都…...

人形机器人行业日报:量产真的开始了,家庭服务机器人也开始抢跑

人形机器人行业日报&#xff1a;量产真的开始了&#xff0c;家庭服务机器人也开始抢跑 今天这波新闻不算多&#xff0c;但有两条还挺值得看。 一个关键词是量产。过去大家看人形机器人&#xff0c;更多还是看 demo、看跳舞、看翻跟头。现在不一样了&#xff0c;行业开始拿出更…...

低空防御新利器:轻型雷视一体低空探测系统

...

ADS实战:利用RFPro近场仿真精准定位微带电路耦合热点

1. 为什么需要近场仿真定位耦合热点&#xff1f; 微带电路设计中最头疼的问题&#xff0c;就是明明原理图仿真完美&#xff0c;实际布局后性能却突然恶化。上周我就遇到一个案例&#xff1a;某5G基站用的带通滤波器&#xff0c;在3.5GHz频段突然出现异常谐振&#xff0c;插损直…...

CSS如何控制图片对比度与亮度_使用filter属性进行滤镜处理

最稳妥写法是用包裹容器加 isolation: isolate&#xff1b;contrast() 和 brightness() 参数为数字或百分比&#xff0c;顺序影响效果&#xff0c;建议 brightness→contrast&#xff1b;图片模糊因GPU合成层子像素渲染降级&#xff0c;需偶数尺寸和避免多层滤镜。filter 的 co…...