美文网首页
Flink实时流计算入门系列(一)

Flink实时流计算入门系列(一)

作者: 晨冉1688 | 来源:发表于2020-05-14 06:58 被阅读0次

    ​阿里巴巴双11大屏在峰值期间可以承担每秒超过4.72亿次的访问,这是多高的访问量……为什么学习Flink?

    image

    这几年大数据的飞速发展,出现了很多热门大数据计算框架,著名的Hadoop、Storm、Spark,他们都专注于各自的应用场景。

    Spark掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展。Spark 的火热或多或少的掩盖了其他分布式计算的系统身影。就像 Flink,也就在这个时候默默的发展着。

    Flink认为有界数据集是无界数据流的一种特例,所以说有界数据集也是一种数据流,事件流也是一种数据流。

    在国外一些社区,有很多人将大数据的计算引擎分成了4 代,当然也有很多人不会认同。

    • 第1代——Hadoop MapReduce

    • 第2代——DAG框架(****Tez****) + MapReduce

    • 第3代——Spark

    • 第4代——Flink

    随着业务场景的复杂程度增加、实时性能要求的提高,SparkStreaming微批次准实时计算在一定程度上满足不了业务需求,Flink在实时流计算的性能尤为显著,随着阿里的广泛使用,Flink已成为当前流计算领域的首选架。

    快速入门 Flink 应用程序结构主要包含三部分,Source/Transformation/Sink

    • Source: 数据源,Flink 在流处理和批处理上的 source 大概有 4 类:

    • 基于本地集合的 source

    • 基于文件的 source

    • 基于网络套接字的 source

    • 自定义的 source。自定义的 source 常见的有 Apache kafka、Amazon Kinesis Streams、RabbitMQ、Twitter Streaming API、Apache NiFi 等,当然你也可以定义自己的 source。

    • Transformation:数据转换的各种操作,有 Map / FlatMap / Filter / KeyBy / Reduce / Fold / Aggregations / Window / WindowAll / Union / Window join / Split / Select / Project 等,操作很多,可以将数据转换计算成你想要的数据。

    • Sink:接收器,Flink 将转换计算后的数据发送的地点 ,你可能需要存储下来,Flink 常见的 Sink 大概有如下几类:

    • 写入文件、

    • 打印输出、

    • 写入 socket 、

    • 自定义的 sink 。自定义的 sink 常见的有 Apache kafka、RabbitMQ、MySQL、ElasticSearch、Apache Cassandra、Hadoop FileSystem 等,同理你也可以定义自己的 Sink。

    Flink批处理入门示例

    Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时的处理些实时数据流,实时的产生数据流结果,只要数据源源不断的过来,Flink 就能够一直计算下去。

    通过flink来读取本地文件,实现单词统计功能,把统计结果写入本地文件中,体现flink的批处理。效果如下,左边为源文件,右边为统计结果

    image

    编程步骤:
    一、建立maven项目,添加相关依赖

     <properties>
    

    实现单词统计主要代码

    object BathchFromFiles {
    

    运行效果图:

    image

    往期精彩

    觉得还不错的话欢迎关注公号:一点IT技术

    "转发和分享是对作者最大的支持及鼓励"

    相关文章

      网友评论

          本文标题:Flink实时流计算入门系列(一)

          本文链接:https://www.haomeiwen.com/subject/epkznhtx.html