Apache बीम प्रोजेक्ट

इस पेज पर, तकनीकी लेखन वाले उस प्रोजेक्ट की जानकारी दी गई है जिसे Google Season of Docs के लिए स्वीकार किया गया है.

प्रोजेक्ट की खास जानकारी

ओपन सोर्स संगठन:
Apache Beam
टेक्निकल राइटर:
श्रुति श्री कुमार
प्रोजेक्ट का नाम:
रनर की तुलना वाले पेज / क्षमता की मेट्रिक का अपडेट
प्रोजेक्ट की अवधि:
स्टैंडर्ड अवधि (तीन महीने)

प्रोजेक्ट का विवरण

Apache Beam, बैच और स्ट्रीम प्रोसेसिंग पाइपलाइन, दोनों को तय करने के लिए एक यूनिफ़ाइड प्लैटफ़ॉर्म है. Apache Beam की मदद से, डेटासेट को दिखाने और बदलने के लिए मॉडल तय किया जा सकता है. इसके लिए, डेटा प्रोसेसिंग के किसी खास प्लैटफ़ॉर्म की ज़रूरत नहीं होती. डेटा फ़्लो तय करने के बाद, इसे इस्तेमाल किए जा सकने वाले किसी भी रन-टाइम फ़्रेमवर्क (रनर) पर चलाया जा सकता है. इनमें Apache Apex, Apache Flink, Apache Spark, और Google Cloud Dataflow शामिल हैं. Apache Beam में अलग-अलग SDK भी होते हैं. इनकी मदद से, Java, Python, और GO जैसी प्रोग्रामिंग भाषाओं में अपनी पाइपलाइन लिखी जा सकती है.

मैंने “रनर तुलना पेज/क्षमता मैट्रिक्स का अपडेट” विषय पर जीएसओडी के लिए अपना आवेदन सबमिट किया है. Apache बीम, एक से ज़्यादा रनर और SDK टूल के साथ काम करता है. इसलिए, नए उपयोगकर्ता को इनमें से किसी एक को चुनने में आसानी होगी. अलग-अलग रनर के मौजूदा दस्तावेज़ में, रनर के बारे में कम शब्दों में खास जानकारी दी गई है. मेरा मकसद है कि रनर के दस्तावेज़ वाले पेज पर, हर रनर के बारे में ज़्यादा जानकारी शामिल की जाए. साथ ही, मुझे शब्दों की संख्या का उदाहरण देने वाले प्रोजेक्ट के ब्यौरे को अपडेट करना है, ताकि इस बारे में ज़्यादा जानकारी दी जा सके. इसके लिए, मेरी योजना है कि मैं अपने मशीन में शब्दों की संख्या के हर उदाहरण को स्थानीय तौर पर आज़माऊं. साथ ही, यह पता लगाना चाहता हूं कि क्या कुछ चरण पूरे नहीं हो रहे हैं और मैं इस प्रोसेस के बारे में और जानकारी भी जोड़ना चाहता हूं. एक और चीज़, मैंने देखा है कि रनर के दस्तावेज़ किसी भी पैटर्न का पालन नहीं करते. (कुछ लोगों को खास जानकारी वाला सेक्शन मिला है, जबकि अन्य सेक्शन, इस्तेमाल करने के तरीके या ज़रूरी जानकारी या किसी भी क्रम में दिए गए टाइटल से शुरू होता है). एक आसान पैटर्न को अपनाने के लिए, मैं उन सभी को अपडेट कर दूँगी.

मुझे हर रनर के बारे में बताने के लिए एक नया पेज जोड़ना है और हर एक रनर को उसके बारे में जानकारी देनी है[BEAM-3220]. इस पेज से, उपयोगकर्ता हर रनर और क्षमता मैट्रिक के बारे में पूरी जानकारी वाले पेज पर रीडायरेक्ट हो सकते हैं. हम यहां हर धावक की तुलना करने के लिए जानकारी भी जोड़ेंगे. फ़िलहाल, मैं अपनी मास्टर थीसिस के लिए Flink रनर की परफ़ॉर्मेंस का आकलन करने के लिए, Beam NEXMark का इस्तेमाल कर रहा/रही हूं. मुझे NEXMark बेंचमार्किंग के बारे में पता है. मुझे बैच और स्ट्रीमिंग मोड(BEAM-2944) में, हर रनर के मानदंड के नतीजों को शामिल करना है. अगर मुझे पता चलता है कि कोई पैरामीटर/ कॉन्फ़िगरेशन मौजूद नहीं है या हटा दिया गया है, तो हम NEXMark दस्तावेज़ को अपडेट करेंगे. पहले जब मैं Flink runner का इस्तेमाल कर रहा था, तो मुझे शुरुआत में समस्या आ रही थी, क्योंकि दस्तावेज़ में एक पैरामीटर मौजूद नहीं था. हालांकि, अब मुझे NEXMark कोड बेस के बारे में ज़्यादा जानकारी है. इसलिए, मेरे लिए, टेस्ट में शामिल प्रोसेसर की तुलना करना और मेट्रिक जोड़ना आसान होगा. इसी पेज पर, मुझे हर रनर के प्रॉडक्शन के लिए तैयार होने की खास जानकारी शामिल करनी है.

