# پایگاه‌های داده > NoSQL >  ماهوت و اسپارک

## arshad89

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

----------


## مبین رنجبر

> سلام و حسته نباشید.
> یه مقایسه ای بین ماهوت و اسپارک میخوام. مقاله کاملی در این باره پیدا نکردم. یه کم برام گنگ هستو دوستان میتونید راهنمایی بفرمایید. متشکرم


ماهوت و اسپارک هر کدام ابزارهای جداگانه ای هستند. مقایسه کلیت ماهوت و اسپارک منطقی نیست. به طور مثال می توان کارایی اجرای الگوریتم K-Means را در ماهوت و اسپارک مورد بررسی قرار داد.

----------


## arshad89

> ماهوت و اسپارک هر کدام ابزارهای جداگانه ای هستند. مقایسه کلیت ماهوت و اسپارک منطقی نیست. به طور مثال می توان کارایی اجرای الگوریتم K-Means را در ماهوت و اسپارک مورد بررسی قرار داد.


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

----------


## مبین رنجبر

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


ماهوت یک محیط برای ایجاد برنامه ها و الگوریتم های یادگیری ماشین به صورت توزیع شده می باشد. این زیرپروژه شامل الگوریتم ها و کتابخانه های مختلفی برای داده کاوی می شود که می توان به الگوریتم های خوشه بندی نظیر K-Means و دسته بندی نظیر Naïve Bayes اشاره کرد.



ماهوت همچنین کتابخانه های محسابات ریاضی بر طبق جبر خطی و آمار را نیز برای جاوا فراهم می کند. این زیر پروژه هنوز در حال تکمیل شدن است اما تا به حال الگوریتم های زیادی برای آن پیاده سازی شده است. هرچند Mahout بیشتر به عنوان یکی از زیرپروژه های هدوپ شناخته می شود ولی این به این معنی نیست که وابسته به هدوپ باشد. Mahout می تواند بدون هدوپ و بر روی Single Node و حتی کلاستر غیر هدوپی مورد استفاده قرار گیرد. 

در مقابل اسپارک یک موتور پردازشی سبک و در عین حال قدرتمند است که برای عملیات پردازشی برروی داده های کلان بسیار مناسب می باشد.

----------


## arshad89

> ماهوت یک محیط برای ایجاد برنامه ها و الگوریتم های یادگیری ماشین به صورت توزیع شده می باشد. این زیرپروژه شامل الگوریتم ها و کتابخانه های مختلفی برای داده کاوی می شود که می توان به الگوریتم های خوشه بندی نظیر K-Means و دسته بندی نظیر Naïve Bayes اشاره کرد.
> 
> 
> 
> ماهوت همچنین کتابخانه های محسابات ریاضی بر طبق جبر خطی و آمار را نیز برای جاوا فراهم می کند. این زیر پروژه هنوز در حال تکمیل شدن است اما تا به حال الگوریتم های زیادی برای آن پیاده سازی شده است. هرچند Mahout بیشتر به عنوان یکی از زیرپروژه های هدوپ شناخته می شود ولی این به این معنی نیست که وابسته به هدوپ باشد. Mahout می تواند بدون هدوپ و بر روی Single Node و حتی کلاستر غیر هدوپی مورد استفاده قرار گیرد. 
> 
> در مقابل اسپارک یک موتور پردازشی سبک و در عین حال قدرتمند است که برای عملیات پردازشی برروی داده های کلان بسیار مناسب می باشد.



خوب اگه درست متوجه شده باشم ماهوت مثل به کامپوننت برای هدوپ میمونه که یه سری امکانات به هدوپ اضافه میکنه. ولی کامپوننتی که میتونه جدا از هدوپ فعالیت کنه.پس اگه اینطوره چرا ما باید در بستر هدوپ اون رو استفاه کنیم یا بهتر بگم چه مزیتی داره این کار؟
یه سوال دیگه این که اسپارک در رقابت با هدوپ هست؟ یا نه؟ یعنی ما میتوانیم به جای استفاده از هدوپ از اسپارک استفاده کنیم؟
در یه سایت خوندم که جدیدا ماهوت رو در بستر اسپارک دارند توسعه میدهند. آیا چیزی در این باره شنیدید یا نه؟ اگه بله چه مزیتی میتونه داشته باشه؟

ممنون از راهنماییتون

----------


## مبین رنجبر

> خوب اگه درست متوجه شده باشم ماهوت مثل به کامپوننت برای هدوپ میمونه که یه سری امکانات به هدوپ اضافه میکنه. ولی کامپوننتی که میتونه جدا از هدوپ فعالیت کنه.پس اگه اینطوره چرا ما باید در بستر هدوپ اون رو استفاه کنیم یا بهتر بگم چه مزیتی داره این کار؟
> یه سوال دیگه این که اسپارک در رقابت با هدوپ هست؟ یا نه؟ یعنی ما میتوانیم به جای استفاده از هدوپ از اسپارک استفاده کنیم؟
> در یه سایت خوندم که جدیدا ماهوت رو در بستر اسپارک دارند توسعه میدهند. آیا چیزی در این باره شنیدید یا نه؟ اگه بله چه مزیتی میتونه داشته باشه؟
> 
> ممنون از راهنماییتون


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

