অ্যাপাচি বিম প্রকল্প

এই পৃষ্ঠায় Google সিজন অফ ডক্সের জন্য গৃহীত প্রযুক্তিগত লেখার প্রকল্পের বিশদ বিবরণ রয়েছে৷

প্রকল্পের সারসংক্ষেপ

ওপেন সোর্স সংস্থা:
অ্যাপাচি বিম
কৌশলী লেখক:
শ্রুতি শ্রী কুমার
প্রকল্পের নাম:
রানার তুলনা পৃষ্ঠা / সক্ষমতা ম্যাট্রিক্সের আপডেট
প্রকল্পের দৈর্ঘ্য:
স্ট্যান্ডার্ড দৈর্ঘ্য (3 মাস)

প্রকল্প বর্ণনা

Apache Beam ব্যাচ এবং স্ট্রিম প্রক্রিয়াকরণ পাইপলাইন উভয় সংজ্ঞায়িত করার জন্য একটি ইউনিফাইড প্ল্যাটফর্ম। Apache Beam আপনাকে কোনো নির্দিষ্ট ডেটা প্রসেসিং প্ল্যাটফর্ম নির্বিশেষে ডেটাসেটগুলিকে উপস্থাপন এবং রূপান্তর করার জন্য একটি মডেল সংজ্ঞায়িত করতে দেয়। একবার সংজ্ঞায়িত হয়ে গেলে, আপনি এটিকে যে কোনো সমর্থিত রান-টাইম ফ্রেমওয়ার্ক (রানার) এ চালাতে পারেন যার মধ্যে Apache Apex, Apache Flink, Apache Spark এবং Google ক্লাউড ডেটাফ্লো অন্তর্ভুক্ত রয়েছে। Apache Beam এছাড়াও বিভিন্ন SDK এর সাথে আসে যা আপনাকে জাভা, পাইথন এবং GO এর মতো প্রোগ্রামিং ভাষায় আপনার পাইপলাইন লিখতে দেয়।

আমি "রানার তুলনা পৃষ্ঠা/ক্ষমতা ম্যাট্রিক্সের আপডেট"-এ GSOD-এর জন্য আমার আবেদন জমা দিচ্ছি। যেহেতু Apache Beam একাধিক রানার এবং SDK সমর্থন করে, একজন নতুন ব্যবহারকারী তাদের মধ্যে বেছে নিতে বিভ্রান্ত হবেন। বিভিন্ন রানারদের বর্তমান ডকুমেন্টেশন রানার একটি খুব সংক্ষিপ্ত ওভারভিউ দেয়. আমার ধারণা হল নির্দিষ্ট রানার ডকুমেন্টেশন পৃষ্ঠায় প্রতিটি রানারের আরও বিশদ বিবরণ যোগ করা। এছাড়াও, আমি একটি বিশদ ব্যাখ্যা যোগ করতে উদাহরণ শব্দ গণনা প্রকল্পের বিবরণ আপডেট করতে চাই। এর জন্য, আমার পরিকল্পনা হল আমার মেশিনে স্থানীয়ভাবে প্রতিটি শব্দ গণনার উদাহরণ চেষ্টা করা এবং কিছু পদক্ষেপ অনুপস্থিত কিনা তা খুঁজে বের করা এবং প্রক্রিয়াটির আরও ব্যাখ্যা যোগ করা। আরেকটি জিনিস যা আমি লক্ষ্য করেছি যে রানারদের জন্য ডকুমেন্টেশন কোনো প্যাটার্ন অনুসরণ করে না (কয়েকজন একটি ওভারভিউ বিভাগ পেয়েছে যখন অন্যরা কীভাবে ব্যবহার করতে হয় বা পূর্বশর্ত বা কিছু র্যান্ডম শিরোনাম দিয়ে শুরু করে)। আমি একটি একক সাধারণ প্যাটার্ন অনুসরণ করতে তাদের সব আপডেট করব।

আমি প্রতিটি রানারকে বর্ণনা করার জন্য একটি নতুন পৃষ্ঠা যুক্ত করার পরিকল্পনা করছি এবং তাদের প্রত্যেককে একটি বর্ণনামূলক বর্ণনা প্রদান করব [BEAM-3220]। এই পৃষ্ঠা থেকে, ব্যবহারকারীরা প্রতিটি রানার এবং ক্ষমতা ম্যাট্রিক্সের বিশদ বিবরণ পৃষ্ঠায় পুনঃনির্দেশ করতে পারেন। আমি এখানে প্রতিটি রানারের একটি বর্ণনামূলক তুলনা যোগ করার পরিকল্পনা করছি। বর্তমানে, আমি আমার মাস্টার থিসিসের জন্য Flink রানারদের বেঞ্চমার্ক করার জন্য Beam NEXMark ব্যবহার করছি। যেহেতু আমি NEXMark বেঞ্চমার্কিং সম্পর্কে সম্পূর্ণ সচেতন, তাই আমি এখানে (BEAM-2944) উভয় ব্যাচ এবং স্ট্রিমিং মোডে প্রতিটি রানারের বেঞ্চমার্কিং ফলাফল অন্তর্ভুক্ত করতে চাই। আমি NEXMark ডকুমেন্টেশন আপডেট করব যদি আমি খুঁজে পাই যে কোনো প্যারামিটার/ কনফিগারেশন অনুপস্থিত/মুছে গেছে। আগে যখন আমি ফ্লিঙ্ক রানার ব্যবহার করছিলাম তখন আমি প্রাথমিকভাবে আটকে গিয়েছিলাম কারণ ডকুমেন্টেশনে একটি প্যারামিটার অনুপস্থিত ছিল। কিন্তু এখন যেহেতু আমি NEXMark কোড বেসের সাথে আরও বেশি পরিচিত এবং সেইসাথে রানারদের বেঞ্চমার্ক করা এবং মেট্রিক্স যোগ করা আমার পক্ষে সহজ হবে। এই একই পৃষ্ঠায়, আমি প্রতিটি রানার উৎপাদন প্রস্তুতির একটি সংক্ষিপ্ত সারাংশ অন্তর্ভুক্ত করতে চাই।

