خانه / کلان داده / ابزار و کتابخانه ها / تحولی در پردازش کلان‌داده با آپاچی ایگنایت – رقیب سازمانی اسپارک

تحولی در پردازش کلان‌داده با آپاچی ایگنایت – رقیب سازمانی اسپارک

آپاچی ایگنایت [۱] یک بستر محاسباتی توزیع شده مبتنی بر حافظه مانند اسپارک است که با هدف پردازش حجم عظیم داده­‌ها به صورت بلادرنگ طراحی شده است. این پروژه که توسط شرکت Grid Gain System ابداع شد، در سال ۲۰۱۴ به بنیاد آپاچی واگذار شده و در سپتامبر ۲۰۱۵ به عنوان یکی از پروژه‌­های سطح بالای آپاچی معرفی شد.

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

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

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

با توجه به اینکه اسپارک و ایگنایت، هر دو سامانه­‌های پردازشی مبتنی بر حافظه هستند، برای بیان نقاط قوت و مزایای ایگنایت، بهتراست نگاهی دقیق­‌تر به روند کار در اسپارک و سپس به ایگنایت بیندازیم. اسپارک با هدف پردازش کوئری­‌های کاربر و اجرای آنها بر روی شبکه‌­ای از رایانه‌­ها(کلاستر) ایجاد شد. با هر پرس­‌و­جو[۲] در اسپارک، داده­‌های مورد نیاز از منابع داده‌ای موجود مانند HDFS و یا بانک­های اطلاعاتی خوانده می­شود. سپس محاسبات لازم با تشکیل زنجیره­‌ای از RDD یا مجموعه­‌داده­‌های مقیم در حافظه اسپارک صورت می­گیرد و بعد از اتمام محاسبات و ذخیره نتایج و یا نمایش آنها به کاربر، این مجموعه­‌داده­‌های شکل گرفته، از حافظه پاک می­شوند تا دستورات بعدی کاربر اجرا شوند.

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

با این توضیح و بیان این موضوع که معماری اسپارک و ایگنایت هر دو مبتنی بر حافظه است به تفاوت بنیادین مابین این دو پروژه می‌پردازیم.

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

برای سامانه‌­های بلادرنگی که ماهیت تراکنشی و یا پردازش بلادرنگ دارند مانند سیستم­های خرید و فروش سهام و تشخیص تقلب و هرجایی که نیاز به پردازش‌­های تراکنش­‌محور داشته باشیم، هم ایگنایت کارآیی مناسب‌تری نسبت به اسپارک نشان می‌دهد و مقیاس‌­پذیری مناسب آن (در نسخه ۲٫۵ به هزاران نود قابل گسترش شده است)هم جزء مزایای دیگر آن محسوب می­شود.

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

برای مطالعه :   بسترهای نوین مدیریت لاگ

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

امکان پردازش جریان­‌های نامحدود هم در ایگنایت فراهم شده است به گونه­‌ای که به راحتی می­توان با یک کلاستر از کامپیوترهای معمولی، تا میلیون­ها رخداد در ثانیه را به کمک آن پردازش کرد.

البته می­توان اسپارک و اینگایت و هدوپ را به صورت مکمل و ترکیبی هم به کار برد به گونه­ای که اسپارک RDD خود را از ایگنایت و از درون حافظه بخواند و پردازش کرده و نتیجه را به کاربر برگرداند. در نسخه ۲٫۵ ایگنایت، می‌توانید مستقیماً دستورات Spark SQL را بر روی حافظه گرید ایجاد شده با ایگنایت اجرا کنید و سرعت اجرای کدهای خود را بالاتر ببرید.

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

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

[۱] Ignite

[۲] Query

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

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

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