作家
登录

Apache Beam 剖析

作者: 来源: 2017-04-11 11:01:11 阅读 我要评论

  1. $ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \  
  2. -Dexec.args="--runner=SparkRunner --inputFile=pom.xml --output=counts" -Pspark-runner 

1.概述

在大年夜数据的海潮之下,技巧的更新迭代十分频繁。受技巧开源的影响,大年夜数据开辟者供给了十分丰富的对象。但也因为如斯,增长了开辟者选择合适对象的难度。在大年夜数据处理一些问题的时刻,往往应用的技巧是多样化的。这完全取决于营业需求,比如进行批处理的MapReduce,及时流处理的Flink,以及SQL交互的Spark SQL等等。而把这些开源框架,对象,类库,平台整合到一路,所须要的工作量以及复杂度,可想而知。这也是大年夜数据开辟者比较头疼的问题。而今天要分享的就是整合这些资本的一个解决筹划,它就是 Apache Beam。

2.内容

Apache Beam 最初叫 Apache Dataflow,由谷歌和其合作伙伴向Apache捐赠了大年夜量的核心代码,并创建孵化了该项目。该项目标大年夜部分大年夜率攀来自于 Cloud Dataflow SDK,其特点有以下几点:

  • 同一数据批处理(Batch)和流处理(Stream)编程典范式
  • 能运行在任何可履行的引擎之上

那 Apache Beam到底能解决哪些问题,它的应用处景是什么,下面我们可以经由过程一张图来解释,如下图所示:


经由过程改图,我们可以很清楚的看到全部技巧的成长流向;一部分是谷歌派系,另一部分则是Apache派系。在开辟大年夜数据应用时,我们有时刻应用谷歌的框架,API,类库,平台等,而有时刻我们则应用Apache的,比如:HBase,Flink,Spark等。而我们要整合这些资本则是一个比较头疼的问题,Apache Beam 的问世,整合这些资本供给了很便利的解决筹划。

2.1 Vision

下面,我们经由过程一张流程图来看Beam的运行流程,如下图所示:

经由过程上图,我们可以清跋扈的知道,履行一个流程分以下步调:

  1. End Users:选择一种你熟悉的编程说话提交应用
  2. SDK Writers:该编程说话必须是 Beam 模型支撑的
  3. Library Writers:转换成Beam模型的格局
  4. Runner Writers:在分布式情况下处理并支撑Beam的数据处理管道
  5. IO Providers:在Beam的数据处理管道上运行所有的应用
  6. DSL Writers:创建一个高阶的数据处理管道

2.2 SDK

Beam SDK 供给了一个同一的编程模型,来处理随便率性范围的数据集,个中包含有限的数据集,无穷的流数据。Apache Beam SDK 应用雷同的类来表达有限和无穷的数据,同样应用雷同的转换办法对数据进行操作。Beam 供给了多种 SDK,你可以选择一种你熟悉的来建立数据处理管道,如上述的 2.1 中的图,我们可以知道,今朝 Beam 支撑 Java,Python 以及其他待开辟的说话。

2.3 Pipeline Runners

在 Beam 管道上运行引擎会根据钠揭捉?择的分布式处理引擎,个上钩容的 API 转换你的 Beam 法度榜样应用,让你的 Beam 应用法度榜样可以有效的运行在指定的分布式处理引擎上。因而,当运行 Beam 法度榜样的时刻,你可以按照本身的需求选择一种分布式处理引擎。当前 Beam 支撑的管道运行引擎有以下几种:

  • Apache Apex
  • Apache Flink
  • Apache Spark
  • Google Cloud Dataflow

然后,将个中的示例代码进行打包,敕令如下所示:

3.示例

本示例经由过程应用 Java SDK 来完成,你可以测验测验运行在不合的履行引擎上。

3.1 开辟情况

  • 下载安装 JDK 7 或更新的版本,检测 JAVA_HOME情况变量
  • 下载 Maven 打包情况。

关于上述的安装步调,并不是本篇博客的重点,这里笔者就不多赘述了,不明白的可以到官网翻阅文档进行安装。

3.2 下载示例代码

Apache Beam 的源代码在 Github 有托管,可以到 Github 下载对应的源码,下载地址:https://github.com/apache/beam

  1. $ mvn archetype:generate \ 
  2.       -DarchetypeRepository=https://repository.apache.org/content/groups/snapshots \ 
  3.       -DarchetypeGroupId=org.apache.beam \ 
  4.       -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \ 
  5.       -DarchetypeVersion=LATEST \ 
  6.       -DgroupId=org.example \ 

  7.   推荐阅读

      Gradle for Android 第四篇( 构建变体 )

    当你在开辟一个app,平日你会有几个版本。大年夜多半情况是你须要一个开辟版本,用来测试app和弄清它的质量,然后还须要一个临盆版本。这些版本平日有不合的设置,例如不合的URL地址。更可>>>详细阅读


    本文标题:Apache Beam 剖析

    地址:http://www.17bianji.com/lsqh/34709.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)