当前位置: 首页 > 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();}
}

http://www.lryc.cn/news/69219.html

相关文章:

  • 【Go微服务开发】gin+grpc+etcd 重构 grpc-todolist 项目
  • 单板硬件设计:存储器SD卡( NAND FLASH)
  • C++实现日期类Date(超详细)
  • 实验室检验系统源码,集检验业务、质量控制、报告、统计分析、两癌等模块于一体
  • 学习RHCSA的day.03
  • 电子邮件协议(SMTP,MIME,POP3,IMAP)
  • Golang笔记:使用embed包将静态资源嵌入到程序中
  • ImportError: cannot import name ‘OldCsv‘ from ‘pyflink.table.descriptors‘
  • YouCompleteMe(YCM)安装
  • day33_css
  • 10个最流行的向量数据库【AI】
  • vite3+vue3 项目打包优化二 —— 依赖分包策略
  • 中国社科院与美国杜兰大学金融管理硕士——与时间赛跑,充分利用每一分钟
  • 什么是Dirichlet分布?
  • web前端开发需要哪些技术?学前端顺序千万千万不要搞错啦!
  • 【AFNetWorking源码(二)AFURLSessionManger和AFHTTPSessionManager】
  • 编程不头秃,Google「AI程序员」来了,聊天就能敲代码
  • 【数据结构与算法】基础数据结构
  • k8s系列(四)——资源对象
  • JavaScript如何使用for循环
  • (浙大陈越版)数据结构 第三章 树(上) 3.1 树和树的表示
  • 平抑风电波动的电-氢混合储能容量优化配置(Matlab代码实现)
  • #机器学习--重新看待线性回归
  • 亚马逊,shopee,lazada卖家如何组建自己的测评团队
  • flink cdc 用mybatis-plus写到mysql5.6
  • 【C++】模板的一点简单介绍
  • SpringCloud概述
  • Metal入门学习:GPU并行计算大数组相加
  • 关于在spyder,jupyter notebook下创建虚拟环境(pytorch,tensorflow)均有效
  • oracle 闪回恢复