मौजूदा दस्तावेज़ में, हर रनर के ब्यौरे वाले पेज में क्लासिक/पोर्टेबल रनर के लिए सहायता शामिल है. मुझे लगता है कि उन सभी को एक ही जगह पर ले जाना भी बेहतर है, चाहे वह क्षमता मैट्रिक्स में हो या जोड़े गए नए ब्यौरे वाले पेज पर. साथ ही, फ़िलहाल, पोर्टेबिलिटी की सहायता को एक अलग Google शीट में रखा गया है. मुझे इसे, काम करने वाले वर्शन के मैट्रिक्स में मर्ज करना है. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). इस टास्क में, मुझे सभी बड़े/मामूली सुधारों को शामिल करना है, जिनके बारे में BEAM-2888 में बताया गया है.

मुझे लगता है कि GSoD, ओपन सोर्स में योगदान देने का एक मौका है. मैं ओपन सोर्स प्रोजेक्ट, खास तौर पर Beam में योगदान देना जारी रखूंगा. साथ ही, कम्यूनिटी के सक्रिय सदस्य के तौर पर काम करना जारी रखूंगा. जैसा कि Apache बीम के पास लगातार नई सुविधाओं को डेवलप करने वाली एक ऐक्टिव कम्यूनिटी है. इसलिए, मुझे लगता है कि दस्तावेज़ को अपडेट करने और उसमें सुधार करने की ज़रूरत हमेशा रहती है. साथ ही, मैं डेवलपमेंट के काम में भी योगदान देना चाहूंगी. अगर मेरे पास Beam के बारे में अच्छी जानकारी है, तो मैं उपयोगकर्ता समुदाय की भी मदद कर सकता/सकती हूं. ऐसा इसलिए, क्योंकि Beam का इस्तेमाल शुरू करने पर मुझे समुदाय से हमेशा मदद मिली.

मुझे लगता है कि मैं इस प्रोजेक्ट के लिए सही व्यक्ति हूं, क्योंकि:

  1. मैं डिस्ट्रिब्यूटेड सिस्टम का शौकीन हूं. मुझे डेटा प्रोसेसिंग सिस्टम के अंदरूनी काम करने के तरीके को समझने में दिलचस्पी है.
  2. मेरे पास उपयोगकर्ता के तौर पर, Apache Beam और Apache Flink के साथ काम करने का अनुभव है.
  3. मैंने Apache बीम और Apache Flink कोड बेस को डेवलपर के तौर पर पहले ही समझ लिया है.
  4. मैंने अलग-अलग बीम रनर की तुलना करने के लिए एक प्रोजेक्ट किया है.
  5. मेरे पास तकनीकी ब्लॉग लिखने का अनुभव है. इन ब्लॉग में, बिग डेटा प्रोसेसिंग और डिस्ट्रिब्यूटेड सिस्टम के कॉन्सेप्ट के बारे में बताया गया है.
  6. फ़िलहाल, मैं Apache Flink स्टेट बैकएंड की परफ़ॉर्मेंस को बेहतर बनाने के लिए, अपने मास्टर थीसिस पर काम कर रही हूं. इसके लिए, मैं बेंचमार्किंग के लिए Apache Beam NEXMark लागू करने का इस्तेमाल कर रही हूं. साथ ही, मैंने Apache Beam के दस्तावेज़ को अपडेट करने में योगदान दिया है.
  7. मेरे पास सॉफ़्टवेयर डेवलपर के तौर पर चार साल का अनुभव है. मैंने कई तकनीकी डिज़ाइन दस्तावेज़, प्रॉडक्ट दस्तावेज़, और Readme फ़ाइलें लिखी हैं. हालांकि, फ़िलहाल मेरे पास इनका ऐक्सेस नहीं है.
  8. मैं दस्तावेज़ इस तरह से लिखता हूं कि कोई भी व्यक्ति पहली नज़र में उसे समझ जाए.