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

آپاچی فلینک : پرچمدار پردازش جریان‌های داده

شرکت عظیم علی‌بابا که به آمازون چین معروف است، هفته گذشته رسما اعلام کرد که شرکت data Artisans که توسط توسعه‌گران اولیه آپاچی فلینک در سال ۲۰۱۴ ایجاد شده است را به قیمت ۹۰ میلیون یورو خریداری کرده است تا باعث رونق صنعت پردازش داده‌های جریانی در دنیا شود. خبری که نوید بخش رشد سریع آپاچی فلینک در سالیان آتی خواهد بود. فلینک به عنوان یکی از پیشروترین موتورهای پردازش جریان‌های داده آپاچی، امروزه توسط شرکتهای بزرگی چون نتفلیکس و اوبر در حال استفاده است. در این مقاله در ادامه مباحث آشنایی با سامانه‌های جریان‌پرداز دنیا، به مرور قابلیتهای این پروژه متن‌باز خواهیم پرداخت.

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

قابلیتهای اصلی زیر باعث محبوبیت این پروژه رو به رشد آپاچی شده اند :

  • امکان پردازش انبوه و زمان‌مند داده‌ها (Batch)
  • پردازش لحظه‌ای تک تک داده‌های وارد شده (یک موتور جریان‌پرداز واقعی)
  • پردازش تعاملی (که کاربر پای سیستم بتواند دستوراتش را اجرا کند و نتیجه را همانجا ببیند)
  • پردازش گراف
  • پردازش‌های محاسباتی و الگوریتم‌های یادگیری ماشین
  • پردازش درون حافظه
  • پردازش داده‌های جدولی (SQL)
  • و بسیاری امکانات منحصر بفرد دیگر (برای مشاهده لیست کامل آنها به این آدرس مراجعه کنید )

در شکل فوق، معماری و مولفه‌های اصلی آپاچی فلینک را مشاهده می‌کنید.

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

اول اینکه پردازش جریان در اسپارک به صورت ریزدسته[۱] است یعنی هر چند رخداد از جریان داده، یک دسته کوچک را تشکیل می­دهند و با هم پردازش می­شوند اما در فلینک، هر رخداد به محض دریافت، پردازش می­شود و واکنش سریعتری را هنگام دریافت داده‌­ها شاهد خواهیم بود.

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

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

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

مزیت مهم دیگری که فلینک با خود به همراه دارد، پشتیبانی از چهار خاصیت اصلی مدیریت تراکنش یعنی ACID است. امری که باعث می‌شود بتوان با خیالی راحت، داده‌های حجیم را پردازش کرده و مطمئن شد که همزمانی پردازش در شبکه، باعث ناسازگاری جواب نهایی نخواهد شد.

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


[۱] MicroBatch

مجتبی بنائی

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

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

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

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

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