<

عصر هدوپ

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

عصر هدوپ

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

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

۲ مطلب با کلمه‌ی کلیدی «Reduce Function» ثبت شده است

با مطالعه و بررسی قسمت اول این مطلب، حال واضح است که چرا سایز مناسب یک Split بهتر است به اندازه سایز یک بلاک از HDFS باشد زیرا این اندازه بیشترین مقدار داده ورودی است که می توان مطمئن بود روی یک نود بصورت کامل ذخیره می شود. اگر یک Split بین دو Block پخش شود، احتمال اینکه که یک نود به تنهایی هر دو بلاک را در خود نگهداری نماید زیاد نخواهد بود، بنابراین در این حالت برخی از Split ها مجبوراند به منظور رسیدن به نودی که اجرای Map Task را برعهده دارد روی شبکه منتقل شوند، که البته روشن است کیفیت این نوع پردازش نسبت به حالتی که داده بصورت محلی وجود دارد متفاوت خواهد بود.

Map Task ها خروجی خود را بروی دیسک محلی ذخیره می نمایند، شاید این سوال مطرح شود که چرا از HDFS به منظور این کار استفاده نمی شود؟ خروجی Map به عنوان یک خروجی میانی شناخته می شود: این داده توسط Reduce Task ها مورد پردازش قرار می گیرد تا بر همین اساس خروجی نهایی به وجود آید، و هر گاه اجرای یک Job به اتمام برسد خروجی Map دیگر مورد استفاده قرار نمی گیرد. بنابراین ذخیره سازی آن بروی HDFS (با در نظر گرفتن مکانیزم تکثیر بلاک ها به منظور جلوگیری از Data Loss) یک کار بیهوده خواهد بود. اگر نود اجرا کننده یک Map Task قبل از اینکه بتواند خروجی خود را به یک Reduce Task برساند با شکست مواجه شود، هدوپ بصورت خودکار آن Map Task را بروی نود دیگری به منظور تولید مجدد خروجی Map دوباره به اجرا در خواهد آورد.

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ دی ۹۳ ، ۰۸:۲۰
مهدی شهیدی صادقی

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

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


Map and Reduce

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

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

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

۲ نظر موافقین ۰ مخالفین ۰ ۰۵ آذر ۹۳ ، ۰۹:۱۷
مهدی شهیدی صادقی