Projekt Apache Beam

Ta strona zawiera szczegółowe informacje na temat projektu technicznego przyjęta do programu Sezon Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
Apache Beam
Pisarz techniczny:
Sruthi Sree Kumar
Nazwa projektu:
Aktualizacja strony z porównaniem biegaczy / macierzy możliwości biegaczy
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

Apache Beam to ujednolicona platforma do definiowania potoków przetwarzania wsadowego i strumieniowego. Apache Beam umożliwia zdefiniowanie modelu do reprezentowania i przekształcania zbiorów danych niezależnie od konkretnej platformy przetwarzania danych. Po zdefiniowaniu możesz go uruchomić na dowolnej z obsługiwanych platform wykonawczych (runner), w tym Apache Apex, Apache Flink, Apache Spark i Google Cloud Dataflow. Apache Beam zawiera też różne pakiety SDK, które umożliwiają pisanie potoków w językach programowania, takich jak Java, python czy GO.

Przesyłam zgłoszenie do GSOD w sekcji „Aktualizacja strony do porównywania strony/macierzy możliwości biegaczy”. Apache Beam obsługuje wiele uruchomień i pakiet SDK, więc nowy użytkownik nie będzie mógł dokonać wyboru. Obecna dokumentacja na temat różnych biegaczy zawiera krótkie omówienie ich przebiegu. Chciałabym dodać bardziej zrozumiałe informacje o każdym biegaczach na stronie dokumentacji biegacza. Chcę też zaktualizować opis przykładowego projektu dotyczącego liczby słów, aby dodać szczegółowe wyjaśnienie. W tym celu chcę wypróbować lokalnie na komputerze przykładową liczbę słów, sprawdzić, czy brakuje pewnych kroków, i dodać więcej objaśnienia całego procesu. Poza tym dokumentacja dla biegaczy nie jest zgodna z żadnym wzorcem(niektóre mają sekcję z omówieniem, a inni zaczynają od sposobu korzystania z aplikacji, warunku wstępnego lub losowego tytułu). Uzupełnię je wszystkie, tak aby miały jeden prosty wzór.

Zamierzam dodać nową stronę, aby opisać każdego biegacza i opowiedzieć o nim [BEAM-3220]. Użytkownicy mogą przejść z tej strony na stronę ze szczegółowym opisem każdego biegacza i tabelą możliwości. Zamierzam też dodać opisowe porównanie każdego biegacza. Obecnie używam Beam NEXMark do analizy porównawczej biegów Flink do pracy magisterskiej. Wiem o testach porównawczych NEXMarka, dlatego chcę przedstawić wyniki każdego biegacza zarówno w trybie wsadowym, jak i strumieniowym(BEAM-2944). Zaktualizuję też dokumentację NEXMarka, jeśli okaże się, że brakuje jakieś parametrów lub konfiguracji albo zostały one usunięte. Przed rozpoczęciem korzystania z aplikacji Flink Runner początkowo utknąłem, ponieważ w dokumentacji brakowało jednego z parametrów. Teraz, gdy już znam podstawy kodu NEXMark, łatwiej mi będzie porównać biegaczy i dodać dane. Na tej samej stronie chcę krótko podsumować gotowość każdego biegacza do produkcji.

W bieżącej dokumentacji obsługa klasycznych/przenośnych biegów jest dostępna na stronie opisu każdej biegacza. Myślę, że lepiej zebrać je wszystkie w jednym miejscu: w tabeli możliwości lub na nowo dodanej stronie opisu. Obsługa przenośności jest obecnie przechowywana w osobnym arkuszu Google, który chcę scalić z macierz zgodności: https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0. W ramach tego zadania zamierzam uwzględnić wszystkie duże i małe poprawki wymienione w BAM-2888.

Myślę, że GSoD daje możliwość skorzystania z środków typu open source. Będę nadal pomagać w projektach open source, a zwłaszcza Beam i jako aktywny członek społeczności. Apache Beam ma aktywną społeczność, w której stale pracujemy nad funkcjami, dlatego uważam, że zawsze istnieje możliwość ulepszenia dokumentacji w celu jej zaktualizowania. Chcę też pomagać w rozwoju programu. Jeśli mam solidną wiedzę na temat Beam, mogę również pomóc społeczności użytkowników, ponieważ na początku korzystania z Beam zawsze udzielono mi pomocy od społeczności.

Uważam, że jestem odpowiednią osobą do tego projektu, ponieważ:

  1. Jestem entuzjastem systemów rozproszonych i próbuję poznać wewnętrzne mechanizmy systemów przetwarzania danych.
  2. Mam doświadczenie w pracy z Apache Beam i Apache Flink jako użytkownik.
  3. Znam już bazę kodu Apache Beam i Apache Flink jako deweloper.
  4. Zrealizowałem projekt porównujący różne uruchomienia wiązek.
  5. Mam doświadczenie w pisaniu blogów technicznych, w których wyjaśniam koncepcje przetwarzania big data i systemów rozproszonych.
  6. Obecnie pracuję nad pracą magisterską dotyczącą zwiększenia wydajności backendu stanu Apache Flink, w którym używam implementacji Apache Beam NEXMark do testów porównawczych, i mam swój wkład w aktualizowanie dokumentacji Apache Beam.
  7. Jako deweloper oprogramowania od 4 lat napisałem wiele dokumentów z projektów technicznych, dokumentację produktów oraz pliki Readme(do których nie mam teraz dostępu).
  8. Piszę dokumentację w taki sposób, aby każda osoba, która nie miała wcześniejszej wiedzy, mogła ją od razu zrozumieć.