作者:禅与计算机程序设计艺术
随着互联网、移动互联网、物联网等新型网络技术的不断发展,企业对海量数据的处理日益依赖,而大数据分析、决策支持、风险控制等领域都需要海量的数据处理能力。如何高效、快速地处理海量数据、提升处理效率、降低成本,是当下处理大规模复杂数据集的关键技术之一。在大数据平台架构方面,Apache Hadoop 已成为事实上的“王者”,但 Hadoop MapReduce 的并行计算模型过于底层,无法满足复杂多变的实时分析场景需求;Spark 更是流行起来,但 Spark 在分析任务中占用资源过多,速度慢、易出错;基于流处理框架的 Apache Storm、Samza 也都具有优秀的实时计算特性,但它们都是批处理框架,只能用于离线计算或一些简单的实时计算任务。因此,针对目前各类大数据平台的特点及其局限性,加上开源社区近几年发展的蓬勃发展态势,基于流处理框架的 Apache Flink 应运而生。 Flink 是什么?它是一种开源的分布式流处理框架,具备高吞吐量(Throughput)、低延迟(Latency)、Exactly Once 和 Fault-Tolerance(容错性)等特征,可用于对实时、离线数据进行高吞吐量、低延迟、精确一次的计算和分析。它的关键创新点有:
- 数据处理模型与编程接口:Flink 提供丰富的数据处理模型,包括 DataStream API、DataSet API、Table API、SQL 等,支持 Java/Scala/Python/R 语言编写程序,同时提供了对应的 IDE 插件支持方便开发;
- 流水线架构:Flink 采用流水线架构,将数据流分为多个阶段并行处理,实现了较
版权归原作者 禅与计算机程序设计艺术 所有, 如有侵权,请联系我们删除。