no-img
انجمن دانشجویان هوش مصنوعی

معرفي هدوپ و MapReduce به عنوان ابزاري براي تحليل داده هاي عظيم


انجمن دانشجویان هوش مصنوعی
پکیج های آموزشی سایت
اطلاعیه های سایت

ادامه مطلب

ZIP
معرفي هدوپ و MapReduce به عنوان ابزاري براي تحليل داده هاي عظيم
zip
اسفند ۲۷, ۱۳۹۵

معرفي هدوپ و MapReduce به عنوان ابزاري براي تحليل داده هاي عظيم


ابزاري كه براي تجزيه و تحليل داده ها به كار مي روند، روز به روز در حال گسترش و توسعه هستند تا بتوانند بر مبناي انواع داده­اي گوناگون، به جمع­آوري و تجزيه و تحليل داده­ها ، در هر نوعي كمك رساني كنند و در داده­هاي عظيم به دليل ويژگي­هاي خاص آن، ابزارهايي ويژه به كار مي­روند كه با ابزارهاي سنتي مبتني بر رابطه­ي اجزا، متفاوت هستند.

معماری هدوپ و MapReduce

 ابزار موازي سازي هدوپ

تكنولوژي­ هاي بسياري هستند كه در زمينه ­ي پردازش داده­ هاي عظيم مطرح شده­اند، اما هادوپ يكي از معروفترين آنها است. هادوپ يك چارچوب متن­ باز است كه براي پردازش و ذخيره­ سازي اطلاعات از انواع مختلف به كار مي­رود كه صنايع مبتني بر داده را در دسترسي سريع به ارزش­ هاي نهان در داده­ ها و پردازش و كاوش آنها، ياري مي كند. ويژگي هاي اصلي اين ابزار به شرح زير است:

  • اين ابزار به صورت متن باز است و به همين دليل منابع آن و كتابخانه­ ها و توابع به راحتي در دسترس است.
  • لايه ها و اجزاي آن به صورت مستقل عمل مي­كنند و يكپارچه نيستند.
  • از دسترسي به فايل­ هاي خارجي پشتيباني مي­ شود.
  • در هنگام بار زياد سيستم، هادوپ، عمليات انجام يك دستور را به چندين گروه وظيفه مي­ شكند. و به همين دليل برنامه­ ريزي براي كارهايي كه نياز چندين گروه عمليات دارند، ساده­ تر صورت مي­ گيرد.
  • برقراري تعادل خودكار بار در هركدام از گره­هاي سيستم توزيع شده، در هنگامي كه ترافيك داده افزايش مي­يابد.
  • پشتيباني از جايگزيني ماشين­ها و گره­ها در هنگام خرابي

اين ابزار، يك معماري لايه ­اي دارد. در پايين­ ترين سطح يك لايه­ي حافظه­ اي مبتني بر ركورد قرار دارد و اين مجموعه­ ي داده­ اي به صورت سطري و ستوني مديريت مي­شود و در هر ماشين موجود در خوشه­ هاي توزيع شده، يك مدير حافظه وجود دارد كه حافظه ­ي موجود در سيستم را مديريت مي­كند. لايه ي وسط، يك لايه­ي اجراي جريان كاري است كه در آن عملگرهاي رابطه اي براي انجام عمليات بر روي مجموعه­ي داده­ها، وجود دارند. در پايين­ترين سطح نرم افزاري هادوپ، يك فايل سيستم توزيع شده وجود دارد كه به اختصار HDFS ناميده مي­شود. هر فايل در اينجا بخش بندي شده و در دنباله­اي از مكان­هاي حافظه آدرس­پذير و ادامه­دار قرار مي­گيرد و به صورت دسته­اي پردازش مي­شود. در لايه­ي وسطي نرم افزاري فايل­ها، تقسيم­بندي و بخش­بندي شده و هر قسمتي از پردازش در اختيار يك گره قرار مي­گيرد و در نهايت نتايج نيز از گره ­ها جمع آوري شده و تبديل به خروجي نهايي خواهد شد. اين تقسيم­بندي و جمع­بندي، بر اساس تابع Map-Reduce يا نگاشت- كاهش انجام مي­ شود.

  فايل سيستم توزيع شده هدوپ

