首页 > 编程知识 正文

linux内核开源吗(开源疏流)

时间:2023-05-05 07:19:14 阅读:103284 作者:848

先进的统一编程模型

实现在任何执行引擎上运行的批处理和流数据处理作业。

Apache Beam:高级统一编程模型,可以在任何执行引擎上运行批处理和流数据处理作业。

Apache Beam是谷歌开源的统一编程框架。它本身不是一个流/批处理平台,而是提供了一个统一的编程模型,帮助用户创建自己的数据处理管道,实现可以在任何执行引擎上运行的批处理和流处理任务。它包含:

可以覆盖批处理和流处理的统一编程模型;Beam SDK,支持Java、Python和Go;一系列Runner(可以理解为“适配器”),使它们的编程模型运行在不同的底层处理引擎上(Google Cloud Dataflow、Spark、Flink等)。);

Apache Bean架构主要由:组成

Beamsdks Beams SDK定义了用于开发分布式数据处理任务的业务逻辑的API接口,即为上层应用的开发者提供统一的编程接口。开发人员可以通过Beams SDK的接口直接开发数据处理的处理流程,无论输入的是批量处理的有限数据集还是流式的无限数据集。对于有限或无限的输入数据,Beam SDK使用相同的类来表示,并使用相同的转换操作来处理它。

Pipeline是Beam的管道,通过它所有的批处理或流处理都将数据传输到后端计算平台。这条管道现在是独一无二的。可以切换多个数据源,计算平台或处理平台也支持多个数据源。需要注意的是,只有一个管道,用来连接数据和Runner平台。

Beam Pipeline Runner(Beam Pipeline Runner)是用户调用Beam SDK进行编译和转换的程序(管道)。当我们指定任何Runner时,程序将被转换为与Runner兼容并可以直接运行的程序。因此,在运行梁程序时,有必要在底部指出正确的流道类型。

用户通过Beam Model构建一个数据处理管道,调用Beam SDK API实现管道中的逻辑,即“编程实现”,然后将管道交给特定的Beam Runner进行编译,最后在分布式计算引擎上运行。执行引擎的选择取决于用户。

目前,Flink、Spark、Apex和谷歌的Cloud数据流都有支持Beam的Runner。

需要注意的是,尽管Apache Beam社区非常希望所有的Beam执行引擎都能够支持Beam SDK定义的全套功能,但在实际实现中可能无法满足这一期望。例如,基于MapReduce的Runner显然很难实现与流处理相关的功能特性。目前对Beam模型最好的支持是运行在谷歌云平台上的Cloud Dataflow和可以在非谷歌云上构建或部署的Apache Flink。当然,其他Runner也在追赶,整个行业都在朝着支持Beam模式发展。

Apache Beam官方网站:

https://beam.apache.org/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。