آموزش آپاچی اسپارک (Apache Spark)

دسته بندی: فریمورک ها

آپاچی اسپارک

آنچه در این صفحه می خوانید:

آپاچی اسپارک چیست؟

آپاچی اسپارک یک فریمورک محاسبات توزیع شده همه منظوره اوپن سورس است. اسپارک واسط برای برنامه نویسی کل توزیع ها با موازی سازی داده ها و تلرانس را فراهم می کند. ابتدا در دانشگاه کالیفرنیا، AMPLab برکلی توسعه یافته، بانک کد Spark بعداً به بنیاد نرم افزار آپاچی اهدا شد، که از آن زمان تاکنون نیز ادامه دارد. در ابتدا Spark به ما یک فریمورک جامع و یکپارچه برای مدیریت نیازهای پردازش کلان داده با مجموعه های متنوع و مختلف داده (داده های متنی، نمودار داده ها و غیره) و نیز منبع داده را ارائه می دهد. Spark این امکان را فراهم می کند تا سریعا برنامه های کاربردی را در جاوا، اسکالا یا پایتون بنویسید. این فریمورک دارای بیش از 80 اپراتور سطح بالا است. شما می توانید آن را به صورت تعاملی برای پرس و جوی داده های درون پوسته استفاده کنید. علاوه بر نقشه و کاهش عملیات، از کوئری های اس کیو ال، جریان داده ها، یادگیری ماشینی و پردازش داده های گرافیکی پشتیبانی می کند.

معماری آپاچی اسپارک

آپاچی اسپارک به عنوان پایه معماری خود، مجموعه داده های توزیع شده انعطاف پذیر (RDD)، یک مجموعه داده فقط خواندنی از داده های توزیع شده در یک توزیع از کلاستر ماشین ها، که به شکل تلرانس حفظ می شود را قرار داده است. API Dataframe به عنوان یک انتزاع در بالای RDD و پس از آن API Dataset منتشر می شود. در Spark 1.x ،RDD رابط برنامه نویسی اصلی برنامه (API) است، اما با استفاده از Spark 2.x از Dataset ،API حتی اگر RDI API کم ارزش نباشد، مورد تشویق قرار می گیرد. فناوری RDD هنوز زیر مجموعه API Dataset است.

اسپارک و RDD های آن در سال 2012 در پاسخ به محدودیت های موجود در پارادایم محاسبات توزیع شده MapReduce توسعه داده شده است، که یک ساختار داده خطی خاص dataaflow را در برنامه های توزیع شده وادار می کند که برنامه های MapReduce داده های ورودی را از دیسک بخوانند، تابع را در سراسر داده ها تبدیل به نقشه کند، نتایج نقشه را کاهش دهد و سطح ذخیره سازی روی دیسک را کاهش دهد. عملکرد RDD های Spark به عنوان یک مجموعه کاری برای برنامه های توزیع شده است که یک شکل محدود از حافظه مشترک توزیع شده را ارائه می دهد.

اسپارک اجرای هر دو الگوریتم تکراری را تسهیل می کند، که چندین بار از داده های خود بازدید می کنند و به صورت حلقه ای و تجزیه و تحلیل داده های تعاملی / اکتشافی، یعنی پرس و جو از داده های پایگاه داده تکرار می شوند. تأخیر چنین برنامه هایی ممکن است در مقایسه با اجرای Apache Hadoop MapReduce توسط تعداد درخواست زیاد کاهش یابد. در میان کلاس الگوریتم های تکرار شونده، الگوریتم های آموزش برای سیستم های یادگیری ماشینی هستند که انگیزه اولیه برای توسعه آپاچی اسپارک را تشکیل می دهند.

