سیستم محاسباتی توزیع شده Apache Storm 2.0 در دسترس است

نور را دید انتشار قابل توجه یک سیستم پردازش رویداد توزیع شده Apache Storm 2.0، به دلیل انتقال به معماری جدیدی که در جاوا به جای زبان Clojure استفاده می شد، قابل توجه است.

این پروژه به شما امکان می دهد پردازش تضمینی رویدادهای مختلف را در زمان واقعی سازماندهی کنید. به عنوان مثال، Storm می تواند برای تجزیه و تحلیل جریان های داده در زمان واقعی، اجرای وظایف یادگیری ماشین، سازماندهی محاسبات مداوم، پیاده سازی RPC، ETL و غیره استفاده شود. این سیستم از خوشه‌بندی، ایجاد پیکربندی‌های مقاوم در برابر خطا، حالت پردازش داده‌های تضمینی پشتیبانی می‌کند و عملکرد بالایی دارد که برای پردازش بیش از یک میلیون درخواست در ثانیه در یک گره خوشه کافی است.

ادغام با سیستم های مختلف پردازش صف و فناوری های پایگاه داده پشتیبانی می شود. معماری Storm شامل دریافت و پردازش جریان های داده بدون ساختار و به روز شده دائما با استفاده از پردازنده های پیچیده دلخواه با قابلیت تقسیم بین مراحل مختلف محاسبات است. پس از آن که توییتر BackType را خریداری کرد، این پروژه به جامعه آپاچی واگذار شد، شرکتی که در ابتدا چارچوب را توسعه داد. در عمل، Storm در BackType برای تجزیه و تحلیل انعکاس رویدادها در میکروبلاگ ها، با مقایسه توییت های جدید و پیوندهای استفاده شده در آنها استفاده شد (به عنوان مثال، ارزیابی شد که چگونه لینک های خارجی یا اطلاعیه های منتشر شده در توییتر توسط سایر شرکت کنندگان بازپخش می شوند. ).

عملکرد Storm با پلتفرم Hadoop مقایسه می شود، با تفاوت اصلی این است که داده ها در یک انبار ذخیره نمی شوند، بلکه به صورت خارجی دریافت می شوند و در زمان واقعی پردازش می شوند. Storm لایه ذخیره سازی داخلی ندارد و پرس و جوی تحلیلی شروع به اعمال بر روی داده های دریافتی می کند تا زمانی که لغو شود (در حالی که Hadoop از کارهای MapReduce زمان محدود استفاده می کند، Storm از ایده اجرای مداوم "توپولوژی ها" استفاده می کند). اجرای کنترل کننده ها را می توان در چندین سرور توزیع کرد - Storm به طور خودکار کار با رشته ها را در گره های مختلف کلاستر موازی می کند.

این سیستم در اصل به زبان Clojure نوشته شده بود و در داخل ماشین مجازی JVM اجرا می شود. بنیاد آپاچی ابتکاری را برای انتقال Storm به یک هسته جدید نوشته شده در جاوا راه اندازی کرده است که نتایج آن در انتشار Apache Storm 2.0 ارائه شده است. تمام اجزای اصلی پلتفرم در جاوا بازنویسی می شوند. پشتیبانی از گردانندگان نوشتن در Clojure حفظ شده است، اما اکنون به شکل صحافی ارائه می شود. Storm 2.0.0 به جاوا 8 نیاز دارد. مدل پردازش چند رشته ای کاملاً بازطراحی شده است و این امکان رسیدن افزایش قابل توجه عملکرد (برای برخی از توپولوژی ها، تاخیر 50-80٪ کاهش یافت).

سیستم محاسباتی توزیع شده Apache Storm 2.0 در دسترس است

نسخه جدید همچنین یک Streams API جدید تایپ شده ارائه می دهد که به شما امکان می دهد تا با استفاده از عملیات به سبک برنامه نویسی کاربردی، کنترل کننده ها را تعریف کنید. API جدید در بالای API پایه استاندارد پیاده سازی شده است و از ادغام خودکار عملیات برای بهینه سازی پردازش آنها پشتیبانی می کند. Windowing API برای عملیات پنجره پشتیبانی برای ذخیره و بازیابی حالت در backend اضافه کرده است.

پشتیبانی از در نظر گرفتن منابع اضافی هنگام تصمیم گیری نه محدود به
CPU و حافظه، مانند تنظیمات شبکه و GPU. تعداد زیادی پیشرفت برای اطمینان از یکپارچگی با پلتفرم انجام شده است کافکا. سیستم کنترل دسترسی گسترش یافته است تا توانایی ایجاد گروه‌های سرپرست و تفویض توکن‌ها را نیز شامل شود. بهبودهای مربوط به SQL و پشتیبانی معیارها اضافه شده است. دستورات جدیدی در رابط مدیر برای اشکال زدایی وضعیت خوشه ظاهر شده است.

زمینه های کاربردی برای طوفان:

  • پردازش جریان های داده های جدید یا به روز رسانی پایگاه داده در زمان واقعی؛
  • محاسبات پیوسته: Storm می تواند پرس و جوهای مداوم را اجرا کند و جریان های پیوسته را پردازش کند و نتایج پردازش را در زمان واقعی به مشتری ارائه دهد.
  • فراخوان رویه از راه دور توزیع شده (RPC): Storm را می توان برای اجرای موازی پرس و جوهایی با منابع فشرده استفاده کرد. یک کار ("توپولوژی") در Storm تابعی است که در بین گره ها توزیع می شود و منتظر رسیدن پیام هایی است که باید پردازش شوند. پس از دریافت پیام، تابع آن را در زمینه محلی پردازش می کند و نتیجه را برمی گرداند. نمونه ای از استفاده از RPC توزیع شده پردازش پرس و جوهای جستجو به صورت موازی یا انجام عملیات بر روی مجموعه بزرگی از مجموعه ها است.

ویژگی های طوفان:

  • یک مدل برنامه نویسی ساده که پردازش بلادرنگ داده را بسیار ساده می کند.
  • پشتیبانی از هر زبان برنامه نویسی ماژول هایی برای جاوا، روبی و پایتون وجود دارد، سازگاری با زبان های دیگر به دلیل یک پروتکل ارتباطی بسیار ساده که برای پشتیبانی به حدود 100 خط کد نیاز دارد، دشوار نیست.
  • تحمل خطا: برای اجرای یک کار پردازش داده، باید یک فایل jar با کد ایجاد کنید. Storm به طور مستقل این فایل jar را در سراسر گره های خوشه ای توزیع می کند، کنترل کننده های مرتبط با آن را به هم متصل می کند و نظارت را سازماندهی می کند. پس از اتمام کار، کد به طور خودکار در تمام گره ها غیرفعال می شود.
  • مقیاس پذیری افقی تمام محاسبات در حالت موازی انجام می شود؛ با افزایش بار، کافی است به سادگی گره های جدید را به خوشه متصل کنید.
  • قابلیت اطمینان. Storm تضمین می کند که هر پیام دریافتی حداقل یک بار به طور کامل پردازش می شود. پیام تنها در صورتی پردازش می‌شود که هنگام عبور از همه کنترل‌کننده‌ها خطایی وجود نداشته باشد؛ در صورت بروز مشکل، تلاش‌های پردازش ناموفق تکرار خواهند شد.
  • سرعت. کد Storm با در نظر گرفتن کارایی بالا نوشته شده است و از سیستم برای پیام رسانی سریع ناهمزمان استفاده می کند ZeroMQ.

منبع: opennet.ru

اضافه کردن نظر