Apache Beam 项目

本页面包含 Google 文档季接受的技术写作项目的详细信息。

项目摘要

开源组织:
Apache Beam
技术文档工程师:
Sruthi Sree Kumar
项目名称:
更新了运行时比较页面 / 功能矩阵
项目时长:
标准时长(3 个月)

Project description

Apache Beam 是一个统一的平台,用于定义批处理和流处理流水线。借助 Apache Beam,您可以定义一个模型来表示和转换数据集,而不受任何特定数据处理平台的影响。定义完毕后,您可以在任何受支持的运行时框架(运行程序)上运行它,包括 Apache Apex、Apache Flink、Apache Spark 和 Google Cloud Dataflow。Apache Beam 还附带不同的 SDK,可让您使用 Java、Python 和 GO 等编程语言编写流水线。

我提交了“更新了运行程序比较页面/功能矩阵”的 GSOD 申请。由于 Apache Beam 支持多个运行程序和 SDK,因此新用户在选择它们时会感到困惑。当前文档中介绍了各种运行程序,非常简要地介绍了运行程序。我的想法是在特定运行程序文档页面上添加有关每个运行程序的更多详细信息。此外,我想更新字数统计示例项目的说明,添加详细说明。为此,我打算在本地计算机上尝试每个字数统计示例,看看是否缺少一些步骤,并对该流程进行更多说明。我还注意到,运行程序的文档没有遵循任何模式(很少有概览部分,而其他部分则以使用方法、前提条件或一些随机标题开头)。我会更新所有这些内容,使其遵循一种简单的模式。

我计划添加一个新页面来介绍每位跑者,并为他们提供描述性旁白 [BEAM-3220]。从此页面,用户可以重定向到每个运行程序和功能矩阵的详细说明页面。我还计划在此处添加每个跑步者的描述性比较。目前,我在撰写硕士论文时使用 Beam NEXMark 对 Flink 运行程序进行基准测试。我完全了解 NEXMark 基准化分析,因此我想在此处添加每个运行程序在批处理和流处理模式下的基准化分析结果(BEAM-2944)。如果发现缺少/ 移除了任何参数/配置,我也会更新 NEXMark 文档。之前,当我使用 Flink 运行程序时,由于文档中缺少其中一个参数,我最初遇到了问题。不过,现在我对 NEXMark 代码库更加熟悉,因此更容易对运行程序进行基准测试并添加指标。在同一页面中,我想简要总结一下每个运行程序的正式版就绪情况。

在当前文档中,每个运行程序说明页面都包含对传统/便携式运行程序的支持。我认为最好将所有这些信息集中在一个位置,例如在功能矩阵或新添加的说明页面中。此外,目前,可移植性支持是在单独的 Google 表格中维护的,我希望将其合并到兼容性矩阵中。https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0)。在此任务中,我计划添加 BEAM-2888 中提及的所有重大/次要更正。

我认为 GSoD 是参与开源贡献的绝佳机会。我将继续为开源项目(尤其是 Beam)做出贡献,并希望继续成为活跃的社区成员。由于 Apache Beam 拥有活跃的社区,并且不断开发新功能,因此我认为文档总有改进的空间,以便及时更新。此外,我也愿意为开发工作贡献力量。我刚开始使用 Beam 时,一直得到社区的帮助,因此如果我对 Beam 有扎实的知识,也可以帮助用户社区。

我认为自己适合开展此项目,原因如下:

  1. 我是一名分布式系统爱好者,正在尝试了解数据处理系统的内部结构。
  2. 我有使用 Apache Beam 和 Apache Flink 的用户经验。
  3. 作为开发者,我已经了解 Apache Beam 和 Apache Flink 代码库。
  4. 我完成了一个项目,比较了不同的光束跑步器。
  5. 我有撰写技术博客来解释大数据处理和分布式系统概念的经验。
  6. 目前,我正在撰写硕士论文,旨在提升 Apache Flink 状态后端的性能,为此我使用 Apache Beam NEXMark 实现进行了基准测试,并参与了更新 Apache Beam 文档的工作。
  7. 我有 4 年的软件开发工作经验,撰写过多份技术设计文档、产品文档和自述文件(我目前无权访问)。
  8. 我编写文档的方式是,让任何没有相关背景知识的用户都能一目了然。