Apache Spark به یک مدیر توزیع و یک سیستم ذخیره سازی توزیع شده نیاز دارد. برای مدیریت توزیع، Spark از standalone (توزیع نیتیو Spark، که در آن می توانید یک توزیع را بصورت دستی راه اندازی کنید یا از اسکریپت های ارائه شده بوسیله نصب پکیج استفاده کنید) پشتیبانی می کند. همچنین می توان این daemon ها را برای تست در یک دستگاه اجرا کرد. Hadoop YARN ،Apache Mesos یا Kubernetes. برای ذخیره سازی توزیع شده، Spark می تواند با طیف گسترده ای از جمله Alluxio ،Hadoop Distributed File System (HDFS) ،MapR File System (MapR-FS) ،Cassandra ،OpenStack Swift ،Amazon S3 ،Kudu ،Lustre file system رابط کند. یک راه حل سفارشی قابل اجرا است. اسپارک همچنین از یک حالت شبه محلی توزیع شده پشتیبانی می کند، که معمولاً فقط برای اهداف توسعه یا آزمایش مورد استفاده قرار می گیرد، جایی که ذخیره سازی توزیع شده مورد نیاز نیست و به جای آن می توان از سیستم فایل محلی استفاده کرد. در چنین سناریویی، Spark بر روی یک دستگاه واحد با یک مجری در هر هسته پردازنده اجرا می شود.

ویژگی های آپاچی اسپارک

سرعت

با استفاده از محاسبات درون حافظه و بهینه سازی های دیگر، Spark می تواند 100 برابر سریعتر از Hadoop برای پردازش داده های در مقیاس بزرگ باشد. اسپارک همچنین سریع است وقتی داده ها روی دیسک ذخیره می شوند و در حال حاضر رکورد جهانی برای مرتب سازی بر روی دیسک در مقیاس بزرگ را در اختیار دارد.

راحتی در استفاده

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

موتور یکپارچه

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

از دیگر ویژگی های اسپارک می توان به موارد زیر اشاره کرد:

  • بهینه سازی مراحل جریان پردازش داده ها
  • ذخیره سازی زیاد داده در حافظه
  • پشتیبانی از نقشه و کاهش عملکرد
  • بهینه سازی نمودارهای اپراتور دلخواه
  • ارائه ی API های مختصر و سازگار در Scala ،Java و Python
  • ارائه ی پوسته تعاملی برای Scala و Python

Spark با زبان برنامه نویسی Scala نوشته شده است و در محیط ماشین مجازی جاوا (JVM) اجرا می شود. در حال حاضر از زبان های زیر برای توسعه برنامه های کاربردی پشتیبانی می کند:

به غیر از Spark Core API، کتابخانه های اضافی وجود دارند که بخشی از اکوسیستم Spark هستند و قابلیت های اضافی در زمینه تجزیه و تحلیل داده های بزرگ و حوزه های یادگیری ماشینی را فراهم می کند.

  • Spark Streaming
  • Spark SQL
  • Spark MLlib
  • Spark GraphX
  • BlinkDB
  • Tachyon

مقایسه آپاچی اسپارک با هدوپ

شایان ذکر است که آپاچی اسپارک در مقابل آپاچی هدوپ کمی اشتباه است. Spark را این روزها در بیشتر توزیع های Hadoop مشاهده خواهید کرد. اما به دلیل دو مزیت بزرگ، Spark هنگام پردازش داده های بزرگ، سبقت را به الگوی MapReduce قدیمی که Hadoop را برجسته کرده است، به فریمورک انتخاب شده تبدیل کرده است.

اولین مزیت سرعت است. موتور داده حافظه Spark به این معنی است که می تواند در مواقع خاص، به ویژه در مقایسه با کارهای چند مرحله ای که نیاز به نوشتن حالت برای برگشت به دیسک بین مراحل دارند، انجام وظایف تا صد برابر سریعتر از MapReduce را انجام دهد. حتی مشاغل Apache Spark که در آن داده ها کاملاً در حافظه موجود نیستند، تقریباً 10 برابر سریعتر از همتای MapReduce خود هستند. مزیت دوم Spark API سازگار با توسعه دهنده است. با توجه به سرعت عمل Spark مهم است، می توان ادعا كرد كه دوست بودن با Spark API از اهمیت بیشتری برخوردار است.

آپاچی اسپارک و پایتون

PySpark مدل برنامه نویسی Spark را در اختیار پایتون قرار می دهد. PySpark به Python 2.6 یا بالاتر نیاز دارد. برنامه های PySpark با استفاده از یک مترجم استاندارد CPython به منظور پشتیبانی از ماژول های Python که از پسوند C استفاده می کنند، اجرا می شوند. به طور پیش فرض، PySpark به پایتون نیاز دارد تا در سیستم PATH موجود باشد و از آن برای اجرای برنامه ها استفاده کند. با تنظیم متغیر محیط PYSPARK_PYTHON در conf / spark-env.sh (یا cmd. در ویندوز) ممکن است یک Python جایگزین قابل اجرا باشد.

