آپاچی استورم یک فناوری قدرتمند برای مدیریت کلان داده
- 1399/11/9
- 1066
- برنامه نویسی
Apache Storm یک راهکار مناسب برای مدیریت بیگ دیتا
خوشبختانه در دهه های اخیر ابزار ها و فناوری های مختلفی جهت حل مسائل بیگ دیتا و مدیریت داده های بزرگ خلق و ارائه شده است که از یک جهت بسیار عالی بوده و متخصصین داده توسط فناوری های جدید اطلاعات را به نفع احسن مدیریت و تحلیل می کنند ولی اگر از یک منظر دیگر به این مسئله بنگریم انتخاب آن بسیار کار دشواری می باشد و باید تحقیقات زیادی انجام شود تا ابزار مورد نیاز انتخاب شود.
در مقالات قبلی در مورد تکنولوژی هدوپ و اسپارک در بیگ دیتا به طور کامل بحث و بررسی کردیم در این مقاله قصد داریم تا فناوری آپاچی استورم را معرفی کنیم که یک ابزار بسیار عالی برای مدیریت کلان داده می باشد.
آپاچی استورم چیست؟
آپاچی استورم یک فریمورک متن باز و قابل اعتماد جهت انجام محاسبات برای جریان داده های نامحدود با قابلیت پردازش داده ها به صورت Real Time می باشد. دسترسی به فناوری استورم بسیار آسان بوده و با هر زبان برنامه نویسی قابل استفاده است.
مواردی همچون تجزیه و تحلیل Real Time ، محاسبات مداوم ، RPC توزیع شده ، مقیاس پذیری بالا و قابلیت تحمل پذیری خطا یا همان Fault tolerance نکات مثبتی هستند که این فریمورک محبوب دارا می باشد. استورم بسیار سریع بوده و قادر است بیش از یک میلیون رکورد در ثانیه را برای هر گره در یک خوشه با اندازه متوسط پردازش کند.استورم از تکنیک های پایگاه داده ای رایج پشتیبانی می کند و قابلیت ادغام با آنها را دارد. و توپولوژیهای استورم را با استفاده از هر زبان برنامه نویسی میوان ایجاد کرد.
توپولوژی و نحوه عملکرد استورم مانند Map Reduce است با این تفاوت که پردازش داده ها در استورم بی درنگ Real Time می باشند. و یک توپولوژی و پردازش تا زمان نابودی به کار خود ادامه می دهد و متوقف نمی شود.
نحوه عملکرد و معماری آپاچی استورم :
Cluster یا همان خوشه های استورم عملکردی شبیه فناوری هدوپ دارند با این تفاوت که هدف اصلی هدوپ راه اندازی و مدیریت Map Reduce می باشد ولی خوشه استورم انجام توپولوژی را هدف خود می داند. تفاوت توپولوژی با مپ در این است که کار Map Reduce در نهایت پایان می یابد ، در حالی که توپولوژی پیام ها را برای همیشه پردازش می کند.
مولفه ها و اجزای تشکیل دهنده استورم
1) گره اصلی یا همان Master Node : گره اصلی یک Process به نام Nimbus را اجرا می کند که وظایف زیر را بر عهده دارد.
- اجرای عامل های پردازشی بر روی خوشه ها
- توزیع کد اطراف خوشه ها
- اختصاص وظایف به ماشین ها
- مانیتورینگ گره ها و نظارت بر خرابی ها
- پشتیبانی و ترجمه زبان های برنامه نویسی مختلف
2) گره های ناظر یا همان Supervisor Nodes : یک گره سوپروایزر وظایفی که توسط Nimbus به آن اختصاص داده شده را انجام می دهد و همچنین راه اندازی یا متوقف کردن عوامل پردازشی بر عهده ی گره ناظر می باشد.
3) نودهای Zookeeper : تمامی هماهنگی های لازم بین Nimbus و Supervisors جهت انجام پردازش های بی درنگ و سریع از طریق یک نود به نام Zoo Keeper صورت می گیرد. همچنین توسط Zookeeper می توان یک Nimbus ناموفق را دوباره راه اندازی کرد.
4) Spouts : وظیفه دریافت داده از یک منبع خارجی و انتشار آن روی توپولوژی استورم بر عهده اسپوت می باشد. این منابع خارجی می توانند پایگاه داده ها، سیستم فایل توزیع شده و یا چارچوب های پیام رسانی باشند. Spouts توسط گره های کارگر و رشته های Executor اجرا می شوند.
5) Bolts : تمامی پردازش ها در توپولوژی استورم توسط Bolts انجام می شوند فیلتر کردن توابع ، تجمیع داده ها و تعامل با پایگاه داده ، همگی مواردی هستند که بر عهده Bolts می باشند.
مزیت های فناوری استورم در یک نگاه
1) مقیاس پذیری بالا : محاسبات موازی و Parallel بر روی خوشه ها به صورت Real Time برای جریان داده های نامحدود
2) تحمل خطا یا Fault tolerance : هنگامی که عوامل پردازشی بر روی هر نود از کار بیافتند استورم آنها را بصورت خودکار راه اندازی می کند.
3) کاربری آسان : پیکربندی آسان و قابلیت پشتیبانی از زبان های برنامه نویسی زیاد یکی دیگر از مزیت های این سیستم می باشد.
4) سرعت بالا : استورم بسیار سریع بوده و قادر است بیش از یک میلیون رکورد در ثانیه را برای هر گره در یک خوشه با اندازه متوسط پردازش کند
5) متن باز بودن : استورم یک فریمورک Open Source با دسترسی بسیار آسان می باشد و جهت راه اندازی آن نیازی به پرداخت هزینه نیست.