Apache Spark

Apache Spark چیست؟

Apache Spark  یک چهارچوب متن باز پردازش موازی برای اجرای برنامه های تجزیه و تحلیل داده در مقیاس بزرگ در رایانه های خوشه بندی شده است که می تواند هر دو تجزیه و تحلیل دسته ای و بلادرنگ و نیز داده های مربوط به پردازش داده ها را رسیدگی کند.

Spark  یک پروژه سطح بالا در بنیاد نرم افزار آپاچی در فوریه ۲۰۱۴ بود و نسخه ۱٫۰ Apache Spark در ماه می ۲۰۱۴ و نسخه ۲٫۰  Spark در ژوئیه ۲۰۱۶ منتشر شد.

این فن آوری در ابتدا در سال ۲۰۰۹ توسط محققان دانشگاه کالیفرنیا برکلی و به عنوان راهی برای سرعت بخشیدن به کارهای پردازشی در سیستم های هدوپ طراحی شده بود.

هسته Spark  ، قلب پروژه ای که انتقال کار توزیع شده ، زمانبندی و عملکرد I / O را برای برنامه نویسان با جایگزینی به طور بالقوه سریع تر و انعطاف پذیرتر نسبت به  MapReduce-چهارچوب نرم افزاری که به نسخه های اولیه هدوپ وابسته بود- فراهم می کند. توسعه دهندگان Spark می گویند که Spark  می تواند کار ها را ۱۰۰ برابر سریعتر از MapReduce هنگام پردازش در حافظه و ۱۰ برابر سریعتر روی دیسک اجرا کند.

Apache Spark  چگونه کار می کند؟

Apache Spark  می تواند داده ها را از انواع مخازن داده، از جمله سیستم فایل توزیع شده هدوپ  (HDFS)، پایگاه داده های NoSQL  و فروشگاه های اطلاعات مرتبط مانند Apache Hive پردازش کند.  Spark  برای افزایش کارایی برنامه های تجزیه و تحلیل کلان داده ها، پردازش در حافظه را پشتیبانی می کند، اما می تواند برای پردازش متداول مبتنی بر دیسک زمانی که مجموعه های داده به اندازه حافظه سیستم موجود خیلی بزرگ نیستند نیز مناسب باشد.

موتور هسته Spark  از مجموعه داده های انعطاف پذیر توزیع شده یاRDD  (resilient distributed data) به عنوان نوع داده اولیه آن استفاده می کند.  RDD  به گونه ای طراحی شده است تا بسیاری از پیچیدگی های محاسباتی را از کاربران پنهان کند و داده ها را جمع آوری کرده و در یک خوشه سرور پارتیشن بندی می‌کند، جایی که بعدا می تواند محاسبه و به یک data store متفاوت منتقل شود یا از طریق یک مدل تحلیلی اجرا شود. کاربر مجبور نیست که مشخص کند کدام فایل ها ارسال شده یا چه منابع محاسباتی برای ذخیره یا بازیابی فایل ها استفاده می شوند. علاوه بر این، Spark  می تواند بیش از برنامه های پردازش دسته ای که MapReduce محدود به اجرا است، رسیدگی کند.

کتاب خانه های Apache Spark

بخشی از وظیفه موتور هسته Spark  به عنوان یک رابط برنامه نویسی کاربردی (API) عمل می کند و بر پایه مجموعه ای از ابزارهای مرتبط برای مدیریت و تجزیه و تحلیل داده ها پی ریزی شده است.  علاوه بر موتور پردازش Spark  هسته، محیط Apache Spark API  با برخی از کتابخانه های کد برای استفاده در برنامه های تجزیه و تحلیل داده بسته بندی شده است.  این کتابخانه ها عبارتند از:

Spark SQL:  یکی از محبوب ترین کتابخانه ها، Spark SQL  کاربران را قادر می سازد داده های ذخیره شده در برنامه های متفاوتی را با استفاده از زبان SQL مشترک استفاده کنند.

Spark Streaming: این کتابخانه کاربران را قادر می سازد برنامه های کاربردی که تجزیه و تحلیل و ارائه داده ها را به صورت در لحظه انجام میدهند، بسازند.

MLlib: کتابخانه ای از کد یادگیری ماشین است که کاربران را قادر می سازد تا عملیات پیشرفته آماری را به داده های خوشه Spark  خود اعمال کنند و برنامه های کاربردی را پیرامون این تحلیل ها ایجاد کنند.

 GraphX: یک کتابخانه ساخته شده از الگوریتم های محاسبات موازی گراف است.

زبان های Apache Spark

Spark در Scala نوشته شده است، که به عنوان زبان اصلی برای ارتباط با موتور هسته Spark شناخته می شود. بیرون هسته، Spark  همچنین با رابط های API برای استفاده از جاوا و پایتون همراه است.  جاوا به عنوان زبانی بهینه برای مهندسی داده ها و یا علم داده شناخته نمی شود، بنابراین بسیاری از کاربران به Python  متکی هستند، که ساده تر بوده و بیشتر به تحلیل داده ها متکی است.همچنین یک بسته برنامه نویسی R وجود دارد که کاربران می توانند دانلود و در Sparkاجرا کنند.  این کار کاربران را قادر می سازد زبان علمی داده های دسکتاپ محبوب را در مجموعه داده های توزیع شده گسترده تر در Spark اجرا کرده و از آن برای ساخت برنامه های کاربردی که الگوریتم های یادگیری ماشین را به کار می گیرند، استفاده کنند.

 موارد کاربرد Apache Spark

طیف گسترده ای از کتابخانه های Spark و توانایی آن ها برای محاسبه داده ها از انواع مختلفی از data store ها به این معنی است که Spark می تواند به بسیاری از مشکلات مختلف در بسیاری از صنایع اعمال شود.  شرکت های تبلیغاتی دیجیتال از آن برای حفظ پایگاه های فعالیت وب و طراحی های تبلیغاتی برای مصرف کنندگان خاص استفاده می کنند. شرکت های مالی از آن برای استفاده از داده های مالی استفاده کرده و مدل هایی را برای هدایت فعالیت های سرمایه گذاری اجرا می کنند. شرکت های کالاهای مصرفی از آن برای جمع آوری داده های مشتری و پیش بینی روند برای هدایت تصمیم گیری های موجودی و کشف کردن فرصت های جدید بازار استفاده می کنند.

شرکت های بزرگ که با برنامه های کلان داده ها کار می کنند، از Spark به دلیل سرعت و توانایی آن برای اتصال چندین نوع پایگاه داده و اجرای انواع مختلف برنامه های تجزیه و تحلیل استفاده می کنند.  همانطور که از این نوشتار بر می آید،Spark  بزرگترین جامعه متن باز در کلان داده ها است و بیش از ۱۰۰۰ همکار از بیش از ۲۵۰ سازمان دارد.

 

نویسنده نوشته: N.M

N.M

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

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