تمام وابستگی های کتابخانه PySpark، از جمله Py4J، با PySpark همراه شده و به طور خودکار وارد می شوند. برنامه های مستقل PySpark باید با استفاده از اسکریپت bin / pyspark، که به طور خودکار محیط جاوا و پایتون را با استفاده از تنظیمات conf / spark-env.sh یا cmd. پیکربندی می کند، انجام شود.

چند تفاوت اساسی بین API های پایتون و Scala وجود دارد:

  • پایتون به صورت پویا تایپ می شود، بنابراین RDD ها می توانند اشیاء از انواع مختلف را در خود نگه دارند.
  • PySpark هنوز چند تماس API مانند پرونده های جستجو و ورودی را غیر از متن پشتیبانی نمی کند، اگرچه این نسخه ها در نسخه های آینده اضافه می شوند.
آیا این نوشته را دوست داشتید؟
pluralsight-structured-streaming-in-apache-spark-2

آشنایی با جریان سازی ساختار یافته در Apache Spark 2


در این دوره، شما با درک نحوه کار Structured Streaming و آنچه آن را متفاوت و قدرتمندتر از اپلیکیشن های جریانی سنتی کرده است؛ یعنی معماری جریان سازی پای...

1399/10/26 332 بازدید
linkedin-apache-spark-deep-learning-essential-training

آموزش اصولی یادگیری عمیق Apache Spark


مدرس قبل از اینكه به طور كامل یادگیری عمیق روی Spark را با استفاده از Python بررسی کند، روش های مختلفی برای یادگیری عمیق در Spark و همچنین كتابخانه ها...

1399/03/01 2599 بازدید زیرنویس دارد
linkedin-introduction-to-spark-sql-and-dataframes

مقدمه ای بر Spark SQL و DataFrames


Apache Spark به توسعه دهندگان Spark اجازه می دهد تا عملیات رایج داده مانند فیلتر، جمع آوری و همچنین تجزیه و تحلیل پیشرفته داده را روی مجموعه های بزرگی...

1398/12/05 1275 بازدید زیرنویس دارد
skillshare-big-data-analysis-with-apache-spark-pyspark-python

آموزش تحلیل کلان داده با Apache spark - پایتون PySpark


در این دوره موارد زیر را می آموزید: آشنایی با کلان داده و Apache spark/ شروع کار با databricks/ مرحله نصب دقیق در دستگاه اوبونتو - لینوکس/ پایتون برای...

1398/11/16 2713 بازدید
laracasts-laravel-spark

آموزش Laravel Spark


Spark که قرار است در تاریخ 19 آوریل به بازار عرضه شود، نقطه شروع ایده آل برای ایده بزرگ بعدی شما است. تمام boilerplate را فراموش کنید و روی موارد مهم ...

1398/10/19 1491 بازدید
packtpub-data-stream-development-with-apache-spark-kafka-and-spring-boot-video

توسعه استریم داده با آپاچی اسپارک (Spark)، کافکا و Spring Boot


در این دوره حجم زیادی از داده را با سرعت بالا اداره می کنید و کانال ارتباطی استریم داده end-to-end را معماری و پیاده سازی خواهید کرد. درباره معماری جر...

1398/08/15 2620 بازدید
packtpub-deep-learning-with-apache-spark

یادگیری عمیق با Apache Spark


در این دوره بکارگیری یادگیری عمیق بر بستر آپاچی اسپارک (Apache Spark) آشنا خواهید شد. با نحوه استفاده از مدل‌های آموزش دیده و ساخت مدل خود و موارد دیگ...

1398/06/09 2555 بازدید
packtpub-advanced-analytics-and-real-time-data-processing-in-apache-spark

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


ین آموزش جامع شما را با کلیه جوانب تحلیلی در زمان واقعی با Apache Spark، یکی از فریمورک های پردازش کلان داده، آشنا می کند. این دوره به شما نشان می دهد...

1398/06/03 1736 بازدید
packtpub-hands-on-machine-learning-with-scala-and-spark

آموزش یادگیری ماشینی با Scala و Spark


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