اسپارک و هدوپ از نظر ماهیت با هم فرق می کنند و نمی توان آنها را با هم مقایسه کرد. اسپارک یک موتور پردازشی است ولی هدوپ یک سیستم عامل که بخشی از آن پردازش به روش اسپارک است که البته می تواند با روش های دیگری مثل MapReduce هم از آن استفاده کرد. به صورت خلاصه و کلی اسپارک یک نرم افزار از یک سیستم عامل(هدوپ) است که قدرت آن سیستم عامل را چند برابر می کند. اسپارک از خودش فضای ذخیره سازی توزیع شده ای ندارد و می بایست با یک ابزار دیگر ترکیب شود. پس در نهایت نمی توان از اسپارک به جای هدوپ استفاده کرد و یا بلاعکس.

ماهوت میشه گفت ابزار کامل و عالی برای یادگیری ماشین نیست چون هم تعداد الگوریتم های آن هنوز کامل نیست و هم اینکه به تازگی از MapReduce فاصله گرفته. ماهوت را می توان در Spark Shell مورد استفاده قرار داد که می توان با اینکار از توان پردازشی اسپارک در ماهوت بهره برد. هرچند اسپارک روش ها و ابزارهای بهتری از ماهوت برای اینکار دارد مثل MLlib.

----------


## arshad89

> کامپوننت خیر. هر کدام از این ابزارها زیرپروژه های هدوپ هستند و می توانند به صورت ترکیبی مورد استفاده قرار گیرند. فرق استفاده از ماهوت با هدوپ و بدون هدوپ مشابه این است که شما کد یادگیری ماشین و الگوریتم های خودتان را در R و یا متلب بنویسید و به صورت محلی و تک گره اجرا کنید(ماهوت) و یا توسط R و یا متلب در یک فریم ورک و بستر موازی شده که کدها به صورت موازی بر روی چندین گره در کلاستر اجرا شود و حتی بتوان نتایج را با ابزارهای قدرتمند دیگر موجود در هدوپ هم ترکیب نمود. در واقع ماهوت یک ابزار است و هدوپ یک بستر که می توان هرکدام را به صورت مستقل هم به کار برد.
> 
> اسپارک و هدوپ از نظر ماهیت با هم فرق می کنند و نمی توان آنها را با هم مقایسه کرد. اسپارک یک موتور پردازشی است ولی هدوپ یک سیستم عامل که بخشی از آن پردازش به روش اسپارک است که البته می تواند با روش های دیگری مثل MapReduce هم از آن استفاده کرد. به صورت خلاصه و کلی اسپارک یک نرم افزار از یک سیستم عامل(هدوپ) است که قدرت آن سیستم عامل را چند برابر می کند. اسپارک از خودش فضای ذخیره سازی توزیع شده ای ندارد و می بایست با یک ابزار دیگر ترکیب شود. پس در نهایت نمی توان از اسپارک به جای هدوپ استفاده کرد و یا بلاعکس.
> 
> ماهوت میشه گفت ابزار کامل و عالی برای یادگیری ماشین نیست چون هم تعداد الگوریتم های آن هنوز کامل نیست و هم اینکه به تازگی از MapReduce فاصله گرفته. ماهوت را می توان در Spark Shell مورد استفاده قرار داد که می توان با اینکار از توان پردازشی اسپارک در ماهوت بهره برد. هرچند اسپارک روش ها و ابزارهای بهتری از ماهوت برای اینکار دارد مثل MLlib.



خیلی ممنون از توضیحات دقیق و کاملتون. یه سوال دیگه برام پبش اومده و این که برای کاووش داده های حجیم آیا استفاده از اسپارک در بستر هدوپ میتواند ترکیب خوب و سریعی بهمون بده؟ دیگه قاعدتا با توضیحاتی که شما دادید نیازی به استفاده از ماهوت نداریم. درسته؟ چون ما قرار نیست در یه نود بیاییم کاووش داده های حجیم رو انجام بدیم که! ما نیاز به به بستر موازی مثل هدوپ و همچنین یه موتور پردازشی مثل اسپارک داریم . درسته؟؟

----------


## مبین رنجبر

> خیلی ممنون از توضیحات دقیق و کاملتون. یه سوال دیگه برام پبش اومده و این که برای کاووش داده های حجیم آیا استفاده از اسپارک در بستر هدوپ میتواند ترکیب خوب و سریعی بهمون بده؟ دیگه قاعدتا با توضیحاتی که شما دادید نیازی به استفاده از ماهوت نداریم. درسته؟ چون ما قرار نیست در یه نود بیاییم کاووش داده های حجیم رو انجام بدیم که! ما نیاز به به بستر موازی مثل هدوپ و همچنین یه موتور پردازشی مثل اسپارک داریم . درسته؟؟


