大数据统一的批处理和流处理标准 Apache Beam
Apache Beam 是 Apache 软件基金会越来越多的数据流项目中最新增添的成员,是 Google 在2016年2月份贡献给 Apache 基金会的孵化项目。
这个项目的名称表明了设计:结合了批处理(Batch)模式和数据流(Stream)处理模式。它基于一种统一模式,用于定义和执行数据并行处理管道(pipeline),这些管理随带一套针对特定语言的SDK用于构建管道,以及针对特定运行时环境的Runner用于执行管道。
Apache Beam 的主要目标是统一批处理和流处理的编程范式,为无限,乱序,web-scale的数据集处理提供简单灵活,功能丰富以及表达能力十分强大的SDK。Apache Beam项目重点在于数据处理的编程范式和接口定义,并不涉及具体执行引擎的实现,Apache Beam希望基于Beam开发的数据处理程序可以执行在任意的分布式计算引擎上。
关于Apache Beam SDK有四个主要的概念:
1、Pipeline:如果你曾经用过Spark,这有点类似于SparkContext。你所有的操作将开始于调度对象,你会用它来建立数据流从输入源,应用转换,并将结果写入输出下沉。
2、PCollection: PCollections类似于原始的Spark的弹性分布式数据集(RDD),它们包含一个潜在的无限数据流。这些信息都来源于输入源,然后应用转换。
3、Transforms: 一个操作PCollection处理步骤执行数据操作。典型的传递途径可能会在一个输入源有多个转换操作 (例如,将一组日志条目传入的字符串转换成一个键/值对,关键是IP地址和值是日志消息)。Beam SDK附带的一系列标准聚合建成的,当然,你可以定义根据自己的处理需求自定义。
4、I/O sources and sinks:最后,源和汇为你的数据提供输入和输出端点。
源码地址>>>
End.