বর্তমান ডকুমেন্টেশনে, ক্লাসিক/পোর্টেবল রানার জন্য সমর্থন প্রতিটি রানার বিবরণ পৃষ্ঠায় অন্তর্ভুক্ত করা হয়েছে। আমি মনে করি সক্ষমতা ম্যাট্রিক্সে বা নতুন যোগ করা বর্ণনা পৃষ্ঠায় সেগুলিকে এক জায়গায় আনাও ভাল। এছাড়াও, বর্তমানে, পোর্টেবিলিটি সমর্থন একটি পৃথক গুগল শীটে রক্ষণাবেক্ষণ করা হয়েছে যা আমি সামঞ্জস্য ম্যাট্রিক্সে একত্রিত করতে চাই। https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0)। এই কাজের অংশ হিসাবে, আমি BEAM-2888-এ উল্লিখিত সমস্ত বড়/ছোট সংশোধন অন্তর্ভুক্ত করার পরিকল্পনা করছি।

আমি GSoD কে ওপেন সোর্স অবদানে পা রাখার সুযোগ হিসেবে বিবেচনা করি। আমি ওপেন সোর্স প্রজেক্ট বিশেষ করে Beam-এ অবদান রাখা অব্যাহত রাখব এবং একজন সক্রিয় কমিউনিটি সদস্য হিসেবে চালিয়ে যেতে চাই। যেহেতু Apache Beam একটি সক্রিয় সম্প্রদায় পেয়েছে যার সাথে ক্রমাগত বৈশিষ্ট্যগুলি বিকাশ করা হচ্ছে, আমি মনে করি এটিকে আপডেট করার জন্য ডকুমেন্টেশন উন্নত করার সুযোগ রয়েছে। পাশাপাশি উন্নয়নমূলক কাজেও অবদান রাখতে চাই। আমার যদি বিম সম্পর্কে ভালো জ্ঞান থাকে, তাহলে আমি ব্যবহারকারী সম্প্রদায়কেও সাহায্য করতে পারি কারণ আমি যখন বীমের সাথে শুরু করেছি তখন আমি সর্বদা সম্প্রদায়ের কাছ থেকে সহায়তা পেয়েছি।

আমি বিশ্বাস করি যে আমি এই প্রকল্পের জন্য সঠিক ব্যক্তি কারণ:

  1. আমি একজন বিতরণ করা সিস্টেম উত্সাহী যিনি ডেটা প্রসেসিং সিস্টেমের অভ্যন্তরীণ বিষয়গুলি বোঝার চেষ্টা করছেন৷
  2. একজন ব্যবহারকারী হিসাবে Apache Beam এবং Apache Flink এর সাথে কাজ করার অভিজ্ঞতা আমার আছে।
  3. আমি ইতিমধ্যেই ডেভেলপার হিসেবে Apache Beam এবং Apache Flink কোড বেস বুঝেছি।
  4. আমি বিভিন্ন বিম রানার তুলনা করার জন্য একটি প্রকল্প করেছি।
  5. বড় ডেটা প্রসেসিং এবং ডিস্ট্রিবিউটেড সিস্টেমের ধারণা ব্যাখ্যা করার জন্য আমার প্রযুক্তিগত ব্লগ লেখার অভিজ্ঞতা আছে।
  6. বর্তমানে, আমি Apache Flink স্টেট ব্যাকএন্ডের কর্মক্ষমতা উন্নত করতে আমার মাস্টার থিসিসে কাজ করছি যার জন্য আমি বেঞ্চমার্কিংয়ের জন্য Apache Beam NEXMark বাস্তবায়ন ব্যবহার করছি এবং আমি Apache Beam ডকুমেন্টেশন আপডেট করতে অবদান রেখেছি।
  7. যেহেতু আমার একজন সফ্টওয়্যার ডেভেলপার হিসাবে 4 বছরের কাজের অভিজ্ঞতা আছে, আমি একাধিক প্রযুক্তিগত নকশা নথি এবং পণ্যের ডকুমেন্টেশন এবং Readme ফাইলগুলি লিখেছি (যা আমার কাছে এই মুহূর্তে অ্যাক্সেস নেই)।
  8. আমি এমনভাবে ডকুমেন্টেশন লিখি যাতে পূর্বের জ্ঞান ছাড়া যে কেউ এটি প্রথম নজরে বুঝতে পারে।