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

​阿里巴巴双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技术

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值