Flink 在实时计算中的应用场景

MacAdamZara 发布于1月前
0 条问题

大数据计算分为离线计算和实时计算,离线计算就是我们通常说的批计算,代表是Hadoop MapReduce、Hive等大数据技术,实时计算也被称作流计算,代表是Storm、Spark Streaming、Flink等大数据技术。

计算引擎也在不断更新迭代,下图展示的是每一代计算引擎的代表,从第一代的Hadoop MapReduce,到第二代的Spark,再到第三代的Flink技术,从批处理到微批,再到真正的流式计算。

Flink 在实时计算中的应用场景

(图一:计算引擎的更新迭代)

随着我们对数据的实时性要求越来越高,实时计算在实际工程中的应用也越来越广泛。其中流式计算的典型代表是Storm和Flink技术。Flink和Storm数据处理的延迟都是亚秒级低延迟,但是Flink相比Storm还有其他的一些优势,比如支持exactly once语义,确保数据不会重复,但是Storm支持at least once语义,保证数据不会丢失,但是保证数据不会重复的代价很高,比如数据下游操作属于幂等操作;另外从测试结果来看,Flink在低延迟的基础上还能保证高吞吐,优势明显。所以我们今天介绍下,Flink在实时计算中的应用。

什么是实时计算?

实时计算是相对离线计算的概念,重要是时效性。举个例子,我们知道离线计算通常是天级别的计算任务,比如统计一天的新增用户,商品销量,销售收入等。但是实时计算是只要有事件发生,统计结果就会发生变化,比如有一个新用户注册登录了,那么我们的新增用户数就发生了变化,商品只要新增一个销售,销量就会发生变化,销售收入也会变化。所以实时计算让我们能更及时了解我们的现状,以及根据实时的统计结果做出决策,决策也更加具有时效性。

Flink介绍

Apache Flink是一个开源的流处理框架,应用于分布式、高性能、高可用、准确的数据流应用程序,可以处理有边界和无边界的数据流。无边界的数据流就是真正意义上的流数据,所以Flink是支持流计算的,有边界的数据流就是批数据,所以Flink也是支持批处理的,不过Flink在流处理上的应用比在批处理上的应用更加广泛,统一批处理和流处理也是Flink目标之一。

Flink在实时计算中的应用类型

Flink 在实时计算中的应用场景

(图二:Flink实时计算的主要应用场景)

1.实时BI

对于淘宝和考拉这种电商场景,有着海量的在线交易和用户数据,实时计算不同维度的数据统计数据对于指导运营有很大的帮助。

实时BI系统的流程:在线服务系统和数据库会产生大量的日志数据,通过日志收集工具采集到消息队列比如Kafkka,FlinkJob实时读取处理这些数据,然后将各种统计结果实时写到Mysql或者Hbase中,通过可视化技术,运营用户可从DashBoard中实时看到各个维度的统计分析结果。

最直观的例子就是双十一的实时GMV成交额,大屏实时显示最新的销售总额,看似一个简单的数据,背后需要Flink平稳、精准的计算。

2.实时数仓

离线计算阶段,我们的数据仓库都是非实时的,通常是天级别或者小时级别的ETL作业,通过MapReduce,将数据进行批处理,将数据load到hive分区表。但是离线建立的数据,时间上具有延迟性,天任务的ETL,只能到第二天才能对前一天的数据进行查询和计算。如果希望可以查询到实时数据,实时的ETL就显的尤为必要。

通过Flink,可以实时将数据进行处理,load到Hive表,从而实现实时数仓的搭建,数据实时可查询。

3.在线模型

传统的离线机器学习需要T+1的分析用户的历史行为,训练模型,第二天上线,但是用户的需求和预期可能已经发生了改变,因此模型的实时性就显得尤为重要。我们知道,机器学习的特征一般都是通过复杂计算得到的,所以提取特征需要大量的计算任务。FlinkJob通过实时的日志,根据需求提取需要的特征,并在线上使用最新的特征和结果数据,增量训练模型,从而达到在线机器学习的目的。

在线模型的计算更加密集和复杂,而这些正是Flink的优势所在。通过在线学习,模型也会更加实时,可以给用户带来更好的使用体验。

4.实时监控

监控系统一般采集的数据量都是巨大的,通过参数的一些阈值设定,实时报警,Flink在这类场景中也有应用。

通过用户的实时行为数据,我们可以做到实时监控。比如广告系统的实时反作弊,美团、招商等运营活动的实时反薅羊毛都是实时计算的案例,Flink在其中也能发挥巨大的价值。

上面只是介绍了Flink实时计算的一些主要的应用场景,其实更多的应用场景还有待我们发掘。

 

大侠,长按二维码保留联络点

Flink 在实时计算中的应用场景

查看原文: Flink 在实时计算中的应用场景

  • brownrabbit
  • yellowkoala
  • redlion
  • reddog
  • bigbutterfly
  • whitedog
  • silverdog
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。