آپاچی اسپارک چیست؟
آپاچی اسپارک چیست؟
آپاچی اسپارک یک سیستم پردازش منبع باز و توزیع شده است که برای پردازش داده های حجیم استفاده می شود. از حافظه پنهان داخل حافظه و اجرای بهینه پرس و جو برای جستجوهای تحلیلی سریع در برابر داده ها در هر اندازه استفاده می کند. این برنامه API های توسعه را در جاوا ، اسکالا ، پایتون و R ارائه می دهد. و از استفاده مجدد کد در بارهای کاری متعدد-پردازش دسته ای، پرس و جوهای تعاملی، تجزیه و تحلیل زمان واقعی، یادگیری ماشین و پردازش نمودار پشتیبانی می کند.
آپاچی اسپارک چگونه کار می کند؟
آپاچی اسپارک یک مدل برنامه نویسی برای پردازش مجموعه داده های بزرگ با الگوریتم توزیع شده موازی است. توسعه دهندگان می توانند اپراتورهای موازی زیادی را بنویسند. بدون اینکه نگران توزیع کار و تحمل خطا باشند. می توان گفت دغدغه اصلی اسپارک، حل چالش های موجود در هدوپ و MapReduce است. چالش اصلی برای MapReduce فرآیند چند مرحله ای متوالی است که برای اجرای یک کار لازم است. با هر مرحله، MapReduce داده های خوشه را می خواند، عملیات را انجام می دهد و نتایج را به HDFS می نویسد. از آنجا که هر مرحله نیاز به خواندن و نوشتن دیسک دارد، کارهای MapReduce به دلیل تأخیر ورودی/خروجی دیسک کندتر است.
اسپارک برای رفع محدودیت های MapReduce، با پردازش در حافظه، کاهش تعداد مراحل در یک کار و استفاده مجدد از داده ها در چندین عملیات موازی ایجاد شد. با استفاده از اسپارک، تنها یک مرحله لازم است که داده ها در حافظه خوانده شوند. و عملیات انجام شده و نتایج دوباره نوشته شود که منجر به اجرای بسیار سریعتر می شود. اسپارک همچنین با استفاده از یک حافظه نهان در حافظه از داده ها استفاده می کند تا سرعت الگوریتم های یادگیری ماشین را که به طور مکرر یک تابع را در یک مجموعه داده یکسان فراخوانی می کند، بسیار افزایش دهد. استفاده مجدد از داده ها با ایجاد DataFrames انجام می شود. چکیده ای از مجموعه داده های توزیع شده مقاوم (RDD)، که مجموعه ای از اشیاء است که در حافظه ذخیره می شوند و در چندین عملیات Spark مجدداً مورد استفاده قرار می گیرند. این امر به طرز چشمگیری زمان تأخیر را کاهش می دهد و باعث می شود اسپارک چندین برابر سریعتر از MapReduce، به ویژه هنگام یادگیری ماشین و تجزیه و تحلیل تعاملی، عمل کند.
مقایسه آپاچی اسپارک با آپاچی هدوپ
صرفنظر از تفاوت در طراحی اسپارک و هدوپ، بسیاری از سازمان ها این چارچوب های کلان داده را مکمل دانسته اند و از آنها برای حل یک چالش تجاری گسترده تر استفاده می کنند. هدوپ یک چارچوب منبع باز است که سیستم فایل توزیع شده (HDFS) را به عنوان ذخیره سازی، YARN را به عنوان راهی برای مدیریت منابع محاسباتی مورد استفاده در برنامه های مختلف و پیاده سازی مدل برنامه نویسی MapReduce را به عنوان یک موتور اجرایی دارد. در یک پیاده سازی معمولی هدوپ، موتورهای مختلف اجرایی نیز مانند Spark ، Tez و Presto به کار گرفته می شوند.
اسپارک یک چارچوب منبع باز است که بر پرس و جوهای تعاملی، یادگیری ماشین و حجم کاری در زمان واقعی متمرکز شده است. این سیستم ذخیره سازی خاص خود را ندارد، اما تجزیه و تحلیل سیستم های ذخیره سازی دیگر مانند HDFS، یا دیگر فروشگاه های معروف مانند Amazon Redshift ، Amazon S3 ، Couchbase ، Cassandra و دیگران را اجرا می کند. Spark on Hadoop از YARN برای به اشتراک گذاشتن یک خوشه و مجموعه داده مشترک به عنوان سایر موتورهای Hadoop استفاده می کند و سطح خدمات و پاسخگویی را تضمین می کند.
معماری آپاچی اسپارک
1- Spark Core
موتور اصلی اجرای پلت فرم اسپارک است که سایر عملکردها بر اساس آن ساخته شده است. این نرم افزار محاسبه حافظه داخلی و ارجاع مجموعه داده ها در سیستم های ذخیره سازی خارجی را فراهم می کند.
2- Spark SQL
یک ماژول اسپارک برای کار با داده های ساختار یافته است. رابط های ارائه شده توسط Spark SQL اطلاعات بیشتری در مورد ساختار داده و محاسبات در اختیار اسپارک قرار می دهد.
3- Spark Streaming
این بخش به اسپارک اجازه می دهد تا داده های جریان را در زمان واقعی پردازش کند. داده ها را می توان از منابع زیادی مانند Kafka ، Flume و HDFS دریافت کرد. سپس داده ها را می توان با استفاده از الگوریتم های پیچیده پردازش کرد و به سیستم فایل ها، پایگاه های داده و داشبوردهای زنده منتقل کرد.
4- MLlib (Machine Learning Library)
اسپارک مجهز به یک کتابخانه غنی است که به MLlib معروف است. این کتابخانه شامل مجموعه وسیعی از الگوریتم های یادگیری ماشین: طبقه بندی، رگرسیون ، خوشه بندی و فیلترینگ مشارکتی است. همچنین شامل ابزارهای دیگر برای ساخت، ارزیابی و تنظیم خطوط لوله ML است. همه این ویژگی ها به Spark کمک می کند تا در یک خوشه گسترش یابد.
5- GraphX
اسپارک همچنین دارای کتابخانه ای برای دستکاری پایگاه داده های گراف و انجام محاسباتی به نام GraphX است. GraphX فرآیند ETL (استخراج، تبدیل و بارگذاری)، تجزیه و تحلیل اکتشافی و محاسبه نمودار تکراری را در یک سیستم واحد به صورت یکپارچه انجام می هد.
دیدگاهتان را بنویسید