标题 | 基于Apache Beam的大数据实验教学方案的设计 |
范文 | 申海杰 田新志 陈晓范 摘要:為提供具有前沿性的计算机课程实验,针对新一代大数据技术,设计并实现了基于Apache Beam的大数据实验教学方案。该方案在可以使学生们清楚地了解 Beam 的运用原理。 关键词:大数据;Apache Beam;实验教学 中图分类号:G424? ? ? ? 文献标识码:A? ? ? ? 文章编号:1009-3044(2019)01-0158-02 1 引言 随着大数据 2.0 时代悄然到来,大数据从简单的批处理扩展到了实时处理、流处理、交互式查询和机器学习应用。早期的处理模型 (Map/Reduce) 早已经力不从心,而且也很难应用到处理流程长且复杂的数据流水线上。面对这种情况,Google 在 2017 年 5 月2发布了其开源大数据流水线产品Apache Beam的第一个稳定版本 2.0.0[1]。 Apache Beam是一个开源的统一的编程模型,我们可以使用它来创建数据处理管道。Beam对于尴尬并行数据处理任务特别有用,其中问题可以被分解为可以独立和并行处理的许多较小的数据束[2]。 2 实验方案 为了让学生有效地了解和掌握Beam的运行原理,我们精心设计了实验方案,精简地说明如下。 本实验方案通过在选定一个的 runner 上运行一个由 Beam 的 Java SDK 编写的 WordCount 示例,演示Beam 的运用原理。 第一步是搭建一个管道(Pipeline)。 第二步是让管道有一个处理框架,也就是Runtimes 。 第三步也是 Beam 最后一个重要的地方,就是模型 (Model),通俗点讲就是我们的数据来源。 最后一步是处理结果,实验者可以根据自己的需求处理。 2.1 配置开发环境 第一步 ,从网上下载并安装 Java Development Kit (JDK) 1.7 或更高版本。并配置 JAVA_HOME 环境变量,确认已经设置并指向 JDK 安装目录。如图1所示。 第二步,按照 Maven 的 安装指南 下载并安装适合JDK所在的操作系统的 Apache Maven 。这个步骤,安装的界面较多,这里就不赘述了。 2.2 实验代码 获得一份 WordCount 管线代码拷贝最简单的方法,就是使用下列指令来生成一个简单的、包含基于 Beam 最新版的 WordCount 示例和构建的 Maven 项目,操作指令如图2所示。 2.3 运行实例 一个单 Beam 管线可以运行于多种 Beam runner 上,包括 ApexRunner、FlinkRunner、SparkRunner 或 DataflowRunner 等[3]。 用 --runner=<runner> 选项指定选定的 runner (缺省为 DirectRunner) 运行WordCount 管线。 2.4 实验结果 管线完成运行的结果会发现生成多个以 count 打头的输出文件。具体会有几个这样的文件是由 runner 决定的。这样能方便 runner 进行高效的分布式执行。当查看文件内容的时候,会看到里面包含每个单词的出现数量。文件中的元素顺序可能会和这里看到的不同。因为 Beam 模型通常并不保障顺序,以便于 runner 优化效率[4]。 3 结束语 通过以上实验可以看到,利用 Beam 的模型,不需要编写复杂的逻辑,就可以灵活地/优雅地处理流处理计算过程中出现的一些棘手场景。Apache Beam 是集成了很多数据模型的一个统一化平台,它为大数据开发人员频繁换数据源或多数据源、多计算框架提供了集成统一框架平台。 参考文献: [1]? Apache Beam Team. Apache Beam Quickstart.[EB/OL].(2017-3-21). https://beam.apache.org/get-started/quickstart-java/ [2]? Apache Beam实战指南之基础入门[EB/OL].(2017-10-9). https://juejin.im/entry/59db31806fb9a00a53279ca6 [3]? Google 大数据引擎 Apache Beam Java SDK 快速入门[EB/OL].(2017-1-23). https://www.jianshu.com/p/283a8c8edef7 [4] Beam从零开始.[EB/OL].(2017-1-19). https://blog.csdn.net/qq_23660243/article/details/54614167 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。