همان طور كه در قسمت معماري هادوپ اشاره ي كوچكي به اين فايل سيستم شد ، به اختصار آن را HDFS مي­ناميم. و اين قسمت سيستم اصلي حافظه را در هادوپ دربر مي­گيرد. زماني كه اطلاعات وارد مي­شود­، اين فايل سيستم، آنها را به قسمت­هاي كوچكتري تقسيم مي­كند و اين بخش­ها را بين سرويس دهنده­هاي مختلف كه به عنوان يك گره در سيستم قرار گرفته­اند، توزيع مي­كند. هر سرويس دهنده­، فقظ قسمت كوچكي از اطلاعات اصلي را نگه مي­دارد و بر روي آن پردازش انجام مي­دهد. هر كدام از اين بخش­ها براي تحمل پذيري در مقابل خطا، بر روي چندين سرويس دهنده ، كپي شده­اند. گره­ي مركزي كه وظيفه ي نظارت و تقسيم بندي و جمع آوري نتايج را بر عهده دارد Name ناميده مي­شود. گره­هاي مختلف كه اطلاعات را نگه داري مي كنند، گره اطلاعاتي يا Data ناميده مي­شوند و لايه­ ي مياني كه به آن در معماري اشاره شد براي بهينه سازي عملكرد HDFS به كار مي رود كه براي ارتباط بهتر داده­اي به كار مي رود.

هدوپ توسط Doug Cutting سازنده Apache Lucene که بصورت گسترده برای عملیات جستجوی متن­ها استفاده می­شود، تولید شد. در حقیقت به وجود آمدن هدوپ از کار بر روی Nutch شروع شد. Apache Nutch یک فریم ورک متن باز برای ایجاد موتور جستجو است که بصورت گسترده، عملیات جستجوی متن­ها را به روشی که خزیدن یا نام گرفت انجام می دهد. در خصوص نامگذاری نام هدوپ (HADOOP) باید گفت که مخفف عبارت خاصی نیست، این نامی است که پسر Doug برروی عروسک فیل خود که زرد رنگ بود گذاشته بود.

برای شروع، Doug و همکارش Mike ایده ساختن یک موتور جستجوگر وب را در سر داشتند اما این تنها چالش آنها نبود، قیمت سخت افزار یک موتور جستجوگر که ۱ میلیون صفحه وب را جستجو و ایندکس می­کند در حدود ۵۰۰۰۰۰  دلار بود با این وجود آنها باور داشتند که این پروژه یک هدف ارزشمند است.

Nutch در سال ۲۰۰۲ شروع به کار کرد و در همان زمان عملیات و روشهای جستجوی صفحات وب به سرعت رشد کرد. طی زمانی معماران پروژه دریافتند که این پروژه قابلیت و توانایی کار کردن با میلیونها صفحه وب را ندارد، در همان برهه در سال ۲۰۰۳ مقاله­ای از شرکت گوگل منتشر شد که توانست راه گشای مشکل آنها باشد و معماری(Google File system (GFS را توصیف می­کرد.

  تابع نگاشت-كاهش يا MapReduce

يك مدل معماري براي پردازش موازي در سيستم­ هاي محاسباتي توزيع شده است. در اين مدل، داده­ ها به قسمت­هاي كوچكتر تقسيم شده و هر فرايند نيز به دستورات كوچكتر شكسته مي­ شود و گره­هاي مختلف در سيستمهاي توزيع شده، بخشي از عمليات را بر مبناي اين قسمت­ها مديريت مي­كنند. اين امر، باعث مي­شود كه قدرت پردازش بالا برود.

بخش اوليه اين الگوريتم، يعني نگاشت، براي تقسيم داده­ ها استفاده مي­ شود و زير مجموعه­ اي از دستورات و وظايف را به هركدام از گره­ هاي محاسباتي اختصاص   مي ­دهد. در اين مرحله از الگوريتم، ابتدا اطلاعات ورودي خوانده مي­شود و مجموعه­اي از ركوردهاي مياني براي محاسبات توليد مي­شود سپس برچسب گذاري مي­شود. اين ركوردها، در ميان گره­هاي محاسباتي، بر اساس استفاده از توابع درهم ­ساز  توزيع مي شود. گره­ها هركدام فرآيند مربوط به خودشان را به صورت جداگانه و مستقل آغاز مي­كنند. هر كدام نتيجه­ي توليد شده­ي خود را به عنوان خروجي به گره مركزي انتقال مي­دهند در اين زمان، گام دوم الگوريتم يعني كاهش آغاز خواهد شد. اين تابع نتايج را جمع آوري كرده و نتيجه ي اصلي را بر مبناي فرمت درست خروجي توليد خواهد كرد.

این فریم ورک مانند برنامه‌نویسی شی‌ءگرا یک رویکرد است و نیاز به پیاده‌سازی دارد، hadoop  یک پیاده­سازی برای MapReduce است همان‌طور که زبان برنامه‌نویسی C++ یک پیاده‌سازی از  برنامه‌نویسی شی‌ءگرا است. وجود داده‌های عظيم باعث توجه به این روش شده است،دیگر با استفاده از رویکردهای سنتی نمی‌توان داده‌هایی که ۲۰ میلیون رکورد دارد يا متونی که ۱ ترابایت حجم دارد را پردازش کرد. این نیاز باعث شکل‌گیری این فریم ورک شد.



درباره نویسنده

مديريت 56 نوشته در انجمن دانشجویان هوش مصنوعی دارد . مشاهده تمام نوشته های

دیدگاه ها


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *