文档章节

Apache Beam Java SDK 快速开始

侯法超
 侯法超
发布于 2017/02/08 19:57
字数 778
阅读 442
收藏 1

原文链接:http://blog.geekidentity.com/beam/apache_beam_java_SDK_quickstart/

本快速入门将指导您完成第一个Beam pipeline,以便在您选择的runner 上运行使用Beam的Java SDK编写的WordCount。

  • 设置开发环境
  • 获取WordCount代码
  • 运行WordCount
  • 检查结果
  • 下一步

    设置开发环境

  1. 下载并安装Java 开发工具包(JDK)1.7或更高版本。 验证是否已设置JAVA_HOME环境变量并指向JDK 安装目录。
  2. 按照指定操作系统的Maven安装指南,下载并安装 Apache Maven

获取WordCount代码

 

获取WordCount pipeline 拷贝的最简单方法是使用以下命令生成一个简单的Maven项目,其中包含Beam的WordCount示例,并针对最新的Beam版本进行构建:

 

1

2

3

4

5

6

7

8

9

10

 

$ mvn archetype:generate \

-DarchetypeRepository=https://repository.apache.org/content/groups/snapshots \

-DarchetypeGroupId=org.apache.beam \

-DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \

-DarchetypeVersion=LATEST \

-DgroupId=org.example \

-DartifactId=word-count-beam \

-Dversion="0.1" \

-Dpackage=org.apache.beam.examples \

-DinteractiveMode=false

Maven 将创建目录word-count-beam,其中包含一个简单的pom.xml和一系列示例pipelines,用于文本文件中的字进行计数。

 

1

2

3

4

5

6

7

8

 

$ cd word-count-beam/

$ ls

pom.xml src

$ ls src/main/java/org/apache/beam/examples/

DebuggingWordCount.java WindowedWordCount.java common

MinimalWordCount.java WordCount.java

有关这些示例中使用的Beam概念的详细介绍,请参见WordCount示例演练。 这里,我们只关注执行WordCount.java。

运行WordCount

单个Beam pipeline 可以在Beam runners上运行,包括 ApexRunnerFlinkRunnerSparkRunner 和 DataflowRunner.。 DirectRunner是一个常用的入门指南,因为它在本地运行,不需要特殊的设置。

在选择要使用的runner 之后:

  1. 确保已完成任何特定于runner的设置。
  2. 构建命令行:
    1. 使用–runner = (默认为DirectRunner)指定特定runner
    2. 添加runner 运行所需的选项
    3. 选择runner 可以访问的输入文件和输出位置。 (例如,如果正在外部集群上运行pipeline ,则无法访问本地文件。)
  3. 运行你的第一个WordCount pipeline。
  4. 以Spark为例(其他示例请看官网文档):
 

1

2

 

$ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \

-Dexec.args="--runner=SparkRunner --inputFile=pom.xml --output=counts" -Pspark-runner

检查结果

一旦pipeline完成,你可以查看输出。 你会注意到可能有多个输出文件以count为前缀。 这些文件的确切数目由运行程序决定,使其能够灵活地执行高效的分布式执行。

 

1

 

$ ls counts*

当您查看文件的内容时,您会看到它们包含唯一字词和每个字词的出现次数。 文件中的元素的顺序可能不同,因为beam 模型通常不保证排序,以再次允许runner 优化效率。

 

1

2

3

4

5

6

7

8

9

10

 

$ more counts*

beam: 27

SF: 1

fat: 1

job: 1

limitations: 1

require: 1

of: 11

profile: 10

...

下一步

如果您遇到任何问题,请随时与我们联系!

© 著作权归作者所有

侯法超
粉丝 154
博文 57
码字总数 105341
作品 0
大兴
程序员
私信 提问
Apache Beam 0.6.0,大数据批处理和流处理标准

Apache Beam 0.6.0 发布了,该版本为 Python 编程语言引入了一个新的 SDK。 此外,该版本为 Apache HBase 在 Java SDK 中添加了一个新的 IO 链接器,以及一些常见的错误修复和改进。 最后,还...

局长
2017/03/18
911
0
Apache Beam 2.9.0 发布,大数据批处理和流处理标准

Apache Beam 2.9.0 发布了。Apache Beam 是 Google 在2016年2月份贡献给 Apache 基金会的项目,主要目标是统一批处理和流处理的编程范式,为无限、乱序、web-scale 的数据集处理提供简单灵活...

局长
2018/12/16
0
0
Apache Beam 0.5.0 发布,大数据批处理和流处理标准

Apache Beam 0.5.0 发布了,Apache Beam 是 Google 在2016年2月份贡献给 Apache 基金会的项目,主要目标是统一批处理和流处理的编程范式,为无限,乱序,web-scale的数据集处理提供简单灵活,...

王练
2017/02/10
1K
0
玩转KafkaIO与Flink

随着大数据 2.0 时代悄然到来,大数据从简单的批处理扩展到了实时处理、流处理、交互式查询和机器学习应用。近年来涌现出诸多大数据应用组件,如 HBase、Hive、Kafka、Spark、Flink 等。开发...

微笑向暖wx
2018/09/28
0
0
Apache Beam WordCount编程实战及源码解读

概述:Apache Beam WordCount编程实战及源码解读,并通过intellij IDEA和terminal两种方式调试运行WordCount程序,Apache Beam对大数据的批处理和流处理,提供一套先进的统一的编程模型,并可...

xiaomin0322
05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

枚举 创建/获取key,name,list

创建枚举 public enum MessageTypeEnum { // 类型:0.一般消息,1.公告消息,2交易消息,3.活动消息,4.其他消息 type_general("一般消息", "0"), type_ann("公告消息", "1")......

龘游戏人生龘
9分钟前
0
0
Linus 本尊来了!为什么 KubeCon 越来越火?

阿里妹导读: 从200人的小会议到3500 多位云原生和开源领域工程师齐聚一堂的大会,KubeCon 只用了四年,昨天,在KubeCon China 2019 上阿里巴巴宣布开源 OpenKruise,今天,Linus 本尊竟然现...

阿里云云栖社区
45分钟前
3
0
五小时构建云原生电商平台 | KubeCon SOFAStack Workshop 详解

本文根据 KubeCon China 2019 同场活动 SOFAStack Cloud Native Workshop 内容整理, 文末包含文档、PPT 地址,欢迎试用和提出建议。 2019 年 6 月 25 日,在 KubeCon China 2019,全球知名开...

SOFAStack
46分钟前
6
0
跨平台开发框架DevExtreme v19.1.4正式发布|附下载

DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。D...

FILA6666
47分钟前
2
0
数据库链接断开 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

报错信息如下: Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 97,130 mill......

为了美好的明天
54分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部