آنچه در این صفحه می خوانید:
معرفی Apache Storm
Apache Storm یک فریمورک محاسباتی پردازش جریان توزیع شده است که در زبان برنامه نویسی Clojure نوشته شده است. این پروژه که در ابتدا توسط Nathan Marz و تیم BackType ایجاد شده بود، پس از تملک توسط توییتر اپن سورس شد. Apache Storm از "spouts" و "bolts" های سفارشی ایجاد شده که برای تعریف منابع اطلاعاتی و دستکاری ها برای پردازش دسته ای و توزیع شده داده های جریان استفاده می شود.
اپلیکیشن Storm به عنوان یک "توپولوژی" به شکل یک نمودار دایره ای گرد (DAG) با spouts و bolts به عنوان راس های نمودار طراحی شده است. لبه های نمودار streams نامیده می شوند و داده ها را از یک گره به گره دیگر هدایت می کنند. این ها با هم، توپولوژی به عنوان یک خط ارتباطی تبدیل داده عمل می کند. در یک مرحله سطحی، ساختار توپولوژی عمومی مشابه کار MapReduce است، با تفاوت اصلی این که داده ها در Real-time پردازش می شوند و در دسته های جداگانه نیست. علاوه بر این، توپولوژی های Storm تا زمان نابودی به طور نامحدود اجرا می شوند، در حالی که یک MapReduce job DAG باید در نهایت پایان یابد.
معماری Apache Storm
کلاستر Apache Storm شامل اجزای مهم زیر است:
- گره ها (Nodes): دو نوع گره وجود دارد: گره های اصلی و گره های کارگر. یک Master Node یک دیمون Nimbus را اجرا می کند که وظایفی را به ماشین ها اختصاص می دهد و عملکرد آنها را کنترل می کند. از طرف دیگر، یک گره کارگر، daemon موسوم به Supervisor را اجرا می کند که وظایف را به گره های دیگر کارگر و اپراتور ها اختصاص می دهد و بر اساس نیاز آنها را اداره می کند. از آنجا که Storm نمی تواند وضعیت و سلامت کلاستر را کنترل کند، ZooKeeper را برای حل این مسئله Nimbus را با Supervisors متصل و مستقر می کند.
- کامپوننت ها (Components): Storm دارای سه مولفه مهم است: Topology، Stream و Spout. توپولوژی شبکه ای است که از Stream و Spout ساخته شده است. جریان یک خط ارتباطی بدون محدودیت از tuples است و Spout منبع جریان داده ای است که داده ها را به چند جریان تبدیل می کند و به bolts برای پردازش می فرستد.
کاربرد Apache Storm
Apache Storm یک سیستم محاسباتی در real-time توزیع شده رایگان و اپن سورس است. Apache Storm پردازش و جریان های نامحدود داده بطرزی قابل اعتماد برای پردازش جاب های بلادرنگ که هدوپ (Hadoop) جهت پردازش دسته ای انجام می دهد، آسان می کند. Apache Storm ساده است، با هر زبان برنامه نویسی قابل استفاده است و استفاده از آن بسیار سرگرم کننده است.
Apache Storm موارد استفاده زیادی دارد: تجزیه و تحلیل بلا درنگ، یادگیری ماشین آنلاین، محاسبه مداوم، RPC توزیع شده، ETL و موارد دیگر. Apache Storm سریع است. معیار سرعت با بیش از یک میلیون tuples پردازش شده در ثانیه در هر گره انجام می شود. مقیاس پذیر است، قابلیت تحمل خطا را دارد و داده ها را پردازش می کند و تنظیم و راه اندازی آن آسان است.
Apache Storm با صف و فناوری های پایگاه داده ای که قبلاً استفاده می کنید ادغام می شود. یک توپولوژی Apache Storm جریان های داده ای را مصرف می کند و جریان ها را به روش های دلخواه پیچیده پردازش می کند، جریان ها را بین هر مرحله از محاسبات تقسیم می کند.