Apache Flink 概述 | 青训营笔记

118 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第2天。

Apache Flink 概述 本次课程的内容包括: 1.大数据的发展背景及面临的问题,大数据解决方案的三驾马车; 2.Hadoop 发展历史:MapReduce 的概念; 3.流式计算概念; 4.Apache Flink 是什么?

1.大数据的发展背景及面临的问题: 对于大数据,我们讨论的就是在一个“数据爆炸”的时代下如何进行有效地大规模数据处理的问题。 大数据领域下,时效性分为两个方面:首先是,数据从用户请求到最终呈现的实时性,这条路径强调的是请求响应的及时性。 其次是数据从发生到处理、并最终产生业务价值的全链路时效性,这条路径强调的是数据链路及时性。 前者我们称之为交互式计算领域,后者我们称之为实时(流)计算领域。 大数据解决方案的三驾马车: Storm---Spark---Flink。

2.Hadoop 发展历史:MapReduce 的概念; mapreduce在hadoop体系里面充当一个计算者的角色,但如我们之前所演示一样我们在开启hdfs和yarn时都有相关的进程,但mapreduce就是没有的。mapreduce是直接运行在yarn上面的,对于hdfs,yarn和mapreduce三者的关系如下: 最底层的是hdfs,其作为存储的角色。在其之上的是yarn,这个是充当了资源调度和作业分配的角色。最后是mapreduce直接使用hdfs上的数据在yarn上进行计算。 而在mapreduce中,map对象和reduce对象是最为主要和重要的抽象类。对应的分别是大数据计算的两个阶段:map阶段和reduce阶段,中间还有一个shuffle过程。map我们可以理解为是一个映射关系,通过一个统一的规则将所有的数据转化成另外一种格式或者样式,我们会将单个原素转化成一个key,value的键值对方便后面的shuffle和reduce过程。而reduce可以理解为是一种聚合分组的概念,就是将相同的key的元素统一计算其value值。中间的shuffle过程可以理解为是一个数据重新分配的过程。

3.流式计算的概念 大数据的计算模式主要分为: 批量计算、流式计算、交互计算和图计算。 其中,流式计算和批量计算是两种主要的大数据计算模式,分别适用于不同的大数据应用场景。 Strom:Twitter 开发的第一代流处理系统。 Heron:Twitter 开发的第二代流处理系统。 Spark streaming:是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。 Flink:是一个针对流数据和批数据的分布式处理引擎。 Apache Kafka:由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。 流式处理可以用于两种不同场景: 事件流和持续计算。 (1)事件流 事件流能够持续产生大量的数据,事件流采用的是查询保持静态,语句是固定的,数据不断变化的方式。 (2)持续计算 比如对于大型网站的流式数据:网站的访问PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况等。