![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUDM3gDM40SN3UzMxQjMwETOykDM3EDMy0SO1kTN1gzLclDM3EDMy8CX5UTO1UDOvw1ZvxmYvwVbvNmLzd2bsJmbj5yNxAjMzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
<a href="https://beam.apache.org/get-started/quickstart-java/#set-up-your-development-environment">Set up your Development Environment</a>
<a href="https://beam.apache.org/get-started/quickstart-java/#get-the-wordcount-code">Get the WordCount Code</a>
<a href="https://beam.apache.org/get-started/quickstart-java/#run-wordcount">Run WordCount</a>
<a href="https://beam.apache.org/get-started/quickstart-java/#inspect-the-results">Inspect the results</a>
<a href="https://beam.apache.org/get-started/quickstart-java/#next-steps">Next Steps</a>
我这里为了方便大家快速入手,翻译并整理为中文。
本博文通过使用 Java SDK 来完成,你可以尝试运行在不同的执行引擎上。
获得一份 WordCount 管线代码拷贝最简单的方法,就是使用下列指令来生成一个简单的、包含基于 Beam 最新版的 WordCount 示例和构建的 Maven 项目:
Apache Beam 的源代码在 Github 有托管,可以到 Github 下载对应的源码,下载地址:https://github.com/apache/beam
然后,将其中的示例代码进行打包,命令如下所示:(这是最新稳定版本)(所以一般用这个)
这是官网推荐的
那是因为,最新的Bean为2.1.0。
这将创建一个叫 <code>word-count-beam</code> 的目录,其中包含了一份简单的 <code>pom.xml</code> 文件和一套示例管线,用来计算某个文本文件中的各个单词的数量。
一个 Beam 程序可以运行在多个 Beam 的可执行引擎上,包括 ApexRunner,FlinkRunner,SparkRunner 或者 DataflowRunner。 另外还有 DirectRunner。不需要特殊的配置就可以在本地执行,方便测试使用。
下面,你可以按需选择你想执行程序的引擎,即哪个runner后:
对引擎进行相关配置,确保你已经正确配置了该runner。
使用不同的命令:通过 --runner=<runner>参数指明引擎类型,默认是 DirectRunner;添加引擎相关的参数;指定输出文件和输出目录,当然这里需要保证文件目录是执行引擎可以访问到的,比如本地文件目录是不能被外部集群访问的。
运行示例程序,你的第一个WordCount 管线。
然后,你可以通过访问 http://<flink master>:8081 来监测运行的应用程序。
当程序运行完成后,你可以看到有多个文件以 count 开头,个数取决于执行引擎的类型。当你查看文件的内容的时候,每个唯一的单词后面会显示其出现次数,但是前后顺序是不固定的,也是分布式引擎为了提高效率的一种常用方式。
一旦管线完成运行,你可以查看结果。你会注意到有多个以 <code>count</code> 打头的输出文件。具体会有几个这样的文件是由 runner 决定的。这样能方便 runner 进行高效的分布式执行。
当你查看文件内容的时候,你会看到里面包含每个单词的出现数量。文件中的元素顺序可能会和这里看到的不同。因为 Beam 模型通常并不保障顺序,以便于 runner 优化效率。
Apache Beam 主要针对理想并行的数据处理任务,并通过把数据集拆分多个子数据集,让每个子数据集能够被单独处理,从而实现整体数据集的并行化处理。当然,也可以用 Beam 来处理抽取,转换和加载任务和数据集成任务(一个ETL过程)。进一步将数据从不同的存储介质中或者数据源中读取,转换数据格式,最后加载到新的系统中。
本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7610005.html,如需转载请自行联系原作者