در سری مقالات گذشته مربوط به آموزش مدل برنامه نویسی MapReduce در هدوپ ، به آموزش و اجرای مثال شمارش تعداد کلمات پرداختیم که ماهیت اولیه این مدل را معرفی می کرد. در واقع این مثال یکی از مثال های اولیه و اساسی در یادگیری و کار با این موتور پردازشی می باشد.
در بخش سوم این مقاله از سری مقالات آموزش MapReduce قصد داریم مثال ضرب ماتریس را با استفاده از این مدل در هدوپ آموزش بدهیم. در این بخش به ماهیت و چگونگی تحلیل مثال ضرب ماتریس ها و در بخش بعدی به چگونگی پیاده سازی آن پرداخته می شود.
کاربرد ماتریس ها بر کسی پوشیده نیست. از بسیاری از علوم مهندسی گرفته تا فیزیک نظری از ماتریس ها برای تحلیل بسیاری از مسائل روزمره خود بهره می برند. اما چگونگی انجام عملیات مرتبط با ماتریس ها نظیر جمع،تفریق،تقسیم و ضرب آنها از نقش آنها در علوم مختلف مهم تر است. همیشه ماتریس ها محدود به ۳ یا ۴ سطر یا ستون نمی شوند و گاهی هر ماتریس براساس کاربردی که دارند به اندازه ای می رسند که به طور مثال ضرب آنها ماه ها به طول می انجامد. با استفاده از مدل MapReduce می توان عملیات ضرب ماتریس را به صورت موازی و توزیع شده مبتنی بر بستر هدوپ با سرعت و توانایی بالاتری اجرا کرد.
همانطور که در بخش قبل ذکر شد مدل MapReduce از دو کلاس اساسی تشکیل می شود: 1.Map و 2. Reduce
در فاز Map می بایست مقادیر ورودی ما تبدیل به کلید-مقدار ها شوند و در فاز Reduce این کلید-مقدار ها با هم ادغام شده و عملیاتی بر روی آنها انجام می شود و خروجی ما به فرم کلید-مقدار نمایش می یابد.(البته در این بین فازهای دیگری نظیر Combine و Shuffle وجود دارد که در صورت نیاز می توان آنها را به کار برد.)
دو ماتریس زیر را در نظر بگیرید:
در مرحله اول تمامی درایه های ماتریس اول و دوم می بایست به کلید-مقدار تبدیل شوند. چگونه؟ هر درایه ما در ماتریس دارای سطر و ستون و مقدار است. در واقع کلیدهای ما همان نام ماتریس،شماره سطر و شماره ستون و مقدار ما عددی است که در آن درایه وجود دارد. بر همین اساس،در مرحله Map دو ماتریس ما تبدیل به کلید-مقدار شده و آماده پردازش توسط کلاس Reduce می شوند:
A,0,0,value A,0,1,value A,0,2,value A,1,0,value A,1,1,value A,1,2,value A,2,0,value A,2,1,value A,2,2,value B,0,0,value B,0,1,value B,0,2,value B,1,0,value B,1,1,value B,1,2,value B,2,0,value B,2,1,value B,2,2,value
در نهایت در مرحله Reduce مقادیر ماتریس A با مقادیر B ضرب شده و نتیجه به صورت کلید-مقدار با نام C ذخیره می شوند.
در بخش بعدی این مقاله به پیاده سازی عملی این مثال پرداخته می شود. منتظر بخش بعدی باشید.
نویسنده: مبین رنجبر
سلام. ببخشید میشه برنامه نویسی جاوا این رو در اختیارم بگذارید؟
با تشکر
در بخش دوم کد برنامه قرار خواهد گرفت. منتظر باشید.
با سلام ممنون از اموزش خوبتون
میشه لطفا قسمت دوم (پیاده سازی) رو هر چه سریعتر قرار بدین؟
من نیاز فوری دارم! سپاس
حتما. منتظر باشید.
سلام
ممکنه لطفا بخش دوم ضرب ماتریس ها رو با استفاده از مپ ردیوس بذارید 🙏
سلام.ممنون از مطالب مفیدتون.خواستم بدونم پارت دوم رو تا یکی دو روز اینده میذارید؟
سه ساله منتظریم!!!