<

عصر هدوپ

آشنایی با Big Data و کار با Hadoop

عصر هدوپ

آشنایی با Big Data و کار با Hadoop

عصر هدوپ
بایگانی

مطلب ۶ (قسمت دوم) : MapReduce

چهارشنبه, ۵ آذر ۱۳۹۳، ۰۹:۱۷ ق.ظ

تحلیل داده توسط هدوپ

برای اینکه بتوان از ویژگی اصلی هدوپ یعنی انجام پردازش های موازی استفاده کرد، ابتدا می بایست درخواست خود را با استفاده از MapReduce بیان نمود. سپس بعد از انجام تست های محلی، می توان آن را بروی کلاستری از ماشین ها به اجرا درآورد.


Map and Reduce

در MapReduce پردازش به دو فاز تقسیم می شود: فاز map و فاز reduce. هر فاز به عنوان ورودی و خروجی لیستی از زوجهای key-value دارد، که نوع آن توسط برنامه نویس تعیین می شود. همچنین برنامه نویس موظف است برای هر فاز بصورت جداگانه یک تابع بنویسد: تابع map و تابع reduce.

مثال: بیشترین درجه آب و هوا به ازای هر سال را مشخص نمایید.

در مجموعه داده هواشناسی، فایل های لاگ بصورت متنی و سطر به سطر طراحی شده اند، بنابراین در ورودی تابع map مقدار key بیانگر شماره سطر و مقدار value بیانگر محتوای سطر خواهد بود. البته در این مثال از مقدار key استفاده نمی شود. تابع map ساده می باشد. قرار است که دو فیلد سال و درجه از مقدار value استخراج شوند. توجه داشته باشید که به ازای هر سطر از ورودی یک بار تابع map فراخوانی می شود. در این مثال، تابع map تنها آماده سازی داده را انجام می دهد تا به واسطه آن ورودی تابع reduce فراهم شود.


نمونه ای از داده ورودی(هر سطر بیانگر یک رکورد از فایل لاگ):

0067011990999991950051507004...9999999N9+00001+99999999999...

0043011990999991950051512004...9999999N9+00221+99999999999...

0043011990999991950051518004...9999999N9-00111+99999999999...

0043012650999991949032412004...0500001N9+01111+99999999999...

0043012650999991949032418004...0500001N9+00781+99999999999...

نمونه ای از داده ارسال شده (key-value pairs) به تابع map:

(0, 0067011990999991950051507004...9999999N9+00001+99999999999...)

(106, 0043011990999991950051512004...9999999N9+00221+99999999999...)

(212, 0043011990999991950051518004...9999999N9-00111+99999999999...)

(318, 0043012650999991949032412004...0500001N9+01111+99999999999...)

(424, 0043012650999991949032418004...0500001N9+00781+99999999999...)

نمونه ای از داده آماده سازی شده (key-value pairs) توسط تابع map:

(1950, 0)

(1950, 22)

(1950, −11)

(1949, 111)

(1949, 78)

خروجی بدست آمده از تابع map قبل از اینکه به عنوان ورودی به تابع reduce فرستاده شود، ابتدا توسط فریم ورک MapReduce مورد پردازش قرار می گیرد. این پردازش لیست زوجهای key-value را براساس key دسته بندی و مرتب می نماید. بنابراین با انجام این کار ورودی فاز بعد شکل خواهد گرفت.

(1949, [111, 78])

(1950, [0, 22, −11])

همانطورکه مشاهده می کنید به ازای هر سال تعدادی درجه آب و هوا بدست آمده است. تمام کاری که تابع reduce در این مثال انجام می دهد یافتن بزرگترین درجه آب و هوا در هر سال می باشد.

(1949, 111)

(1950, 22)

Hadoop: The Definitive Guide by Tom White

استفاده از این مطلب با ذکر منبع بلامانع می باشد.
موافقین ۰ مخالفین ۰ ۹۳/۰۹/۰۵

نظرات  (۲)

۲۶ آذر ۹۳ ، ۰۸:۵۳ مریم فرخ مهر
عالی بود دست شما درد نکنه
پاسخ:
تشکر.
با سلام و خسته نباشید
با تشکر از مطالب بسیار خوب وبلاگتان
سوالی در مورد تحلیل داده توسط هدوپ داشتم. 
امکانش هست در مورد نصب  Rhadoop نیز در سایت مطلب بگذارین.
با تشکر
پاسخ:
با سلام. تشکر.

راستش بعید می دانم که در حال حاضر فرصت انجام خواسته شما را داشته باشم.

موفق باشید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی