معرفی ابزار آپاچی استورم (Apache Storm)

تاریخچه:آپاچی استورم یک چارچوب پردازشی توزیعی برای پردازش داده های در جریان می باشد که به زبان برنامه نویسی clojure نوشته شده است. این برنامه در ابتدا توسط ناتان مارتس و همکارانش در موسسه بکتایپ ایجاد شده و بعد از تصاحب آن توسط تویتر به صورت نرم افزاری منبع باز درآمد.کاربردها:استورم یک سیستم محاسبات زمان واقعی توزیع شده برای پردازش حجم زیاد از داده ها با نرخ تولید بالا است. استورم بسیار سریع بوده و قادر است بیش از یک میلیون رکورد در ثانیه را برای هر گره در یک خوشه با اندازه متوسط پردازش کند. شرکت ها این سرعت را کنترل کرده و آن را با دیگر برنامه های دسترسی داده در هدوپ ترکیب می کنند تا از وقایع نامطلوب جلوگیری کرده یا نتایج مثبت را بهینه سازند.برخی از فرصت های تجاری جدید و ویژه در استفاده از استورم عبارتند از: مدیریت خدمات مشتری در زمان واقعی، کسب درآمد از داده ها، داشبورد های عملیاتی، تجزیه و تحلیل امنیت سایبری و تشخیص تهدید.استورم ساده بوده و توسعه دهندگان می توانند توپولوژیهای استورم را با استفاده از هر زبان برنامه نویسی ایجاد کنند.ویژگیها:5 ویژگی زیر استورم را انتخابی ایده آل برای پردازش داده های بهنگام نموده است:· سرعت بالا – قدرت پردازش یک میلیون پیغام 100 بایتی در هر ثانیه و بر روی هر نود· مقیاس پذیری خوب – محاسبات موازی بر روی خوشه ای از ماشینها· تحمل خطا – هنگامی که عوامل پردازشی بر روی هر نود از کار بیافتند استورم آنها را بصورت خودکار راه اندازی می کند و زمانی که خود نود از کار بیافتد استورم عامل پردازش مربوطه را بر روی نودی دیگر راه اندازی می کند· قابلیت اطمینان – استورم اطمینان می دهد که هر واحد داده دقیقا یکبار پردازش می شود.· کاربری آسان – پیکره بندی استاندارد سیستم یکبار و در روز اول انجام شده و زمانی که تنظیم گردید براحتی می توان از آن استفاده کردنحوه کار:یک خوشه استورم شامل سه مجموعه نود به قرار زیر است:1. نود Nimbus( نود اصلی ):· محاسبات را جهت اجرا آپلود می کند· کدها را بر روی خوشه ها توزیع می کند· عوامل پردازشی را بر روی خوشه ها راه اندازی می کند· محاسبات را مانیتور کرده و در صورت نیاز عوامل پردازشی جدیدی را به نود ها اختصاص می دهد2. نودهای Zookeeper - خوشه های استورم را هماهنگ می کند3. نودهای ناظر(Supervisor) – از طریق نود زوکیپر با نود های نیمبوس ارتباط برقرار کرده و با توجه به سیگنالهای دریافتی عوامل پردازشی را راه اندازی یا متوقف می کند.در شکل زیر ارتباط میان نود ها نشان داده شده است:5 اصطلاح کلیدی برای توصیف نحوه کار استورم شامل موارد زیر می باشد:· ستون داده ها (Tuples) : لیستی منظم از عناصر. بطور مثال "4 ستون" می تواند بصورت (1,5,6,2) نشان داده شود· جریان داده ها (Streams): یک توالی نامحدود از ستونها· ورودی داده (Spouts) : منابعی از جریان داده ها در یک محاسبه ( مثلا یک API توییتر)· پردازش داده (Bolts): جریان داده های ورودی را پردازش کرده و جریانی از داده های خروجی ایجاد می کند. پردازش می تواند شامل این موارد باشد: اجرای تابع، فیلتر داده، تجمیع داده، ترکیب داده ها و ارتباط با پایگاه داده· توپولوژیها ( Topologies): نوع محاسبات عمومی که بصورت ترکبیی از نقاط ورودی و پردازش نشان داده می شود.در شکل زیر می توان ارتباط میان واحدهای ورودی و پردازش را مشاهده کرد.کاربران استورم نوع توپولوژی مربوطه را به هنگام دریافت جریان داده ها از منابع ورودی تعریف می کنند و بعد از پردازش داده ها نتیجه را وارد هدوپ می کنند.همچنین در شکل زیر شمایی کلی ازجریان ورودی داده ها (Twitter API) و سپس پردازش این داده های جریانی در استورم با استفاده از بستر هدوپ و در نهایت خروجی این پردازش را مشاهده می کنید که یا در پایگاه داده ذخیره می شود و یا دوباره به وب باز می گردد. همانطور که می بینید استورم در کنار ویژگیهای نگاشت - کاهش هدوپ بستری قدرتمند برای پردازش سریع داده های جریانی فراهم میکند. گروه تحلیلگری عظیم داده و کسب و کار https://t.me/BigData_BusinessAnalytics