Apache Beam プロジェクト

このページには、Google シーズンのドキュメントで受け入れられているテクニカル ライティング プロジェクトの詳細が記載されています。

プロジェクトの概要

オープンソースの組織:
Apache Beam
テクニカル ライター:
Sruthi Sree Kumar 氏
プロジェクト名:
ランナー比較ページ / 機能マトリックスの更新
プロジェクトの期間:
標準の期間(3 か月)

プロジェクトの説明

Apache Beam は、バッチ処理パイプラインとストリーム処理パイプラインの両方を定義する統合プラットフォームです。Apache Beam では、特定のデータ処理プラットフォームに関係なく、データセットを表して変換するためのモデルを定義できます。いったん定義すると、Apache Apex、Apache Flink、Apache Spark、Google Cloud Dataflow など、サポートされている任意のランタイム フレームワーク(ランナー)で実行できます。Apache Beam にはさまざまな SDK が付属しており、Java、Python、GO などのプログラミング言語でパイプラインを記述できます。

「ランナー比較ページ/機能マトリックスの更新」で GSOD の申請を提出しようとしています。Apache Beam は複数のランナーと SDK をサポートしているため、新規ユーザーがどれを選択すべきか迷ってしまいます。さまざまなランナーに関する現在のドキュメントで、ランナーの概要が非常に簡単になっています。私のアイデアは、特定のランナーのドキュメント ページに、各ランナーについてより深く理解してもらうことです。また、単語カウント プロジェクトの例の説明を更新して、詳細な説明を追加したいと思います。私の計画では、自分のマシンですべての単語カウントの例をローカルで試し、抜けているステップがないか確認し、そのプロセスに説明を追加するつもりです。もうひとつ、ランナーのドキュメントがどのパターンにも従っていないことに気づきました(概要セクションはほとんどありませんが、使用方法や前提条件、ランダムなタイトルから始める人もいます)。1 つの単純なパターンに従うよう、すべてのパターンを更新します。

各ランナーを説明した新しいページを追加し、各ランナーに説明的なナレーションを提供する予定です [BEAM-3220]。このページから、各ランナーと機能マトリックスの詳細説明ページにリダイレクトできます。ここには、各ランナーの説明比較も追加する予定です。現在は、修士論文のための Flink ランナーのベンチマークに Beam NEXMark を使用しています。NEXMark ベンチマークについては完全に理解しているので、ここに、バッチモードとストリーミング モードの両方での各ランナーのベンチマーク結果を含めたいと思います(BEAM-2944)。パラメータや構成が欠落しているか削除されていることがわかったら、NEXMark のドキュメントも更新します。Flink ランナーを使用する前は、パラメータの一つがドキュメントに記載されていないため、最初は動作が止まっていました。しかし、NEXMark コードベースにも慣れてきたため、ランナーのベンチマークを実施して指標を追加する作業が簡単になりました。このページで、各ランナーの本番環境への準備について簡単にまとめたいと思います。

現在のドキュメントでは、各ランナーの説明ページにクラシック ランナーとポータブル ランナーのサポートが含まれています。また、機能マトリックスか、新しく追加された説明ページのいずれかに、すべてを 1 か所にまとめた方がよいと思います。また、現在、ポータビリティのサポートは別の 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 Beam NEXMark 実装を使用している Apache Flink の状態バックエンドのパフォーマンスを改善するために、修士論文に取り組んでいます。また、Apache Beam のドキュメントの更新に貢献しています。
  7. ソフトウェア開発者として 4 年間働いたので、複数の技術設計ドキュメント、プロダクト ドキュメント、README ファイルを作成しています(現在はアクセスできません)。
  8. 予備知識のない人でも一目で理解できるようにドキュメントを記述しています。