Apache Beam projesi

Bu sayfada, Google Dokümanlar Sezonu için kabul edilen bir teknik yazım projesinin ayrıntıları yer almaktadır.

Proje özeti

Açık kaynak kuruluşu:
Apache Beam
Teknik yazar:
Sruthi Sree Kumar
Projenin adı:
Koşucular karşılaştırma sayfası / özellik matrisi güncellemesi
Proje süresi:
Standart uzunluk (3 ay)

Proje açıklaması

Apache Beam, hem toplu hem de akış işleme ardışık düzenlerinin tanımlanmasına yönelik birleştirilmiş bir platformdur. Apache Beam, belirli bir veri işleme platformundan bağımsız olarak veri kümelerini temsil edecek ve dönüştürecek bir model tanımlamanıza olanak tanır. Tanımlandıktan sonra Apache Apex, Apache Flink, Apache Spark ve Google Cloud Dataflow gibi desteklenen çalışma zamanı çerçevelerinden (yürütücüler) herhangi birinde çalıştırabilirsiniz. Apache Beam ayrıca ardışık düzeninizi Java, python ve GO gibi programlama dillerinde yazmanıza olanak tanıyan farklı SDK'lar da sunar.

GSOD için başvurumu “Çalıştırıcı karşılaştırma sayfası/yetenek matrisi güncellemesi” konusunda gönderiyorum. Apache Beam birden fazla koşucuyu ve SDK'yı desteklediğinden yeni bir kullanıcı bunlardan birini seçmekte zorlanacak. Farklı çalıştırıcılarla ilgili mevcut dokümanlar, çalıştırıcıya çok kısa bir genel bakış sunar. Her bir çalıştırıcıyla ilgili daha fazla ayrıntıyı ilgili çalıştırıcı doküman sayfasına eklemeyi düşünüyorum. Ayrıca, örnek kelime sayısı projesinin açıklamasını ayrıntılı bir açıklama eklemek için güncellemek istiyorum. Bunun için her kelime sayısı örneğini makinemde yerel olarak denemeyi, bazı adımların eksik olup olmadığını öğrenmeyi ve süreç hakkında daha fazla açıklama eklemeyi planlıyorum. Ayrıca, çalıştırıcılarla ilgili dokümanların herhangi bir kalıba uymadığını fark ettim(Bazılarında genel bakış bölümü varken diğerleri kullanım şekli veya ön koşul ya da rastgele bir başlıkla başlıyor). Bunların hepsini tek bir basit düzene göre güncelleyeceğim.

Her koşucuyu tanımlamak ve her biri için açıklayıcı bir anlatım sağlamak amacıyla yeni bir sayfa eklemeyi planlıyorum[BEAM-3220]. Kullanıcılar bu sayfadan her çalıştırıcıyla ilgili ayrıntılı açıklama sayfasına ve özellik matrisine yönlendirilebilir. Ayrıca, her koşucunun açıklayıcı bir karşılaştırmasını da buraya eklemeyi planlıyorum. Şu anda yüksek lisans tezimle ilgili olarak Flink çalıştırıcıları karşılaştırmak için Beam NEXMark'ı kullanıyorum. NEXMark karşılaştırmasından tamamen haberdar olduğum için her koşucunun karşılaştırma sonuçlarını hem toplu modda hem de akış modunda(BEAM-2944) buraya eklemek istiyorum. Eksik/ kaldırılan parametre/yapılandırma olduğunu tespit edersem NEXMark dokümanlarını da güncellerim. Flink Runner'ı kullandığım zamanlarda, dokümanda parametrelerden biri eksik olduğu için başlangıçta takılmıştım. Ancak artık NEXMark kod tabanı hakkında daha bilgili olduğum için çalıştırıcıları karşılaştırmam ve metrikleri eklemem daha kolay olacak. Aynı sayfada, her çalıştırıcının üretime hazır olup olmadığına dair kısa bir özet eklemek isterim.

Mevcut belgelerde, her koşucu açıklama sayfasında klasik/taşınabilir koşucu desteği yer almaktadır. Bunların hepsini özellik matrisinde veya yeni eklenen açıklama sayfasında tek bir yerde toplamanın da daha iyi olacağını düşünüyorum. Ayrıca, şu anda taşınabilirlik desteği ayrı bir Google E-Tablosu'nda tutulmaktadır. Bu tabloyu uyumluluk matrisiyle birleştirmek isterim. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). Bu görev kapsamında, BEAM-2888'de belirtilen tüm büyük/küçük düzeltmeleri dahil etmeyi planlıyorum.

GSoD'yi açık kaynak katkılarına adım atmak için bir fırsat olarak görüyorum. Özellikle Beam olmak üzere açık kaynak projelere katkıda bulunmaya ve etkin bir topluluk üyesi olmaya devam edeceğim. Apache Beam'in sürekli olarak özellik geliştirilen etkin bir topluluğu olduğu için dokümanları güncellemek için iyileştirme yapmanın her zaman bir yolu olduğunu düşünüyorum. Ayrıca geliştirme çalışmalarına da katkıda bulunmak istiyorum. Beam'de ses hakkında bilgim varsa, Beam'i kullanmaya başladığımda her zaman topluluktan yardım aldığım için kullanıcı topluluğuna da yardımcı olabilirim.

Bu proje için doğru kişi olduğumu düşünüyorum çünkü:

  1. Veri işleme sistemlerinin iç işleyişini anlamaya çalışan, dağıtılmış sistemler meraklısıyım.
  2. Apache Beam ve Apache Flink ile kullanıcı olarak çalışma deneyimim var.
  3. Geliştirici olarak Apache Beam ve Apache Flink kod tabanını anlıyorum.
  4. Farklı ışın tarayıcıları karşılaştıran bir proje yaptım.
  5. Büyük veri işleme ve dağıtık sistemler kavramlarını açıklamak için teknik bloglar yazma konusunda deneyimliyim.
  6. Şu anda, Apache Flink durum arka ucunun performansını artırmak için yüksek performans karşılaştırması amacıyla Apache Beam NEXMark uygulamasını kullandığım yüksek lisans tezimle ilgili çalışmalar yapıyorum ve Apache Beam dokümanlarının güncellenmesine katkıda bulundum.
  7. Yazılım geliştirici olarak 4 yıllık iş deneyimim olduğu için birden fazla teknik tasarım dokümanı, ürün dokümanları ve Benioku dosyası yazdım(bu dosyalara şu anda erişemiyorum).
  8. Dokümanları, daha önce bilgi sahibi olmayan herkesin ilk bakışta anlayabileceği şekilde yazıyorum.