بله البته اما محدودیت هایی هم داره که ممکن است بسته به موضوعی که میخواهید حل کنید مزیت یا عیب به حساب بیاد. ما 4 موتور پردازشی شناخته شده داریم: MapReduce, TEZ, Flink, Spark. هرکدام از اینها مزایا و معایب خودشان را دارند. من نمیگم نیازی به استفاده ندارید. ماهوت با هدوپ کارایی قابل قبولی داره و میشه گفت متداول تر از MLlib است. دقت کنید که کار اسپارک فراهم کردن بستر یادگیری ماشین نیست و باید از ابزارهای دیگری استفاده شود. این خودش می تواند عیب اسپارک نسبت به ماهوت باشد. (ماهوت و اسپارک) در مقابل (هدوپ و اسپارک و MLlib)- دو ابزار در مقابل سه ابزار.

----------


## arshad89

> بله البته اما محدودیت هایی هم داره که ممکن است بسته به موضوعی که میخواهید حل کنید مزیت یا عیب به حساب بیاد. ما 4 موتور پردازشی شناخته شده داریم: MapReduce, TEZ, Flink, Spark. هرکدام از اینها مزایا و معایب خودشان را دارند. من نمیگم نیازی به استفاده ندارید. ماهوت با هدوپ کارایی قابل قبولی داره و میشه گفت متداول تر از MLlib است. دقت کنید که کار اسپارک فراهم کردن بستر یادگیری ماشین نیست و باید از ابزارهای دیگری استفاده شود. این خودش می تواند عیب اسپارک نسبت به ماهوت باشد. (ماهوت و اسپارک) در مقابل (هدوپ و اسپارک و MLlib)- دو ابزار در مقابل سه ابزار.


بازم از پاسختون و وقتی که گذاشتید سپاسگذارم.
بذارید واضح تر توضیح بدم تا از نظر کارشناسی شما بهتر بتونم استفاده کنم. ببینید من میخوام داده های حجیم رو کاووش کنم طوری که سرعت برام حرف اول رو میزنه. با توجه به مشخصات موتورهای پردازشی من اسپارک رو انتخاب کردم چون سرعتش نسبت به mapreduce تا 100 برابر میتونه بیشتر باشه.(تو مقالات خوندم). از طرفی بستر هدوپ رو نیاز دارم چون روی یه کلاستر، کار شدنی نیست و هدوپ از این لحاظ بهترین گزینه محسوب میشه. حالا میرسیم به بستر یادگیری ماشین! با این شرایط میشه رو ماهوت حساب کرد؟؟
من با توچه به شرایط موازی کار کردن، آیا میتونم از ترکیب ماهوت و اسپارک به تنهایی استفاده کنم؟؟؟ یا برم سراغ مقایسه MLib و ماهوت که ببینم کدوم در ایت ساختار با شرایط من بهتر پاسخگو هست؟؟!! یه کم گیج شدم. :چشمک:

----------


## مبین رنجبر

> بازم از پاسختون و وقتی که گذاشتید سپاسگذارم.
> بذارید واضح تر توضیح بدم تا از نظر کارشناسی شما بهتر بتونم استفاده کنم. ببینید من میخوام داده های حجیم رو کاووش کنم طوری که سرعت برام حرف اول رو میزنه. با توجه به مشخصات موتورهای پردازشی من اسپارک رو انتخاب کردم چون سرعتش نسبت به mapreduce تا 100 برابر میتونه بیشتر باشه.(تو مقالات خوندم). از طرفی بستر هدوپ رو نیاز دارم چون روی یه کلاستر، کار شدنی نیست و هدوپ از این لحاظ بهترین گزینه محسوب میشه. حالا میرسیم به بستر یادگیری ماشین! با این شرایط میشه رو ماهوت حساب کرد؟؟
> من با توچه به شرایط موازی کار کردن، آیا میتونم از ترکیب ماهوت و اسپارک به تنهایی استفاده کنم؟؟؟ یا برم سراغ مقایسه MLib و ماهوت که ببینم کدوم در ایت ساختار با شرایط من بهتر پاسخگو هست؟؟!! یه کم گیج شدم.


باز هم جزئیات مسئله تون کلی هست. تقریبا همه مسائل دنیای کلان داده در پردازش داده های کلان با سرعت بالا خلاصه میشه. میشه از ماهوت و هدوپ استفاده کرد ولی اسپارک نقشی نخواهد داشت چون کارایی ترکیب MLlib با اسپارک و هدوپ بیشتر از ترکیب ماهوت،اسپارک و هدوپ است. فرق ۴ موتور پردازشی رو در زیر قرار دادم:

CO377Q7W8AAsTHu.jpg

----------


## forogh68

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

----------


## mani2000

سلام
ببخشید نمیدونستم کجا باید بپرسم
من میخوام هدوپ رو روی ویندوز7 نصب کنم اما
هر کاری میکنم بمیشه 
کسی هدوپ رو روی ویندوز نصب کرده راهنماییم کنهخواهش میکنم
حیاتیه
ممنون

----------

