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

آپاچی اسپارک یک موتور قدرتمند، برای پردازش داده های بزرگ به صورت توزیع شده است. منظور از داده های بزرگ، داده هایی است که معمولاً بر روی یک کامپیوتر نمیتوانند پردازش شوند(مثلا داد هایی که از مقدار ram یک کامپیوتر بیشتر هستند). منظور از توزیع شده این است که، داده ها، بر روی چندین کامپیوتر(به آنها Node یا گره گفته می شود)، قرار دارند و بایستی پردازش شوند.

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

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

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

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

Apache Spark Streaming نیز یک بخش دیگر از آپاچی اسپارک است. این بخش، قابلیت پردازش جریان داده ها(داده هایی که در یک بازه ی مشخص دیده می شوند، مثلا یک بار دیده می شوند و از بین می روند) را نیز دارد.

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

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

منابع این بحث و اطلاعات بیشتر
در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

پاسخ دهید

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