برو به محتوای اصلی
سیاوش محمودیان
بنیانگذار جواب‌کو
۳ سال پیش پرسیده شده

تفاوت اسپارک و هدوپ چیست؟

من کجام؟ اینجا کجاست؟

در جوابکو می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربه‌تون رو به اشتراک بگذارید!

مبین رنجبر
مهندس کلان داده |‌ مدیرعامل شرکت داده پایای سپهر (سهامی خاص)

مقایسه هدوپ و اسپارک اساسا اشتباه است و کاربردهای هرکدام متفاوت است. هدوپ یک فریم‌ورک مدیریت و پردازش کلان داده به صورت توزیع شده می‌باشد و اسپارک یک موتور پردازشی توزیع‌شده درون حافظه‌ای. در نسخه ۱ هدوپ موتور پردازشی که از آن استفاده می‌کرد محدود میشد به MapReduce ولی پس از انتشار نسخه ۲ هدوپ، موتورهای پردازشی دیگری اعم از اسپارک، Flink، Tez، Samza و... هم می‌توانند از هدوپ استفاده کنند. 

حال سوال اینجاست چه استفاده‌ای؟ اسپارک به خودی خود دارای لایه ذخیره‌سازی و ماندگاری داده نیست و می‌بایست داده‌ها در ابتدایی‌ترین شکل یعنی به صورت محلی وارد این ابزار شوند و یا اینکه از فایل سیستم توزیع‌شده هدوپ یا HDFS و یا از Amazon S3 استفاده کنند. پس اولین کاربردی که هدوپ برای اسپارک دارد این بود. دومین کاربرد این است که اسپارک وظایف پردازشی خودش را به صورت تک‌سیستمی زمانبندی می‌کند. به صورت فنی می‌گوییم اسپارک یک Standalone Scheduler دارد و از روش‌های دیگر زمانبندی وظایف پشتیبانی نمی‌کند. حالا زمانی است که YARN نقش خودش را بازی می‌کند و به کمک این موتور پردازشی در جهت زمانبندی توزیع‌شده وظایف آن می‌شتابد.

از دیگر قابلیت‌هایی که هدوپ دارد این است که می‌توانید آنرا تبدیل به یک دیتابیس کنید (با کمک Hbase و یا Hive) ولی اسپارک به دلیل نداشتن لایه ذخیره‌سازی به خودی خود نمی‌تواند نقش یک دیتابیس را بازی کند.

در مقابل اگر اسپارک را به هدوپ متصل کنید می‌توانید داده‌ها را به صورت درون‌حافظه‌ای و Stream پردازش کنید.