محمود جلیل نژاد
محمود جلیل نژاد
خواندن ۲ دقیقه·۳ سال پیش

پردازش های ابری در مقیاس خیلی بزرگ

یه زمانی شنیده بودم, فیس بوک روزانه 2.5 PB (پتابایت), یعنی 2,500,000 گیگابایت اطلاعات رو پردازش می کنه و این کار رو با استفاده از Hadoop/HDFS یا چیزی مشابه اون انجام میده. ابزارهایی که با استفاده از هزاران رایانه, در مقیاس خیلی بزرگ, کار پردازش توزیع شده رو انجام می دهند. مفاهیمی مثل Map/Reduce‌ رو شنیدم که تو پردازش های توزیع شده مورد استفاده قرار می گیرند

داده ها در فیس بوک (عکس مربوط به سال 2012)
داده ها در فیس بوک (عکس مربوط به سال 2012)

حالا حجم داده های فیس بوک روزانه به 4,000,000 گیگابایت رسیده


پردازش داده های بسیار حجیم (Big Data) روش هایی داره که من 2 تا شون رو می دونم:

1- Batch Processing
2- Stream Processing

1- اون جوری که من خونده ام و تو اینترنت دیدم روش اول حجم خیلی زیادی از داده ها رو بین تعداد خیلی زیادی سرور پخش می کنه تا هر سروری بخشی از اطلاعات رو پردازش کنه, بعد این کار نتیجه کار هر خوشه از سرورها در یک سرور تجمیع میشه و نتیجه اون هم دوباره در یه خوشه بزرگتر, و این کار ادامه داره تا کل داده ها در کلاستر پردازش بشوند. برای اینکه نتایج حاصله تا حد امکان نزدیک به زمان حال باشند, روزی چندین مرتبه این اتفاق برای داده های بازه زمانی فعلی انجام میشه. به همین خاطره که گاهی اوقات شما یه محتوایی رو روی یه شبکه اجتماعی قرار می دهید و کمی طول می کشه تا همه اون رو ببینند

2- تو این روش داده ها در ابری از سرورها دائم در حال حرکت هستند, تا اینکه به مقصد نهایی شون برسند. مثل جریان حرکت قطعات در خط تولید یه کارخانه, که آخر سر به یه محصول ختم میشه. تو این روش داده ها مثل روش قبلی از یه سرور به سرور دیگه می روند و تو هر مرحله یه پردازشی رو شون انجام میشه. فرق این دو تا اینه که روش دوم خیلی نزدیک به زمان حال هست و به اصطلاح بلادرنگ هست.

البته این دو روش رو با هم ترکیب می کنند و از ویژگی های مثبت هر کدوم استفاده می کنند, مثلا خود facebook هم همین کار رو کرده.

یه مدل معماری به نام Lambda Architecture و یه مدل دیگه با نام Kappa وجود داره که این دو روش رو ترکیب کرده تا بتوان اطلاعات تحلیلی روی داده ها رو در هر حجمی و در هر لحظه در اختیار داشت.

تو مقاله های بعدی قصد دارم درباره Kafka, Spark, Storm, Pulsar که همگی پروژه های بنیاد Apache هستند و همچنین درباره (Function-as-a-Server (FaaS بنویسم.

همچنان خودم رو نیازمند شنیدن نظرات مخاطبان عزیز می دانم

big datastream processingbatch processingmap reducelambda architecture
شاید از این پست‌ها خوشتان بیاید