1398/05/30 2068 بازدید
packtpub-apache-spark-in-7-days

آموزش آپاچی اسپارک در 7 روز


اگر به دنبال راهی هستید تا در مدت زمان کوتاهی مفاهیم اصلی Apache Spark را یاد بگیرید، روی این دوره حساب کنید، چرا که می تواند به شما در یادگیری مبانی ...

1398/02/30 6707 بازدید
packtpub-big-data-analytics-using-apache-spark

تجزیه و تحلیل کلان داده با آپاچی اسپارک (Apache Spark)


این دوره به شما نشان می دهد که چگونه از منابع داده مختلف، محتوای ساختار یافته، نیمه ساختار یافته و بدون ساختار به دست آورید.شما نحوه کوئری زدن در داده...

1398/02/17 2994 بازدید
packtpub-big-data-processing-with-apache-spark

پردازش کلان داده با آپاچی اسپارک (Apache Spark)


پردازش کلان داده یا بیگ دیتا به صورت Real Time با توجه به موضوع تحمل خطاها و ثبات اطلاعات یک مساله چالش برانگیز است.دوره پردازش کلان داده با آپاچی اسپ...

1398/02/17 2657 بازدید
packtpub-hands-on-pyspark-for-big-data-analysis

آموزش PySpark برای تحلیل کلان داده


این دوره به آموزش پردازش و تحلیل کلان داده با PySpark می پردازد. Spark Python API یا PySpark یک زبان عالی برای انجام تحلیل داده های اکتشافی در مقیاس ...

1398/02/03 3676 بازدید
infiniteskills-using-r-for-big-data-with-spark

استفاده از R برای کلان داده با استفاده از اسپارک (Spark)


در این دوره، تحلیلگران داده های آشنا با زبان R، بهره برداری از توان Spark، محاسبات توزیع شده و ذخیره سازی ابر را می آموزند، این دوره نحوه استفاده از م...

1398/02/02 2166 بازدید
packtpub-apache-spark-deep-learning-recipes-video

دستورالعمل های یادگیری عمیق (Deep Learning) با آپاچی اسپارک (Apache Spark)


این دوره ویدئویی، با توضیح روند توسعه یک شبکه عصبی از ابتدا، با استفاده از کتابخانه های یادگیری عمیق مانند Tensorflow یا Keras آغاز می شود. این دوره ب...

1398/01/21 3209 بازدید
oreilly-debugging-apache-spark

آموزش عیب یابی آپاچی اسپارک (Apache Spark)


این ویدیو برای توسعه دهندگان سطح متوسط اسپارک و دانشمندان علوم داده طراحی شده و برخی از رایج ترین (و مبهم) شیوه هایی که اسپارک می تواند استثنا های حاف...

1398/01/17 1482 بازدید
packtpub-apache-spark-tips-tricks-techniques-video

آموزش Apache Spark - نکات، ترفند ها و تکنیک ها


مدت زمان زیادی است که Apache Spark  را استفاده می کنیم، ولی آیا میدانید که چگونه بیشترین بهره را از آن بگیرید؟ از اینرو هدف ما آموزش  بهترین روش ها  ب...

1397/11/06 1162 بازدید
packtpub-troubleshooting-apache-spark-video

عیب یابی Apache Spark


در این آموزش تصویری با تکنیک ها و راه حل های سریع برای عیب یابی Apache Spark آشنا می شوید. رویکرد این دوره به صورت پرسش و پاسخ و ارائه راه حل های ساد...

1397/10/24 1072 بازدید
packtpub-apache-spark-streaming-with-python-and-pyspark-video

آموزش Apache Spark Streaming با پایتون و PySpark


طبق گفته های IBM، حدود 90% از داده ها در جهان امروز تنها در دو سال گذشته ایجاد شده است. خروجی فعلی ما تقریبا 2.5 کونتیلیون بایت  (10 به توان 30) در رو...

1397/08/16 2122 بازدید
teamtreehouse-build-a-rest-api-in-spark

آموزش ایجاد REST API در Spark


در این کارگاه با نحوه ایجاد REST API در فریمورک میکرو فوق العاده Spark آشنا می شوید. Apache Spark یک موتور تجزیه و تحلیل یکپارچه برای پردازش داده های...

1397/07/22 1209 بازدید