آپاچی اسپارک (Apache Spark) چیست؟

مدرس: مسعود کاویانی

آپاچی اسپارک یک موتورِ قدرتمند، برای پردازش داده‌های بزرگ به صورتِ توزیع‌شده است. منظور از داده‌های بزرگ، داده هایی است که معمولاً بر روی یک کامپیوتر نمی‌توانند پردازش شوند (مثلا داده‌هایی که از مقدار حافظه‌ی اصلیِ (RAM) یک کامپیوتر بیشتر هستند). منظور از «توزیع‌شده» این است که، داده‌ها، بر روی چندین کامپیوتر (که به آنها Node یا گره گفته می‌شود)، قرار دارند و بایستی پردازش شوند. (درس سیستم توزیع‌شده چیست را خوانده باشید)

مثالی را در نظر بگیرید که میخواهید بر روی یک فایل بسیار بزرگ متنی، مثلا یک فایل که بازدید کاربران یک سامانه رادر طیِ ۵سال ذخیره کرده است، عملیاتی انجام دهید. مثلا، تمامی کاربرانی که از شهر تهران، وارد سیستم شده‌اند، را واکشی کنید. اگر این فایل بسیار بزرگ باشد، یا اینکه چندین فایل مختلف بسیار بزرگ داشته باشید (مثلا داده های هر ماه را بر روی یک فایل ذخیره کرده باشید)، قطعاً فیلتر کردنِ این فایل‌های سنگین،‌ به زمان زیادی احتیاج دارد. ممکن است، در مثالِ بالا، حدودِ ۱۲ساعت، پردازش بر روی داده‌ها انجام شود، تا کاربرانِ شهرِ تهران را از بین تمامی شهرها فیلتر کنید.

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

اسپارک می‌تواند از سیستم‌های مختلفِ ذخیره‌سازیِ توزیع شده (مانند HDFS یا Cassandra) استفاده کند. اسپارک در مقایسه با هدوپ (Hadoop)، میتواند بسیار سریع‌تر باشد. این موتورِ پردازشِ سریع، در سال ۲۰۰۹ در دانشگاه برکلی تولید شده است.

آپاچی اسپارک، همچنین از کتابخانه های مختلفی نیز تشکیل شده است. MLib، کتابخانه یادگیری ماشین (Machine Learning) برای اسپارک است و توانایی پردازش الگوریتم‌های مختلف داده‌کاوی (Data Mining) و یادگیری‌ماشین را بر روی بستر اسپارک فراهم می آورد. Graphx، یک کتابخانه دیگر از اسپارک است. این کتابخانه، توانایی پردازش و تحلیل داده‌های گراف (یعنی داده هایی که به صورت گراف نمایش داده می شوند) را دارد. Apache Spark Streaming نیز یک بخش دیگر از آپاچی اسپارک است. این بخش، قابلیت پردازش جریان داده‌ها (داده هایی که در یک بازه‌ی مشخص دیده می‌شوند، مثلا یک بار دیده می شوند و از بین می روند) را نیز دارد.

اسپارک همچنین از زبان های برنامه نویسی متعددی پشتیبانی می کند. Java، Python، R، Scala و همچنین SQL از زبان هایی است که میتوانید، به وسیله آن، با داده‌های موجود در اسپارک کار کنید.

منابع و اطلاعات بیشتر را میتوانید در اینجا و اینجا پیدا کنید.

7 دیدگاه دربارهٔ «آپاچی اسپارک (Apache Spark) چیست؟»

  1. خیلی شفاف و زیبا توضیح میدید واقعا عالیه، لطفا تفاوت اسپارک وهدوپ رو هم بفرمایید متشکرم

    1. اسپارک می‌تواند از سیستم‌های مختلفِ ذخیره‌سازیِ توزیع شده (مانند HDFS یا Cassandra) استفاده کند. اسپارک در مقایسه با هدوپ (Hadoop)، میتواند بسیار سریع‌تر باشد. این موتورِ پردازشِ سریع، در سال ۲۰۰۹ در دانشگاه برکلی تولید شده است.

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

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