بررسی ابزارهای MapReduce در BigData: تفاوت میان نسخهها
(←مراجع) |
|||
خط ۱۱: | خط ۱۱: | ||
==تاریخچه و معرفی مدل نگاشت کاهشی== | ==تاریخچه و معرفی مدل نگاشت کاهشی== | ||
یکی از فراگیرترین مدل های برنامه نویسی تجمعی برای گران داده مدل نگاشت کاهشی است. که توسط گوگل در سال 2004 پیشنهاد شد و برای پردازش حجم وسیع داده روی ماشین های کلاستر شده به کار گرفته شد.[1] | |||
مدل نگاشت کاهشی بر پایه یک ساختار جفت <کلید ، مقدار> طراحی شده است که در فاز نگاشت، هر برنامه تابع نگاشت، یک تک جفت <کلید ، مقدار> به عنوان ورودی گرفته یک لیست میانی از <کلید ، مقدار> به عنوان خروجی تولید می کند. توضیحات فوق را می توان در قالب فرم زیر نمایش داد:<br /> | |||
map (key1, value1) → {(key2, value2) , . . .} (1) | |||
سپس کتابخانه نگاشت کاهشی تمام جفت های <کلید ، مقدار> میانی را بر اساس کلید گروه بندی می کند. نهایتا تابع کاهش جفت های گروه بندی شده را گرفته و به ازای هر گروه یک جفت <کلید ، مقدار> جدید به عنوان خروجی تولید می کند که می توان به فرم زیر این موضوع را نمایش داد:<br /> | |||
reduce (key2, {value2, . . .}) → (key2, value3) (2)<br /> | |||
دو پیاده سازی از برنامه نویسی نگاشت کاهشی در سال های اخیر Hadoop و Spark می باشند.[1] | |||
== چکیده == | == چکیده == |
نسخهٔ ۲۵ دسامبر ۲۰۱۵، ساعت ۰۶:۳۰
مقدمه
در حال حاضر حجم داده در فضای اینترنت رشد بسیار زیادی در حد ترابایت و پتابایت دارد. همزمان با رشد داده، انواع داده تولیدشده توسط برنامه ها نیز از گذشته بیشتر می شود. در نتیجه روش ذخیره سازی پایگاه های داده رابطه ای دیگر پاسخگو نبوده و بسیاری از شرکت های فعال در زمینه فناوری اطلاعات به پایگاه های داده NoSQL نظیر Cassandra و HBase برای مدیریت گران داده (BigData) روی آورده اند و ممکن است از سیستم های محاسباتی توسعه یافته نظیر Hadoop نیز در کنار آنها استفاده کنند. پایگاه های داده NoSQL معمولا از روش ذخیره سازی کلید-مقدار (key-value)، غیررابطه ای توسعه یافته، با مقیاس افقی و بدون ساختار استفاده می کنند. با این وجود آیا ما امروزه به مدل سازی داده نیاز داریم؟ مدل سازی در روش رابطه ای بر روی پیچیدگی روابط چندین schema تمرکز داشت ولی این موارد برای پایگاه های داده غیررابطه ای و بدون schema دیگر مطرح نیست. لذا روش های مدل سازی داده قدیمی دیگر کارامد نبوده و ما به یک متدولوژی جدید برای مدیریت گران داده نیاز داریم. دیاگرام زیر معماری کلی گران داده را نمایش می دهد:
همان طور که از دیاگرام فوق مشخص است مدل های گران داده در سه لایه نشان داده شده اند:
- لایه داده فیزیکی: داده ای است که ما در یک سیستم گران داده داریم که می تواند در انواع مختلف نظیر video، audio،logs ،business tables و غیره باشد.
- لایه مدل سازی داده: لایه ای است که برای مدیریت داده فیزیکی به کار می رود.
- لایه مدل سازی محاسباتی: لایه کاربردی که برای بازیابی اطلاعات برای ارزش گذاری تجاری به کار می رود.
تمرکز ما در این مقاله بر روی لایه سوم یا مدل سازی محاسباتی می باشد که به بررسی ابزارهای نگاشت کاهشی خواهیم پرداخت.
تاریخچه و معرفی مدل نگاشت کاهشی
یکی از فراگیرترین مدل های برنامه نویسی تجمعی برای گران داده مدل نگاشت کاهشی است. که توسط گوگل در سال 2004 پیشنهاد شد و برای پردازش حجم وسیع داده روی ماشین های کلاستر شده به کار گرفته شد.[1]
مدل نگاشت کاهشی بر پایه یک ساختار جفت <کلید ، مقدار> طراحی شده است که در فاز نگاشت، هر برنامه تابع نگاشت، یک تک جفت <کلید ، مقدار> به عنوان ورودی گرفته یک لیست میانی از <کلید ، مقدار> به عنوان خروجی تولید می کند. توضیحات فوق را می توان در قالب فرم زیر نمایش داد:
map (key1, value1) → {(key2, value2) , . . .} (1)
سپس کتابخانه نگاشت کاهشی تمام جفت های <کلید ، مقدار> میانی را بر اساس کلید گروه بندی می کند. نهایتا تابع کاهش جفت های گروه بندی شده را گرفته و به ازای هر گروه یک جفت <کلید ، مقدار> جدید به عنوان خروجی تولید می کند که می توان به فرم زیر این موضوع را نمایش داد:
reduce (key2, {value2, . . .}) → (key2, value3) (2)
دو پیاده سازی از برنامه نویسی نگاشت کاهشی در سال های اخیر Hadoop و Spark می باشند.[1]
چکیده
با رشد روزافزون حجم و انواع داده ها ضروریست که سازمان ها به دنبال روش هایی برای افزایش سرعت در پردازش داده های حجیم باشند. MapReduce مدلی برای پردازش حجم بسیار بزرگ داده است که اولین بار توسط گوگل ارایه گردید. این مدل شامل دو وظیفه است: اولی وظیفه نگاشت (Map) که داده را از یک مجموعه وسیهع دریافت می کند و عناصر آن به جفت های کلید-مقدار (key-value pairs) شکسته می شوند. و دومین وظیفه که Reduce نام دارد خروجی Map را گرفته و بخش های مختلف داده را با هم ترکیب نموده یک مجموعه کوچکتر از جفت های کلید-مقدار به عنوان خروجی بر می گرداند.
در این مقاله می خواهیم دو ابزار معروف MapReduce به نام های Hadoop و Spark محصول کمپانی Apache را مورد بررسی قرار دهیم.
مراجع
1. Daniel Peralta, Sara del Río, Sergio Ramírez-Gallego, Isaac Triguero, Jose M. Benitez, and Francisco Herrera/Evolutionary Feature Selection for Big Data Classification: A MapReduce Approach/2015/ لینک به مقاله
2. Anand Loganathan, Ankur Sinha, Muthuramakrishnan V., and Srikanth Natarajan/A Systematic Approach to Big Data Exploration of the Hadoop Framework/2014/لینک به مقاله
3.Xing Wu, Yan Liu, Ian Gorton / Exploring Performance Models of Hadoop Applications on Cloud Architecture/2015/لینک به مقاله
4.Xiaoyi Lu ; Dept. of Comput. Sci. & Eng., Ohio State Univ., Columbus, OH, USA ; Rahman, M.W.U. ; Islam, N. ; Shankar, D / Accelerating Spark with RDMA for Big Data Processing: Early Experiences /2014/لینک به مقاله
5.MATEI ZAHARIA, MOSHARAF CHOWDHURY, TATHAGATA DAS, ANKUR DAVE, JUSTIN MA, MURPHY MCCAULEY, MICHAEL J. FRANKLIN, SCOTT SHENKER, AND ION STOICA / Fast and Interactive Analytics over Hadoop Data with Spark /2012/لینک به مقاله
6.Dilpreet Singh and Chandan K Reddy / A survey on platforms for big data analytics /2014/لینک به مقاله