معرفی Apache Storm

 Storm یک سیستم با قابلیت پردازش داده ها به صورت جریان داده ، قابل اعتماد، تحمل خطا، و همچنین توزیع خطا می باشد. در Storm  کارها به اجزاء مختلف واگذار می شوند و هر جزء مسئولیت پردازش وظیفه خاص خود را دارد.

spout یک جزء ازstorm است که وظیفه آن دریافت ورودیهای stream و کنترل آن می باشد. spout داده ها را به وسیله قسمتی که آن را bolt  می نامیم انتقال دهد. یک bolt  وظیفه دارد که داده ها را ذخیره کند یا آن را به bolt  دیگر انتقال دهد. شما می توانید storm cluster را شبیه یک زنجیره ای از boltها تصور کنید که هر کدام در حال انتقال اطلاعات هستند تا به وسیله spout ظاهر شوند.

برای نشان دادن این مفهوم بهتر است با یک مثال ساده شروع کنیم . شب گذشته من درحال تماشای تلویزیون بودم وقتی که گویندگان شروع به صحبت در مورد سیاستمداران کردند و موضعشان در مورد موضوعات مختلف را ابراز کردند. آنها شروع کردند به تکرار نامهای مختلف و من متعجب شدم وقتی دیدم آنها نامها را در زمانهای مساوی تکرار می کنند.

زیرنویس صحبتهای گویندگان را مانند داده های ورودی تصور کنید، شما می توانید یک spout  داشته باشید که همانطور که زیرنویسی می رسد آن را تحویل بگیرد سپس تحویل Bolt ها  دهد، Boltها جملات را به کلمات جداگانه تبدیل کنند و درون Boltهای دیگر عبور دهد در حین عبور کلمات ، عملیات مقایسه انجام می گیرد تا تعداد تکرار آنها ثبت شود. هر Bolt می تواند کلمه ای را در خود نگهداری کند اگر مقدار دو Bolt  با هم یکسان بود مقدار counter  داخل database که به Bolt  مورد نظر اشاره دارد به مقدار 1 واحد افزایش می یابد. در این صورت هر موقع که ما نیاز به گزارش داشته باشیم می توانیم به Database دسترسی داشته باشیم و نتیجه را مشاهده کنیم و نکته اینکه Database در هر لحظه تغییر می کند و درحال Update شدن است.

به نحوه قرارگرفتن Boltها و Spoutها و ارتباطشان با یکدیگر توپولوژی می گوییم.

حالا تصور کنید ما به راحتی می توانیم موازی سازی را برای این Boltها و Spoutها در کلاستر تعریف و پیاده سازی کنیم و سپس قدرت Storm را در این ساختار بهتر می توان درک نمود.

در یک کلاسترstorm  نودها در داخل یک Master node که همیشه در حال اجراست مدیریت می شود. در storm cluster دو نوع نود وجود دارد :

  • Master Node
  • Worker Node

Master node دیمونی را اجرا می کند که آن را Nimbus می نامد که مسئولیت توزیع کدها در کلاستر، تخصیص دادن وظایف به نودهای Worker و مشاهده و زیرنظر گرفتن خطاها و معایب سیستم را بر عهده دارد.

Worker Node دیمونی را اجرا می کند که آن را  Supervisor می نامد که مسئولیت اجرای توپولوژی را بر عهده دارد. یک توپولوژی در درون مشینهای متفاوت و تعداد زیادی از نودهای Worker اجرا می شود.

Storm می تواند تمام کلاسترها را بصورت یکجا در Zookeeper یا در دیسک محلی نگهداری کند. دیمونها بدون مکان هستند و می توانند به حالت خطا بروند یا حتی Reset شوند بدون اینکه برای سیستم مخرب باشند.

با تمام این تعاریف و توصیفها Storm دارای یک سری خصوصیتهای ویژه می باشد که آن را از بقیه تکنولوژی های موجود متمایز کرده است :

  • بسیار ساده برای برنامه نویسی
  •  پشتیبانی از زبانهای Multi programming 
  • Fault tolerant
  • مقیاس پذیری
  • قابلیت اطمینان
  •  سریع
  • Transactional

نویسنده: جمال مکتوبیان

از سرورهای ما برای اجرای پروژه های داده های کلان خود بدون اینکه درگیر پیچیدگی نصب شوید استفاده کنید. برای سفارش اینجا را کلیک کنید.
ما حتی می توانیم کلاستر و سرورهای هدوپ را برای شما ایجاد کنیم. برای درخواست راه اندازی اینجا را کلیک کنید.
اگر نیاز به مشاوره و یا کلاس آموزشی داشتید به اینجا مراجعه کنید.

لیست نظرات

پاسخ دهید

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