beam整合flink

来源:互联网 发布:商品sku数据库设计 编辑:程序博客网 时间:2024/05/16 09:52

beam整合flink

Apache Beam概述

Apache Beam是一种开源的统一模型,用于定义批处理和流数据并行处理流水线。使用一个开源的Beam SDK,您可以构建一个定义管道的程序。然后,管道由Beam支持的分布式处理后端执行,其中包括Apache Apex,Apache Flink,Apache Spark和Google Cloud Dataflow。
beamSDK提供统一的编程模型,可以表示和转换任何大小的数据集,无论输入是来自批量数据源的有限数据集,还是来自流式数据源的无限数据集。

开发环境

-下载安装 JDK 7 或更新的版本,检测 JAVA_HOME环境变量
-下载 Maven 打包环境。

maven下载Wordcount示例代码

$ mvn archetype:generate \
-DarchetypeGroupId=org.apache.beam \
-DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
-DarchetypeVersion=2.1.0 \
-DgroupId=org.example \
-DartifactId=word-count-beam \
-Dversion=”0.1” \
-Dpackage=org.apache.beam.examples \
-DinteractiveMode=false

这将创建一个目录word-count-beam,其中包含一个简单pom.xml的一系列示例管道,用于计算文本文件中的单词。

查看下载好的示例代码

$ 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

如果要使用Flink runner的本地执行模式不必完成任何设置。
要了解您需要哪个版本的Flink,您可以运行此命令来检查项目使用的Flink依赖关系的版本:

$ mvn dependency:tree -Pflink-runner |grep flink

[INFO] | +- org.apache.flink:flink-streaming-java_2.10:jar:1.2.1:runtime

 <profile>  <id>flink-runner</id>  <!-- Makes the FlinkRunner available when running a pipeline. -->  <dependencies>    <dependency>      <groupId>org.apache.beam</groupId>      <artifactId>beam-runners-flink_2.10</artifactId>      <version>${beam.version}</version>      <scope>runtime</scope>    </dependency>  </dependencies></profile>

在Flink集群上执行管道

mvnpackagePflinkrunnerbeamQuickstartMaven使MavenShadejarPflinkrunnerFlinkRunner使 mvn exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Pflink-runner \
-Dexec.args=”–runner=FlinkRunner \
–inputFile=/path/to/pom.xml \
–output=/path/to/counts \
–flinkMaster=flinkmaster:6123 \
–filesToStage=target/word-count-beam–bundled-0.1.jar”

检查结果

$ ls /tmp/counts*

查看文件的内容时,您会看到它们包含唯一的单词和每个单词的出现次数。文件中元素的顺序可能会有所不同,因为Beam模型通常不保证排序,同样允许跑步者优化效率。

$ more /tmp/counts*
The: 1
api: 9
old: 4
Apache: 2
limitations: 1
bundled: 1
Foundation: 1

原创粉丝点击