Flink的流、批处理

Flink的数据流处理,是持续流模型,数据不会落地,上游和下游的Task同时启动,等待数据的到达,Flink的批处理还是用的MapReduce计算模型,先处理map端,再执行reduce端。

flink的流处理(STREAMING):

是持续流模型,上游和下游的task任务同时启动,持续等待数据的到达,可以处理无界流和有界流,因为数据是一条条进行处理的,但是处理有界流的时候,打印出来的结果会显示多个(最终结果)
比如文本每行都有java,一共有java20,但是会打印java 8 ,java 10,java 20,显示多个最终结果

flink的批处理(BATCH):

底层还是MapReduce的计算模型,先处理map端,再处理reduce端,只能处理有界流
不能处理无界流, 因为执行的方式不同,MR不可能持续等待数据的到达,而是一次性批量的处理数据

代码展示如下:

java 复制代码
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

//TODO:无界流:程序开始之后,数据量是不确定的,没有边界,程序一直持续等待数据的到达
//     有界流:就是指数据量是确定的,比如一个文件,是知道具体的大小的

//todo:flink的流处理(STREAMING):是持续流模型,上游和下游的task任务同时启动,持续等待数据的到达,
// 可以处理无界流和有界流,因为数据是一条条进行处理的,但是处理有界流的时候,打印出来的结果会显示多个(最终结果)
// 比如文本每行都有java,一共有java20,但是会打印java 8 ,java 10,java 20,显示多个最终结果

//todo:flink的批处理(BATCH):底层还是MapReduce的计算模型,先处理map端,再处理reduce端,只能处理有界流
// 不能处理无界流, 因为执行的方式不同,MR不可能持续等待数据的到达,而是一次性批量的处理数据



public class flinkTest {
    public static void main(String[] args) throws Exception {
        //创建flink环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        //设置并行度
        env.setParallelism(2);
        //数据从上游发送到下游的缓存时间,默认也是200ms延迟
        env.setBufferTimeout(200);
        
        //数据读取,无界流
        //nc -lk 8888
        DataStreamSource<String> linesDSN = env.socketTextStream("master", 8888);
        linesDSN.print();

//        //数据读取,有界流,N是no代表无界,H是have代表有界
//           //设置为批处理的方式
//         env.setRuntimeMode(RuntimeExecutionMode.STREAMING);
//        DataStream<String> linesDSH = env.readTextFile("ScalaTest/src/main/java/data/score.txt");
//        linesDSH.print();

        //启动flink,execute会触发任务调度
        env.execute("w");


    }
}
相关推荐
大数据追光猿15 分钟前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
人类群星闪耀时2 小时前
物联网与大数据:揭秘万物互联的新纪元
大数据·物联网·struts
warrah7 小时前
flink-cdc同步数据到doris中
flink·doris
坚定信念,勇往无前7 小时前
Spring Boot中整合Flink CDC 数据库变更监听器来实现对MySQL数据库
数据库·spring boot·flink
桃林春风一杯酒8 小时前
HADOOP_HOME and hadoop.home.dir are unset.
大数据·hadoop·分布式
桃木山人8 小时前
BigData File Viewer报错
大数据·java-ee·github·bigdata
B站计算机毕业设计超人8 小时前
计算机毕业设计Python+DeepSeek-R1高考推荐系统 高考分数线预测 大数据毕设(源码+LW文档+PPT+讲解)
大数据·python·机器学习·网络爬虫·课程设计·数据可视化·推荐算法
数造科技9 小时前
紧随“可信数据空间”政策风潮,数造科技正式加入开放数据空间联盟
大数据·人工智能·科技·安全·敏捷开发
undo_try10 小时前
大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2)
flink·bigdata·paimon
逸Y 仙X12 小时前
Git常见命令--助力开发
java·大数据·git·java-ee·github·idea