قبل از پیدایش HDFS و MapReduce
در این مقاله ما قصد داریم علل سوئیچ شرکتهای بزرگ مانند Google ، yahoo ، Facebook به سمت Hadoop Distributed File System و MapReduce را بیان کنیم.
بهتر است قبل از هرچیز نگاهی اجمالی به قبل از مدل MR و HDFS بیندازیم ، این به ما کمک می کند که نگاهی دقیقتر نسبت به این موضوع داشته باشیم که چرا ما نیازمندیم به سوی چیزی بهتر از قبل حرکت کنیم.
از اولین مدلهای کامپیوتری که شروع به استفاده از مدلهای توزیع شده کردند سوپر کامپیوترها بودند .در مدل سوپر کامپیوترها که قبلا و همکنون در مسائل خاص مورد استفاده قرار می گرفتند از مجموعه ای از کامپیوترها استفاده می شد که مدل طراحی آن را کلاسترینگ مدل می نامیدیم، البته نوع و مدل سخت افزاری ، طراحی و تجهیزات شبکه آن با تصورات ما نسبت به کامپیوتر بسیار متفاوت است.
MPI(Message Passing Interface) یک فریم ورک توزیع شده است که قبلا بسیار مورد استفاده بود. اما MPI چگونه کار می کند؟ MPI به زبان ساده از 2 عملکرد تقسیم می شود:
1
2
3
|
MPI_SEND MPI_RECIVE |
برای مثال ماشینM اطلاعاتی را به ماشین K می فرستد و ماشین K پیام دریافت اطلاعات را به ماشین M می فرستد، تکرار این عملیات در مقیاس بسیار وسیع باعث ایجاد Deadlock یا بن بست می شود.
اجازه دهید با یک مثال مسئله را شفافتر کنیم :
پردازشگر 2 اطلاعات A را به پردازشگر 1 ارسال می کند زمانی که پردازشگر 1 تمام اطلاعات را دریافت کرد، پردازشگر 1 شروع به ارسال اطلاعات B به پردازشگر 2 می کند و بسیار آسان همین عملیات ممکن است به بن بست ختم شود، زمانیکه پردازشگر 1 منتظر اطلاعات B است که در اختیار پردازشگر 2 می باشد و در همین حین پردازشگر 2 نیز منتظر اطلاعات Aاست که در اختیار پردازشگر 1 است . به زبان ساده تر پردازشگرها منتظر منابعی هستند که در اختیار پردازشگر دیگر می باشند و این باعث بن بست می شود.
راه حلهای متفاوتی برای حل این مسئله وجود دارد مانند MPI_SendRec ولی در کل این وظیفه برنامه نویسان است که راهی برای آزاد کردن منابع درخواستی ارائه دهند زیرا در محیط واقعی هزاران ماشین هستند که در هر دقیقه به دهها بن بست بر می خورند و مدیریت اینچنین سیستمی بسیار وقتگیر و طاقت فرسا می باشد.