آموزش و یادگیریابزار و کتابخانه هاچارچوب های پردازش کلان دادهداده‌های جریانی

سامانه‌های پردازش جریان : استورم و هِرون

استورم[۱] ابتدا توسط یکی از مهندسین شرکت BackType، آقای Nathan Marz تولید و توسعه داده شد که پس از خریداری شدن توسط توئیتر، متن باز شده و سپس به بنیاد آپاچی واگذار شد. این پروژه که توسط شرکتهای معتبری مانند یاهو و توئیتر مورد استفاده قرارگرفت، به سرعت به عنوان یک بستر پردازشی بلادرنگ و توزیع شده در دنیا مطرح شد.

از آنجا که استورم، یکی از اولین سامانه­‌های تخصصی برای پردازش جریان­ در مقیاس کلان بود، به استورم، هدوپ دنیای پردازش جریان هم گفته می­شد. در مستندات رسمی استورم، توصیف آن به صورت زیر آمده است :

«استورم پردازش حجم نامحدود داده‌­های جریانی را به گونه‌­ای مطمئن، ممکن می­سازد همان کاری که هدوپ برای پردازش­های زمان­مند و گروهی انجام می­دهد

http://storm.apache.org

استورم، در ابتدا با هدف مقیاس­‌پذیری و تحمل خطا ایجاد شد و تضمین کرد که هر رخداد، حتماً یک بار پردازش می­شود.

در بستر استورم، با دو مولفه اصلی که ترکیب آنها تشکیل دهنده یک گراف غیر مدور هستند، مواجهیم: گره­‌های ورودی یا Spout و گره­‌های پردازشی یا Bolt. به گراف پردازشی که این گره­‌ها را به هم متصل می­کند، توپولوژی گفته می ­شود. هر توپولوژی، به صورت پیش‌­فرض امکان اجرا روی کلاستری از سیستم‌ها را دارد.


شکل  1 – معماری آپاچی استورم

داده‌­ها از طریق Spout ها به ترتیب وارد مجموعه­‌ای از Bolt ها شده و کارهایی از قبیل تغییر شکل، ذخیره در بانک­‌های اطلاعاتی، افزوده شدن آمار و مانند آن در این بین انجام می­پذیرد.

مثال زیر یک سیستم عملیاتی مبتنی براستورم را برای بررسی لحظه­‌ای ترافیک یک شبکه را نشان می­دهد که بسته‌­های در حال حرکت در شبکه، از طریق kafka Spout وارد سامانه استورم شده و توسط گره­‌های مختلف Bolt پردازش و درصورت مشاهده مورد مشکوک، هشدارهای لازم در این چرخه تولید خواهد شد.

شکل ۲ – یک مثال از نحوه کار آپاچی استورم – یک مثال عملی

توپولوژی استورم گاهاً با کارهای روش کلاسیک توزیع و تجمیع [۲] مقایسه می­‌شود اما تفاوت اصلی و مهم آن این است که یک توپولوژی همواره در حال اجراست مگر این­که به صورت دستی متوقف شود درصورتی­که در روش پردازش توزیع و تجمیع، براساس درخواست کاربر مجموعه عملیاتی شروع و بعد از مدت­ زمان لازم برای حصول نتیجه، به پایان می­رسد.

خوبی دنیای متن­‌باز[۳] این است که امروزه Spout های زیادی برای اتصال به منابع داده­ای مختلف در دسترس است. حتی آداپتورهایی برای اتصال مستقیم به HDFS نیز در دسترس است.

سخن آخر اینکه استورم معمولاً همراه با سایر فناوری­های مانند صف توزیع شده کافکا به کار می­رود و البته در تجربه کاری که چند سال پیش با استورم داشتیم، متاسفانه نحوه عیب‌یابی و اشکال‌زدایی آن کمی اذیت کننده بود بخصوص زمانی که سیستم به صورت ناگهانی متوقف می‌شد و دلیل آن را در لاگ‌های سیستم پیدا نمی‌کردیم.


به دلیل ساختار قدیمی و مشکلاتی که در استورم وجود داشت، توئیتر این سامانه را که خود توسعه و به بنیاد آپاچی واگذار کرده بود را با چارچوب پردازشی جدیدتری با نام هِرون در سال ۲۰۱۴ جایگزین کرد و تا امروز، توسعه‌های زیادی روی آن انجام شده است و اتکای توئیتر به عنوان یکی از بزرگترین تولیدکنندگان داده در دنیا به این پروژه که فعلا در مرحله رشد در بنیاد آپاچی است و نسخه اولیه آن هنوز رسما وارد بازار نشده است، امیدبخش آینده‌ای خوب برای این سامانه است.

مزیت بزرگ هِرون، شباهت زیاد آن با استورم است به گونه‌ای که کدهای قبلی که با استورم نوشته شده است را به راحتی می‌توان با هِرون هم اجرا کرد (منبع ).

نقاط قوت این سامانه پردازش جریان نوین را در شکل زیر می‌توانید مشاهده کنید :

اهداف طراحی هِرون

برای مشاهده نمونه کد اجرایی هِرون به این مقاله می‌توانید مراجعه نمایید.


[۱]   Apache Storm

[۲]  Map/Reduce Jobs

[۳]  Open Source

مجتبی بنائی

دانشجوی دکترای نرم‌افزار دانشگاه تهران (yun.ir/smbanaie)، مدرس دانشگاه و فعال در حوزه توسعه نرم‌افزار و مهندسی داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و زیرساخت‌های پردازش داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است. مدیریت پروژه‌های نرم‌افزاری و طراحی سامانه‌های مقیاس‌پذیر اطلاعاتی از دیگر فعالیتهای صورت گرفته ایشان در چند سال گذشته است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا