SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
‫مدل‬MapReduce
‫رضایی‬‫ناصر‬
nasser.rezaei.novin@gmail.com
‫مقدمه‬
•MapReduce‫است‬ ‫ها‬ ‫داده‬ ‫پردازش‬ ‫ای‬‫ر‬‫ب‬ ‫نویسی‬ ‫نامه‬‫ر‬‫ب‬ ‫مدل‬.
•Hadoop‫های‬ ‫نامه‬‫ر‬‫ب‬ ‫تواند‬ ‫می‬MapReduce‫کند‬ ‫ا‬‫ر‬‫اج‬ ‫را‬ ‫مختلف‬ ‫های‬ ‫زبان‬ ‫در‬ ‫شده‬ ‫نوشته‬.
•‫های‬ ‫نامه‬‫ر‬‫ب‬MapReduce‫شوند‬ ‫می‬ ‫ا‬‫ر‬‫اج‬ ‫موازی‬ ‫صورت‬ ‫به‬.
Map‫و‬Reduce
•MapReduce‫شود‬ ‫می‬ ‫تقسیم‬ ‫قسمت‬ ‫دو‬ ‫به‬.Map‫و‬Reduce.
•‫کلید‬ ِ‫جفت‬ ‫دارای‬ ‫فاز‬‫هر‬-‫است‬ ‫خروجی‬ ‫ای‬‫ر‬‫ب‬ ‫مقدار‬ ‫کلید‬ ِ‫جفت‬ ‫و‬ ‫ورودی‬ ‫ای‬‫ر‬‫ب‬ ‫مقدار‬.
•‫ورودی‬Map‫از‬HDFS‫به‬ ‫آن‬ ‫خروجی‬ ‫و‬ ‫شود‬ ‫می‬ ‫گرفته‬Reduce‫شود‬ ‫می‬ ‫ارسال‬.
•‫سازی‬ ‫پیاده‬ ‫ای‬‫ر‬‫ب‬ ‫نویس‬ ‫نامه‬‫ر‬‫ب‬MapReduce‫حداقل‬ ‫باید‬2‫تابع‬Map‫و‬Reduce‫ای‬‫ر‬‫ب‬ ‫تابعی‬ ‫و‬
‫کند‬ ‫سازی‬ ‫پیاده‬ ‫را‬ ‫دو‬ ‫این‬ ‫اخوانی‬‫ر‬‫ف‬.
‫سازی‬ ‫پیاده‬MapReduce
•MapReduce‫مساله‬ ‫یک‬ ‫قالب‬ ‫در‬:
•‫آوریم‬ ‫بدست‬ ‫را‬ ‫سال‬‫هر‬ ‫در‬ ‫هواشناسی‬ ‫های‬ ‫ایستگاه‬ ‫توسط‬ ‫شده‬ ‫ثبت‬ ‫دمای‬ ‫ترین‬ ‫بیش‬ ‫میخواهیم‬.
•‫داد‬ ‫انجام‬ ‫موازی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫ها‬ ‫پردازش‬ ‫توان‬ ‫می‬ ‫سرعت‬ ‫ایش‬‫ز‬‫اف‬ ‫ای‬‫ر‬‫ب‬.
‫است‬ ‫پردازش‬ ‫یک‬ ‫توسط‬ ‫سال‬‫هر‬ ‫دمای‬ ‫بیشترین‬ ‫آوردن‬ ‫بدست‬ ،‫موازی‬ ‫سازی‬ ‫پیاده‬ ‫ترین‬ ‫ساده‬.
‫اوال‬:‫است‬ ‫متفاوت‬ ‫سال‬‫هر‬ ‫در‬ ‫شده‬ ‫ثبت‬ ‫داده‬ ‫ان‬‫ز‬‫می‬ ‫که‬ ‫آنجایی‬ ‫از‬(‫اض‬ ‫ا‬‫ر‬‫اخی‬ ‫ها‬ ‫ایستگاه‬ ‫از‬ ‫بعضی‬‫شده‬ ‫افه‬
‫اند‬)‫سایر‬ ‫از‬‫زودتر‬ ‫خیلی‬ ‫ها‬ ‫پردازش‬ ‫بعضی‬‫یابند‬ ‫می‬ ‫خاتمه‬ ‫ها‬ ‫پردازش‬.‫کنید‬ ‫فرض‬ ‫مثال‬30%‫های‬ ‫رکورد‬ ‫از‬
‫باشند‬ ‫سال‬ ‫یک‬ ‫به‬ ‫مربوط‬ ‫شده‬ ‫ثبت‬.
‫ثانیا‬:‫دارد‬ ‫احتیاج‬ ‫دیگری‬ ‫پردازش‬ ‫به‬ ‫ها‬ ‫آن‬ ‫سازی‬ ‫مرتب‬ ‫و‬ ‫سال‬‫هر‬ ‫های‬ ‫جواب‬ ‫کیب‬‫تر‬.
‫کنیم‬ ‫تقسیم‬ ‫سال‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫مختلفی‬ ‫های‬ ‫دسته‬ ‫به‬ ‫را‬ ‫مساله‬ ‫است‬‫بهتر‬.‫ثب‬ ‫دمای‬‫حداکثر‬ ‫دسته‬‫هر‬‫آن‬ ‫در‬ ‫شده‬ ‫ت‬
‫رسی‬ ‫می‬ ‫نهایی‬ ‫جواب‬ ‫به‬ ‫سال‬‫هر‬ ‫های‬ ‫دسته‬ ‫مقدار‬ ‫ترین‬ ‫بزرگ‬ ‫کردن‬ ‫پیدا‬ ‫با‬ ‫و‬ ،‫گرداند‬ ‫برمی‬ ‫را‬ ‫دسته‬‫م‬.
‫سازی‬ ‫پیاده‬MapReduce
•‫آزمایشی‬ ‫دیتاست‬
•‫دیتاست‬ ‫های‬ ‫داده‬ ‫از‬ ‫سازی‬ ‫پیاده‬ ‫ای‬‫ر‬‫ب‬NCDC
1
‫هواشناسی‬ ‫های‬ ‫ایستگاه‬ ‫از‬ ‫هوا‬ ‫و‬ ‫آب‬ ‫وضعیت‬ ‫ارش‬‫ز‬‫گ‬ ‫که‬
‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫کند‬ ‫می‬ ‫داری‬ ‫نگه‬ ‫را‬ ‫آمریکا‬.
•‫سازی‬ ‫ذخیره‬ ‫فرمت‬ASCII.
•‫خط‬ ‫یک‬ ‫در‬ ‫ارش‬‫ز‬‫گ‬‫هر‬.
•‫ا‬ ،‫افیایی‬‫ر‬‫جغ‬ ‫عرض‬ ،‫افیایی‬‫ر‬‫جغ‬ ‫طول‬ ،‫مشاهده‬ ‫زمان‬ ،‫مشاهده‬ ‫تاریخ‬ ‫شامل‬ ‫نمونه‬ ‫های‬ ‫فیلد‬ ‫از‬ ‫بعضی‬،‫رتفاع‬
‫و‬ ‫هوا‬ ‫فشار‬ ،‫نمونه‬ ‫کیفیت‬ ‫کد‬ ،‫هوا‬ ‫درجه‬...
•‫که‬ ‫جایی‬ ‫آن‬ ‫از‬Hadoop‫ب‬ ‫شده‬ ‫ثبت‬ ‫رکوردهای‬ ‫تمام‬ ‫کند‬ ‫می‬ ‫کار‬‫بهتر‬ ‫بزرگ‬ ‫های‬ ‫فایل‬ ‫با‬‫یک‬ ‫ای‬‫ر‬
‫ایم‬ ‫کرده‬ ‫ذخیره‬ ‫فایل‬ ‫یک‬ ‫در‬ ‫را‬ ‫سال‬.
1
National Climatic Data Center
‫سازی‬ ‫پیاده‬MapReduce
•‫کنید‬ ‫فرض‬5‫باشد‬‫زیر‬ ‫مانند‬ ‫دیتاست‬ ‫در‬ ‫شده‬ ‫ذخیره‬ ‫رکورد‬:
• 0067011990999991950051507004...9999999N9+00001+99999999999...
• 0043011990999991950051512004...9999999N9+00221+99999999999...
• 0043011990999991950051518004...9999999N9-00111+99999999999...
• 0043012650999991949032412004...0500001N9+01111+99999999999...
• 0043012650999991949032418004...0500001N9+00781+99999999999...
•‫اج‬‫ر‬‫استخ‬ ‫باال‬ ‫های‬ ‫رکورد‬ ‫از‬‫زیر‬ ‫اطالعات‬ ،‫دارد‬ ‫اهمیت‬ ‫ما‬ ‫ای‬‫ر‬‫ب‬ ‫سال‬ ‫و‬ ‫هوا‬ ‫درجه‬ ‫اطالعات‬ ‫فقط‬ ‫که‬ ‫آنجایی‬ ‫از‬‫می‬
‫شود‬(‫تابع‬ ‫در‬Map:)
• (1950, 0)
• (1950, 22)
• (1950, −11)
• (1949, 111)
• (1949, 78)
‫خروجی‬ ‫و‬ ‫ورودی‬Map‫و‬Reduce
•‫توابع‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫گفتیم‬ ‫قبال‬ ‫که‬ ‫طور‬ ‫همان‬Map‫و‬Reduce‫کلید‬ ‫صورت‬ ‫به‬-‫است‬ ‫مقدار‬.
•‫تابع‬map‫س‬ ‫و‬ ‫گیرد‬ ‫می‬ ‫ورودی‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شده‬ ‫ذخیره‬ ‫رکورد‬ ‫و‬ ‫فایل‬ ‫ابتدای‬ ‫از‬ ‫رکورد‬‫هر‬ ‫شروع‬ ‫آفست‬‫و‬ ‫ال‬
‫گرداند‬ ‫برمی‬ ‫خروجی‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شده‬ ‫ثبت‬ ‫دمای‬.
•‫تابع‬ ‫خروجی‬map‫توسط‬Shuffle‫اطالعات‬‫کند‬ ‫می‬ ‫بندی‬ ‫دسته‬ ‫سال‬ ‫مبنای‬‫بر‬ ‫را‬.
•‫تابع‬reduce‫ورودی‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫ثبت‬ ‫دماهای‬‫گرد‬ ‫برمی‬ ‫را‬ ‫سال‬‫هر‬ ‫ازای‬ ‫به‬ ‫را‬ ‫آن‬‫حداکثر‬ ‫و‬ ‫گرفته‬ ‫را‬‫اند‬.
‫کالس‬
1
Mapper
1
Sources at: https://github.com/tomwhite/hadoop-book
‫کالس‬Mapper
•‫تابع‬Map‫کالس‬ ‫با‬Mapper‫شود‬ ‫می‬ ‫مشخص‬.
•Hadoop‫کند‬ ‫می‬ ‫استفاده‬ ‫جاوا‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫جای‬ ‫به‬ ‫خود‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫از‬.LongWritable
‫شبیه‬Long،Text‫جای‬ ‫به‬String‫و‬IntWritable‫جای‬ ‫به‬Integer‫شده‬ ‫استفاده‬ ‫مثال‬ ‫این‬ ‫در‬
‫پکیج‬ ‫در‬ ‫که‬ ‫اند‬org.apache.hadoop.io‫دارند‬ ‫ار‬‫ر‬‫ق‬.
•‫که‬ ‫شود‬ ‫می‬ ‫ثبت‬ ‫صورتی‬ ‫در‬ ‫شده‬ ‫گیری‬ ‫اندازه‬ ‫دمای‬Quality‫شده‬ ‫ثبت‬(substring(92,93))
‫اعداد‬ ‫از‬ ‫یکی‬[01459]‫خطا‬ ‫شده‬ ‫ثبت‬ ‫ان‬‫ز‬‫می‬ ‫و‬ ‫باشد‬(9999)‫نباشد‬.
•‫از‬Context‫ورودی‬ ‫به‬ ‫که‬ ‫شود‬ ‫می‬ ‫استفاده‬ ‫خروجی‬ ‫در‬ ‫نتایج‬ ‫نوشتن‬ ‫ای‬‫ر‬‫ب‬Reducer‫فرستاده‬
‫شود‬ ‫می‬.
‫کالس‬Reducer
‫کالس‬Reducer
•‫ورودی‬ ‫ای‬ ‫داده‬ ‫انواع‬Reducer‫خروجی‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫با‬ ‫مطابق‬ ‫بایستی‬Mapper‫باشد‬.
•‫بدس‬ ‫ها‬ ‫آن‬ ‫ماکزیمم‬ ‫انتخاب‬ ‫و‬ ‫سال‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫شده‬ ‫ثبت‬ ‫دماهای‬ ‫پیمایش‬ ‫با‬ ‫خروجی‬ ‫مقدار‬‫می‬ ‫ت‬
‫آید‬.
‫اصلی‬ ‫کالس‬
‫اصلی‬ ‫کالس‬
•‫یک‬ ‫کالس‬ ‫این‬Job‫فایل‬ ‫قالب‬ ‫در‬ ‫را‬Jar‫کند‬ ‫توزیع‬‫کالستر‬ ‫در‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫ار‬‫ر‬‫ق‬.
•‫روی‬ ‫خروجی‬ ‫و‬ ‫ورودی‬‫مسیر‬ ‫کردن‬ ‫تعیین‬ ‫ای‬‫ر‬‫ب‬HDFS‫تابع‬ ‫از‬)(addInputPath‫کالس‬
FileInputFormat‫ایم‬ ‫کرده‬ ‫استفاده‬.
•‫توابع‬ ‫با‬setMapperClass()‫و‬setReducerClass()‫های‬ ‫کالس‬Mapper‫و‬Reducer‫کرده‬ ‫تعریف‬ ‫را‬
‫ایم‬.
•‫توابع‬ ‫با‬setOutputKeyClass()‫و‬setOutputValueClass()‫کلید‬-‫کرده‬ ‫مشخص‬ ‫را‬ ‫خروجی‬ ‫مقدار‬
‫ایم‬.
•‫متد‬waitForCompletion()،Job‫کند‬ ‫می‬‫صبر‬ ‫آن‬ ‫پایان‬ ‫زمان‬ ‫تا‬ ‫و‬ ‫کند‬ ‫می‬ ‫ثبت‬ ‫را‬.
•‫کرد‬ ‫وارد‬ ‫ترمینال‬ ‫در‬ ‫را‬‫زیر‬ ‫های‬ ‫دستور‬ ‫بایستی‬ ‫برنامه‬ ‫ای‬‫ر‬‫اج‬ ‫ای‬‫ر‬‫ب‬
1
.
• export HADOOP_CLASSPATH=hadoop-examples.jar
hadoop MaxTemperature input/ncdc/sample.txt output
1
Full Instruction at: https://github.com/tomwhite/hadoop-book
‫ای‬ ‫داده‬ ‫جریان‬
•MapReduce‫که‬ ‫است‬ ‫کاری‬ ‫از‬ ‫واحد‬ ‫یک‬client‫شامل‬ ‫که‬ ‫دهد‬ ‫انجام‬ ‫میخواهد‬‫ورودی‬ ‫های‬ ‫داده‬،
‫برنامه‬MapReduce‫و‬‫پیکربندی‬ ‫اطالعات‬‫است‬.
•‫کار‬‫هر‬(Job)‫وظیفه‬ ‫دو‬ ‫به‬(Task)‫شود‬ ‫می‬ ‫شکسته‬:Map‫و‬Reduce.
•‫توسط‬ ‫ها‬ ‫وظیفه‬YARN‫روی‬ ‫و‬ ‫شوند‬ ‫می‬ ‫زمانبندی‬node‫ها‬(‫کالستر‬ ‫مستقل‬ ‫های‬‫کامپیوتر‬)‫می‬ ‫ا‬‫ر‬‫اج‬
‫شوند‬.
•‫وظیفه‬‫هر‬Map‫ای‬ ‫تکه‬(split)‫کند‬ ‫می‬ ‫پردازش‬ ‫را‬ ‫ورودی‬ ‫های‬ ‫داده‬ ‫از‬.
•‫غیر‬ ‫پردازش‬ ‫به‬ ‫نسبت‬ ‫پردازش‬ ‫زمان‬ ‫مدت‬ ‫همزمانی‬ ‫دلیل‬ ‫به‬ ‫باشیم‬ ‫داشته‬ ‫ورودی‬ ‫تکه‬ ‫زیادی‬ ‫تعداد‬‫اگر‬‫همان‬ ‫همروند‬
‫و‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫گیری‬ ‫چشم‬ ‫کاهش‬ ‫ها‬ ‫داده‬Load Balancing‫و‬ ‫افتد‬ ‫می‬ ‫اتفاق‬‫بهتر‬node‫های‬ ‫تکه‬‫تر‬ ‫سریع‬ ‫های‬
‫کنند‬ ‫می‬ ‫پردازش‬ ‫را‬ ‫بیشتری‬.
•‫زم‬ ‫شدن‬ ‫افزوده‬ ‫باعث‬ ‫ورودی‬ ‫های‬ ‫تکه‬ ‫مدیریت‬ ‫از‬ ‫ناشی‬ ‫اضافی‬ ‫بار‬ ‫باشد‬ ‫کوچک‬ ‫خیلی‬ ‫ورودی‬ ‫های‬ ‫تکه‬‫اگر‬‫کلی‬ ‫ان‬
‫شود‬ ‫می‬ ‫پردازش‬.
•HDFS‫های‬ ‫تکه‬ ‫یا‬ ‫بلوک‬ ‫اندازه‬ ‫از‬128‫است‬ ‫مناسب‬ ‫ها‬ ‫کاربرد‬ ‫اغلب‬ ‫ای‬‫ر‬‫ب‬ ‫که‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫مگابایتی‬.
‫ای‬ ‫داده‬ ‫جریان‬
•Hadoop‫های‬ ‫وظیفه‬ ‫حالت‬ ‫بهترین‬ ‫در‬Map‫روی‬ ‫را‬ ‫ها‬node‫اند‬ ‫گرفته‬ ‫ار‬‫ر‬‫ق‬ ‫آن‬ ‫روی‬ ‫ورودی‬ ‫های‬ ‫داده‬ ‫که‬ ‫هایی‬
‫کند‬ ‫می‬ ‫پردازش‬.
•‫حالت‬ ‫این‬ ‫در‬Locality‫ورودی‬ ‫انتقال‬ ‫صرف‬‫کالستر‬ ‫ارزشمند‬ ‫باند‬ ‫پهنای‬ ‫و‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫افزایش‬ ‫ها‬ ‫داده‬Map
‫شود‬ ‫نمی‬.
•‫از‬ ‫ها‬ ‫داده‬ ‫است‬ ‫ممکن‬ ‫مواقعی‬ ‫در‬node‫از‬ ‫حتی‬ ‫یا‬ ‫و‬‫دیگر‬Rack‫شوند‬ ‫خوانده‬ ‫دیگری‬( .‫بعد‬ ‫صفحه‬ ‫شکل‬)
مدل MapReduce
‫ای‬ ‫داده‬ ‫جریان‬
•‫خروجی‬Map‫همان‬ ‫دیسک‬ ‫روی‬node‫توسط‬ ‫باید‬ ‫تنها‬ ‫اش‬ ‫نتایج‬ ‫چون‬ ‫شود‬ ‫می‬ ‫نوشته‬Reduce
‫شود‬ ‫می‬ ‫حذف‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫شود‬ ‫پردازش‬.
•‫اگر‬node‫که‬ ‫ی‬Map‫بیفتد‬ ‫کار‬ ‫از‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬Hadoop‫اتوماتیک‬ ‫صورت‬ ‫به‬node
‫کند‬ ‫می‬ ‫جایگزین‬ ‫را‬ ‫دیگری‬.
•‫خالف‬‫بر‬Map‫هر‬ ‫در‬ ‫و‬ ‫آمد‬ ‫می‬ ‫وجود‬ ‫به‬ ‫ای‬ ‫داده‬ ‫تکه‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫که‬node‫جداگانه‬ ‫صورت‬ ‫به‬
‫تمام‬ ‫خروجی‬ ،‫شد‬ ‫می‬ ‫پردازش‬Map‫وظیفه‬ ‫یک‬ ‫به‬ ‫ها‬Reduce‫شود‬ ‫می‬ ‫فرستاده‬.
•‫شده‬ ‫مرتب‬ ‫خروجی‬Map‫داخل‬ ‫ها‬node‫که‬ ‫ی‬Reduce‫تابع‬ ‫به‬ ‫سپس‬ ‫و‬ ‫شود‬ ‫می‬ ‫ادغام‬ ‫کند‬ ‫می‬ ‫ا‬‫ر‬‫اج‬ ‫را‬
Reduce‫شود‬ ‫می‬ ‫ارسال‬‫کاربر‬ ‫توسط‬ ‫شده‬ ‫تعریف‬.
مدل MapReduce
‫ای‬ ‫داده‬ ‫جریان‬
•‫چند‬ ‫که‬ ‫وقتی‬Reducer‫های‬ ‫وظیفه‬ ،‫داریم‬Map‫را‬ ‫شان‬ ‫خروجی‬‫بندی‬ ‫بخش‬‫به‬ ‫را‬ ‫بخش‬‫هر‬ ‫و‬ ‫کنند‬ ‫می‬
‫یک‬Reducer‫فرستند‬ ‫می‬.
•‫وظیفه‬ ‫هیچ‬ ‫توان‬ ‫می‬Reduce‫نداشت‬ ‫ی‬.‫خروجی‬ ‫حالت‬ ‫این‬ ‫در‬Map‫دهد‬ ‫می‬ ‫را‬ ‫نهایی‬ ‫جواب‬ ‫ها‬.
‫توابع‬Combiner
•‫کار‬ ‫زیادی‬ ‫تعداد‬ ‫وجود‬Map‫شود‬ ‫مواجه‬ ‫محدودیت‬ ‫با‬ ‫ها‬‫کالستر‬ ‫روی‬ ‫باند‬ ‫پهنای‬ ‫که‬ ‫شود‬ ‫می‬ ‫باعث‬.
•Hadoop‫تابع‬ ‫که‬ ‫دهد‬ ‫می‬ ‫را‬ ‫امکان‬ ‫این‬‫کاربر‬ ‫به‬Combiner‫تعریف‬ ‫ها‬ ‫آن‬ ‫کیب‬‫تر‬ ‫و‬ ‫خروجی‬ ‫چند‬ ‫گرفتن‬ ‫ای‬‫ر‬‫ب‬
‫کند‬.‫خروجی‬Combiner‫به‬Reduce‫شود‬ ‫می‬ ‫فرستاده‬.
•‫چون‬Combiner‫تعداد‬‫هر‬ ‫به‬ ‫آن‬ ‫اخوانی‬‫ر‬‫ف‬ ‫است‬ ‫سازی‬ ‫بهینه‬ ‫تابع‬ ‫یک‬(‫بیشتر‬ ‫یا‬‫صفر‬)‫روی‬ ‫تاثیری‬‫خروجی‬
Reduce‫ندارد‬.
•‫تابع‬Combiner‫بین‬ ‫که‬ ‫ای‬ ‫داده‬ ‫ان‬‫ز‬‫می‬ ‫تواند‬ ‫می‬Mapper‫و‬Reducer‫دهد‬ ‫کاهش‬ ‫را‬ ‫شود‬ ‫می‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫ها‬.
‫تابع‬ ‫تعریف‬Combiner
•‫با‬ ‫درجه‬ ‫باالترین‬ ‫کردن‬ ‫پیدا‬ ‫اصلی‬ ‫کالس‬ ‫شده‬ ‫بازنویسی‬ ‫نمونه‬ ‫بعدی‬ ‫اسالید‬ ‫مثال‬ ‫در‬Combiner‫شده‬ ‫آورده‬
‫است‬.
•‫که‬ ‫جایی‬ ‫آن‬ ‫از‬ ‫کنید‬ ‫دقت‬Combiner‫به‬ ‫شبیه‬ ‫مثال‬ ‫این‬ ‫در‬Reducer‫کند‬ ‫می‬ ‫عمل‬(‫ماکزیمم‬ ‫آوردن‬ ‫بدست‬
‫مقدار‬ ‫چند‬)‫از‬ ‫نمونه‬ ‫یک‬Reducer‫عنوان‬ ‫به‬ ‫را‬Combiner‫ایم‬ ‫کرده‬ ‫معرفی‬.
‫تابع‬ ‫تعریف‬Combiner
Streaming‫در‬Hadoop
•Hadoop‫یک‬API‫ای‬‫ر‬‫ب‬MapReduce‫توابع‬ ‫که‬ ‫دهد‬ ‫می‬ ‫را‬ ‫اجازه‬ ‫این‬ ‫شما‬ ‫به‬ ‫که‬ ‫است‬ ‫کرده‬ ‫اهم‬‫ر‬‫ف‬Map‫و‬
Reduce‫بنویسید‬ ‫جاوا‬ ‫از‬‫غیر‬ ‫های‬ ‫زبان‬ ‫در‬ ‫را‬.
•Hadoop Streaming‫استاندارد‬ ‫استریم‬ ‫از‬UNIX‫بین‬ ‫ارتباط‬ ‫ای‬‫ر‬‫ب‬Hadoop‫کند‬ ‫می‬ ‫استفاده‬ ‫شما‬ ‫نامه‬‫ر‬‫ب‬ ‫و‬.
‫کدهای‬ ‫نوشتن‬ ‫ای‬‫ر‬‫ب‬ ‫توان‬ ‫می‬ ‫کند‬ ‫پشتیبانی‬ ‫را‬ ‫استریم‬ ‫این‬ ‫که‬ ‫زبانی‬‫هر‬ ‫از‬ ‫این‬‫ر‬‫بناب‬MapReduce‫کرد‬ ‫استفاده‬.
•Streaming‫است‬ ‫مناسب‬ ‫متن‬ ‫پردازش‬ ‫های‬ ‫کاربرد‬ ‫ای‬‫ر‬‫ب‬.
‫منابع‬
• White, Tom. Hadoop: The definitive guide, 4th edition. " O'Reilly Media, Inc.", 2015.

Mais conteúdo relacionado

Semelhante a مدل MapReduce

Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهرانFarafekr Technology
 
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گراییسی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گراییmrm_196
 
Chapter 04 - introduction to tcpip protocols
Chapter 04 - introduction to tcpip protocolsChapter 04 - introduction to tcpip protocols
Chapter 04 - introduction to tcpip protocolsbehrad eslamifar
 
سیستم های عامل فصل ۵
سیستم های عامل   فصل ۵سیستم های عامل   فصل ۵
سیستم های عامل فصل ۵Shayan Khaksar
 
طراحي شبكه های مخابراتی و کامپیوتری
طراحي شبكه های مخابراتی و کامپیوتریطراحي شبكه های مخابراتی و کامپیوتری
طراحي شبكه های مخابراتی و کامپیوتریabbas pirnazaraine
 
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSim
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSimشبیه سازی آتش و دود با نرم افزار پایروسیم PyroSim
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSimMehdi Parvini
 
Pyrosim شبیه سازی آتش و دود با نرم افزار پایروسیم
Pyrosim  شبیه سازی آتش و دود با نرم افزار پایروسیمPyrosim  شبیه سازی آتش و دود با نرم افزار پایروسیم
Pyrosim شبیه سازی آتش و دود با نرم افزار پایروسیمMehdi Parvini
 
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرسfaradars
 
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.iraminnezarat
 
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وبطراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وبMoEii Hm
 
avr project , sim808l, mmc card
avr project , sim808l, mmc cardavr project , sim808l, mmc card
avr project , sim808l, mmc cardPooriaKeihani
 
Mohamady zahedy c#
Mohamady zahedy c#Mohamady zahedy c#
Mohamady zahedy c#danesh_fd
 
Big Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsBig Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsFarzad Nozarian
 
Flb Introduce In Persian بالانس خط تولید
Flb Introduce In Persian بالانس خط تولیدFlb Introduce In Persian بالانس خط تولید
Flb Introduce In Persian بالانس خط تولیدkiapour4
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیsomayeh daneshparvar
 

Semelhante a مدل MapReduce (20)

Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گراییسی پلاس پلاس به عنوان زبان دومی  برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
 
Chapter 04 - introduction to tcpip protocols
Chapter 04 - introduction to tcpip protocolsChapter 04 - introduction to tcpip protocols
Chapter 04 - introduction to tcpip protocols
 
سیستم های عامل فصل ۵
سیستم های عامل   فصل ۵سیستم های عامل   فصل ۵
سیستم های عامل فصل ۵
 
طراحي شبكه های مخابراتی و کامپیوتری
طراحي شبكه های مخابراتی و کامپیوتریطراحي شبكه های مخابراتی و کامپیوتری
طراحي شبكه های مخابراتی و کامپیوتری
 
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSim
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSimشبیه سازی آتش و دود با نرم افزار پایروسیم PyroSim
شبیه سازی آتش و دود با نرم افزار پایروسیم PyroSim
 
HEVC Seminar,zamanian
HEVC Seminar,zamanianHEVC Seminar,zamanian
HEVC Seminar,zamanian
 
Pyrosim شبیه سازی آتش و دود با نرم افزار پایروسیم
Pyrosim  شبیه سازی آتش و دود با نرم افزار پایروسیمPyrosim  شبیه سازی آتش و دود با نرم افزار پایروسیم
Pyrosim شبیه سازی آتش و دود با نرم افزار پایروسیم
 
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وبطراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
 
avr project , sim808l, mmc card
avr project , sim808l, mmc cardavr project , sim808l, mmc card
avr project , sim808l, mmc card
 
Mohamady zahedy c#
Mohamady zahedy c#Mohamady zahedy c#
Mohamady zahedy c#
 
بیگ دیتا
بیگ دیتابیگ دیتا
بیگ دیتا
 
Sharding
ShardingSharding
Sharding
 
Big Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsBig Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing Environments
 
Flb Introduce In Persian بالانس خط تولید
Flb Introduce In Persian بالانس خط تولیدFlb Introduce In Persian بالانس خط تولید
Flb Introduce In Persian بالانس خط تولید
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
 

مدل MapReduce

  • 2. ‫مقدمه‬ •MapReduce‫است‬ ‫ها‬ ‫داده‬ ‫پردازش‬ ‫ای‬‫ر‬‫ب‬ ‫نویسی‬ ‫نامه‬‫ر‬‫ب‬ ‫مدل‬. •Hadoop‫های‬ ‫نامه‬‫ر‬‫ب‬ ‫تواند‬ ‫می‬MapReduce‫کند‬ ‫ا‬‫ر‬‫اج‬ ‫را‬ ‫مختلف‬ ‫های‬ ‫زبان‬ ‫در‬ ‫شده‬ ‫نوشته‬. •‫های‬ ‫نامه‬‫ر‬‫ب‬MapReduce‫شوند‬ ‫می‬ ‫ا‬‫ر‬‫اج‬ ‫موازی‬ ‫صورت‬ ‫به‬.
  • 3. Map‫و‬Reduce •MapReduce‫شود‬ ‫می‬ ‫تقسیم‬ ‫قسمت‬ ‫دو‬ ‫به‬.Map‫و‬Reduce. •‫کلید‬ ِ‫جفت‬ ‫دارای‬ ‫فاز‬‫هر‬-‫است‬ ‫خروجی‬ ‫ای‬‫ر‬‫ب‬ ‫مقدار‬ ‫کلید‬ ِ‫جفت‬ ‫و‬ ‫ورودی‬ ‫ای‬‫ر‬‫ب‬ ‫مقدار‬. •‫ورودی‬Map‫از‬HDFS‫به‬ ‫آن‬ ‫خروجی‬ ‫و‬ ‫شود‬ ‫می‬ ‫گرفته‬Reduce‫شود‬ ‫می‬ ‫ارسال‬. •‫سازی‬ ‫پیاده‬ ‫ای‬‫ر‬‫ب‬ ‫نویس‬ ‫نامه‬‫ر‬‫ب‬MapReduce‫حداقل‬ ‫باید‬2‫تابع‬Map‫و‬Reduce‫ای‬‫ر‬‫ب‬ ‫تابعی‬ ‫و‬ ‫کند‬ ‫سازی‬ ‫پیاده‬ ‫را‬ ‫دو‬ ‫این‬ ‫اخوانی‬‫ر‬‫ف‬.
  • 4. ‫سازی‬ ‫پیاده‬MapReduce •MapReduce‫مساله‬ ‫یک‬ ‫قالب‬ ‫در‬: •‫آوریم‬ ‫بدست‬ ‫را‬ ‫سال‬‫هر‬ ‫در‬ ‫هواشناسی‬ ‫های‬ ‫ایستگاه‬ ‫توسط‬ ‫شده‬ ‫ثبت‬ ‫دمای‬ ‫ترین‬ ‫بیش‬ ‫میخواهیم‬. •‫داد‬ ‫انجام‬ ‫موازی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫ها‬ ‫پردازش‬ ‫توان‬ ‫می‬ ‫سرعت‬ ‫ایش‬‫ز‬‫اف‬ ‫ای‬‫ر‬‫ب‬. ‫است‬ ‫پردازش‬ ‫یک‬ ‫توسط‬ ‫سال‬‫هر‬ ‫دمای‬ ‫بیشترین‬ ‫آوردن‬ ‫بدست‬ ،‫موازی‬ ‫سازی‬ ‫پیاده‬ ‫ترین‬ ‫ساده‬. ‫اوال‬:‫است‬ ‫متفاوت‬ ‫سال‬‫هر‬ ‫در‬ ‫شده‬ ‫ثبت‬ ‫داده‬ ‫ان‬‫ز‬‫می‬ ‫که‬ ‫آنجایی‬ ‫از‬(‫اض‬ ‫ا‬‫ر‬‫اخی‬ ‫ها‬ ‫ایستگاه‬ ‫از‬ ‫بعضی‬‫شده‬ ‫افه‬ ‫اند‬)‫سایر‬ ‫از‬‫زودتر‬ ‫خیلی‬ ‫ها‬ ‫پردازش‬ ‫بعضی‬‫یابند‬ ‫می‬ ‫خاتمه‬ ‫ها‬ ‫پردازش‬.‫کنید‬ ‫فرض‬ ‫مثال‬30%‫های‬ ‫رکورد‬ ‫از‬ ‫باشند‬ ‫سال‬ ‫یک‬ ‫به‬ ‫مربوط‬ ‫شده‬ ‫ثبت‬. ‫ثانیا‬:‫دارد‬ ‫احتیاج‬ ‫دیگری‬ ‫پردازش‬ ‫به‬ ‫ها‬ ‫آن‬ ‫سازی‬ ‫مرتب‬ ‫و‬ ‫سال‬‫هر‬ ‫های‬ ‫جواب‬ ‫کیب‬‫تر‬. ‫کنیم‬ ‫تقسیم‬ ‫سال‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫مختلفی‬ ‫های‬ ‫دسته‬ ‫به‬ ‫را‬ ‫مساله‬ ‫است‬‫بهتر‬.‫ثب‬ ‫دمای‬‫حداکثر‬ ‫دسته‬‫هر‬‫آن‬ ‫در‬ ‫شده‬ ‫ت‬ ‫رسی‬ ‫می‬ ‫نهایی‬ ‫جواب‬ ‫به‬ ‫سال‬‫هر‬ ‫های‬ ‫دسته‬ ‫مقدار‬ ‫ترین‬ ‫بزرگ‬ ‫کردن‬ ‫پیدا‬ ‫با‬ ‫و‬ ،‫گرداند‬ ‫برمی‬ ‫را‬ ‫دسته‬‫م‬.
  • 5. ‫سازی‬ ‫پیاده‬MapReduce •‫آزمایشی‬ ‫دیتاست‬ •‫دیتاست‬ ‫های‬ ‫داده‬ ‫از‬ ‫سازی‬ ‫پیاده‬ ‫ای‬‫ر‬‫ب‬NCDC 1 ‫هواشناسی‬ ‫های‬ ‫ایستگاه‬ ‫از‬ ‫هوا‬ ‫و‬ ‫آب‬ ‫وضعیت‬ ‫ارش‬‫ز‬‫گ‬ ‫که‬ ‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫کند‬ ‫می‬ ‫داری‬ ‫نگه‬ ‫را‬ ‫آمریکا‬. •‫سازی‬ ‫ذخیره‬ ‫فرمت‬ASCII. •‫خط‬ ‫یک‬ ‫در‬ ‫ارش‬‫ز‬‫گ‬‫هر‬. •‫ا‬ ،‫افیایی‬‫ر‬‫جغ‬ ‫عرض‬ ،‫افیایی‬‫ر‬‫جغ‬ ‫طول‬ ،‫مشاهده‬ ‫زمان‬ ،‫مشاهده‬ ‫تاریخ‬ ‫شامل‬ ‫نمونه‬ ‫های‬ ‫فیلد‬ ‫از‬ ‫بعضی‬،‫رتفاع‬ ‫و‬ ‫هوا‬ ‫فشار‬ ،‫نمونه‬ ‫کیفیت‬ ‫کد‬ ،‫هوا‬ ‫درجه‬... •‫که‬ ‫جایی‬ ‫آن‬ ‫از‬Hadoop‫ب‬ ‫شده‬ ‫ثبت‬ ‫رکوردهای‬ ‫تمام‬ ‫کند‬ ‫می‬ ‫کار‬‫بهتر‬ ‫بزرگ‬ ‫های‬ ‫فایل‬ ‫با‬‫یک‬ ‫ای‬‫ر‬ ‫ایم‬ ‫کرده‬ ‫ذخیره‬ ‫فایل‬ ‫یک‬ ‫در‬ ‫را‬ ‫سال‬. 1 National Climatic Data Center
  • 6. ‫سازی‬ ‫پیاده‬MapReduce •‫کنید‬ ‫فرض‬5‫باشد‬‫زیر‬ ‫مانند‬ ‫دیتاست‬ ‫در‬ ‫شده‬ ‫ذخیره‬ ‫رکورد‬: • 0067011990999991950051507004...9999999N9+00001+99999999999... • 0043011990999991950051512004...9999999N9+00221+99999999999... • 0043011990999991950051518004...9999999N9-00111+99999999999... • 0043012650999991949032412004...0500001N9+01111+99999999999... • 0043012650999991949032418004...0500001N9+00781+99999999999... •‫اج‬‫ر‬‫استخ‬ ‫باال‬ ‫های‬ ‫رکورد‬ ‫از‬‫زیر‬ ‫اطالعات‬ ،‫دارد‬ ‫اهمیت‬ ‫ما‬ ‫ای‬‫ر‬‫ب‬ ‫سال‬ ‫و‬ ‫هوا‬ ‫درجه‬ ‫اطالعات‬ ‫فقط‬ ‫که‬ ‫آنجایی‬ ‫از‬‫می‬ ‫شود‬(‫تابع‬ ‫در‬Map:) • (1950, 0) • (1950, 22) • (1950, −11) • (1949, 111) • (1949, 78)
  • 7. ‫خروجی‬ ‫و‬ ‫ورودی‬Map‫و‬Reduce •‫توابع‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫گفتیم‬ ‫قبال‬ ‫که‬ ‫طور‬ ‫همان‬Map‫و‬Reduce‫کلید‬ ‫صورت‬ ‫به‬-‫است‬ ‫مقدار‬. •‫تابع‬map‫س‬ ‫و‬ ‫گیرد‬ ‫می‬ ‫ورودی‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شده‬ ‫ذخیره‬ ‫رکورد‬ ‫و‬ ‫فایل‬ ‫ابتدای‬ ‫از‬ ‫رکورد‬‫هر‬ ‫شروع‬ ‫آفست‬‫و‬ ‫ال‬ ‫گرداند‬ ‫برمی‬ ‫خروجی‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫شده‬ ‫ثبت‬ ‫دمای‬. •‫تابع‬ ‫خروجی‬map‫توسط‬Shuffle‫اطالعات‬‫کند‬ ‫می‬ ‫بندی‬ ‫دسته‬ ‫سال‬ ‫مبنای‬‫بر‬ ‫را‬. •‫تابع‬reduce‫ورودی‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫ثبت‬ ‫دماهای‬‫گرد‬ ‫برمی‬ ‫را‬ ‫سال‬‫هر‬ ‫ازای‬ ‫به‬ ‫را‬ ‫آن‬‫حداکثر‬ ‫و‬ ‫گرفته‬ ‫را‬‫اند‬.
  • 9. ‫کالس‬Mapper •‫تابع‬Map‫کالس‬ ‫با‬Mapper‫شود‬ ‫می‬ ‫مشخص‬. •Hadoop‫کند‬ ‫می‬ ‫استفاده‬ ‫جاوا‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫جای‬ ‫به‬ ‫خود‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫از‬.LongWritable ‫شبیه‬Long،Text‫جای‬ ‫به‬String‫و‬IntWritable‫جای‬ ‫به‬Integer‫شده‬ ‫استفاده‬ ‫مثال‬ ‫این‬ ‫در‬ ‫پکیج‬ ‫در‬ ‫که‬ ‫اند‬org.apache.hadoop.io‫دارند‬ ‫ار‬‫ر‬‫ق‬. •‫که‬ ‫شود‬ ‫می‬ ‫ثبت‬ ‫صورتی‬ ‫در‬ ‫شده‬ ‫گیری‬ ‫اندازه‬ ‫دمای‬Quality‫شده‬ ‫ثبت‬(substring(92,93)) ‫اعداد‬ ‫از‬ ‫یکی‬[01459]‫خطا‬ ‫شده‬ ‫ثبت‬ ‫ان‬‫ز‬‫می‬ ‫و‬ ‫باشد‬(9999)‫نباشد‬. •‫از‬Context‫ورودی‬ ‫به‬ ‫که‬ ‫شود‬ ‫می‬ ‫استفاده‬ ‫خروجی‬ ‫در‬ ‫نتایج‬ ‫نوشتن‬ ‫ای‬‫ر‬‫ب‬Reducer‫فرستاده‬ ‫شود‬ ‫می‬.
  • 11. ‫کالس‬Reducer •‫ورودی‬ ‫ای‬ ‫داده‬ ‫انواع‬Reducer‫خروجی‬ ‫ای‬ ‫داده‬ ‫انواع‬ ‫با‬ ‫مطابق‬ ‫بایستی‬Mapper‫باشد‬. •‫بدس‬ ‫ها‬ ‫آن‬ ‫ماکزیمم‬ ‫انتخاب‬ ‫و‬ ‫سال‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫شده‬ ‫ثبت‬ ‫دماهای‬ ‫پیمایش‬ ‫با‬ ‫خروجی‬ ‫مقدار‬‫می‬ ‫ت‬ ‫آید‬.
  • 13. ‫اصلی‬ ‫کالس‬ •‫یک‬ ‫کالس‬ ‫این‬Job‫فایل‬ ‫قالب‬ ‫در‬ ‫را‬Jar‫کند‬ ‫توزیع‬‫کالستر‬ ‫در‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫ار‬‫ر‬‫ق‬. •‫روی‬ ‫خروجی‬ ‫و‬ ‫ورودی‬‫مسیر‬ ‫کردن‬ ‫تعیین‬ ‫ای‬‫ر‬‫ب‬HDFS‫تابع‬ ‫از‬)(addInputPath‫کالس‬ FileInputFormat‫ایم‬ ‫کرده‬ ‫استفاده‬. •‫توابع‬ ‫با‬setMapperClass()‫و‬setReducerClass()‫های‬ ‫کالس‬Mapper‫و‬Reducer‫کرده‬ ‫تعریف‬ ‫را‬ ‫ایم‬. •‫توابع‬ ‫با‬setOutputKeyClass()‫و‬setOutputValueClass()‫کلید‬-‫کرده‬ ‫مشخص‬ ‫را‬ ‫خروجی‬ ‫مقدار‬ ‫ایم‬. •‫متد‬waitForCompletion()،Job‫کند‬ ‫می‬‫صبر‬ ‫آن‬ ‫پایان‬ ‫زمان‬ ‫تا‬ ‫و‬ ‫کند‬ ‫می‬ ‫ثبت‬ ‫را‬. •‫کرد‬ ‫وارد‬ ‫ترمینال‬ ‫در‬ ‫را‬‫زیر‬ ‫های‬ ‫دستور‬ ‫بایستی‬ ‫برنامه‬ ‫ای‬‫ر‬‫اج‬ ‫ای‬‫ر‬‫ب‬ 1 . • export HADOOP_CLASSPATH=hadoop-examples.jar hadoop MaxTemperature input/ncdc/sample.txt output 1 Full Instruction at: https://github.com/tomwhite/hadoop-book
  • 14. ‫ای‬ ‫داده‬ ‫جریان‬ •MapReduce‫که‬ ‫است‬ ‫کاری‬ ‫از‬ ‫واحد‬ ‫یک‬client‫شامل‬ ‫که‬ ‫دهد‬ ‫انجام‬ ‫میخواهد‬‫ورودی‬ ‫های‬ ‫داده‬، ‫برنامه‬MapReduce‫و‬‫پیکربندی‬ ‫اطالعات‬‫است‬. •‫کار‬‫هر‬(Job)‫وظیفه‬ ‫دو‬ ‫به‬(Task)‫شود‬ ‫می‬ ‫شکسته‬:Map‫و‬Reduce. •‫توسط‬ ‫ها‬ ‫وظیفه‬YARN‫روی‬ ‫و‬ ‫شوند‬ ‫می‬ ‫زمانبندی‬node‫ها‬(‫کالستر‬ ‫مستقل‬ ‫های‬‫کامپیوتر‬)‫می‬ ‫ا‬‫ر‬‫اج‬ ‫شوند‬. •‫وظیفه‬‫هر‬Map‫ای‬ ‫تکه‬(split)‫کند‬ ‫می‬ ‫پردازش‬ ‫را‬ ‫ورودی‬ ‫های‬ ‫داده‬ ‫از‬. •‫غیر‬ ‫پردازش‬ ‫به‬ ‫نسبت‬ ‫پردازش‬ ‫زمان‬ ‫مدت‬ ‫همزمانی‬ ‫دلیل‬ ‫به‬ ‫باشیم‬ ‫داشته‬ ‫ورودی‬ ‫تکه‬ ‫زیادی‬ ‫تعداد‬‫اگر‬‫همان‬ ‫همروند‬ ‫و‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫گیری‬ ‫چشم‬ ‫کاهش‬ ‫ها‬ ‫داده‬Load Balancing‫و‬ ‫افتد‬ ‫می‬ ‫اتفاق‬‫بهتر‬node‫های‬ ‫تکه‬‫تر‬ ‫سریع‬ ‫های‬ ‫کنند‬ ‫می‬ ‫پردازش‬ ‫را‬ ‫بیشتری‬. •‫زم‬ ‫شدن‬ ‫افزوده‬ ‫باعث‬ ‫ورودی‬ ‫های‬ ‫تکه‬ ‫مدیریت‬ ‫از‬ ‫ناشی‬ ‫اضافی‬ ‫بار‬ ‫باشد‬ ‫کوچک‬ ‫خیلی‬ ‫ورودی‬ ‫های‬ ‫تکه‬‫اگر‬‫کلی‬ ‫ان‬ ‫شود‬ ‫می‬ ‫پردازش‬. •HDFS‫های‬ ‫تکه‬ ‫یا‬ ‫بلوک‬ ‫اندازه‬ ‫از‬128‫است‬ ‫مناسب‬ ‫ها‬ ‫کاربرد‬ ‫اغلب‬ ‫ای‬‫ر‬‫ب‬ ‫که‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫مگابایتی‬.
  • 15. ‫ای‬ ‫داده‬ ‫جریان‬ •Hadoop‫های‬ ‫وظیفه‬ ‫حالت‬ ‫بهترین‬ ‫در‬Map‫روی‬ ‫را‬ ‫ها‬node‫اند‬ ‫گرفته‬ ‫ار‬‫ر‬‫ق‬ ‫آن‬ ‫روی‬ ‫ورودی‬ ‫های‬ ‫داده‬ ‫که‬ ‫هایی‬ ‫کند‬ ‫می‬ ‫پردازش‬. •‫حالت‬ ‫این‬ ‫در‬Locality‫ورودی‬ ‫انتقال‬ ‫صرف‬‫کالستر‬ ‫ارزشمند‬ ‫باند‬ ‫پهنای‬ ‫و‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫افزایش‬ ‫ها‬ ‫داده‬Map ‫شود‬ ‫نمی‬. •‫از‬ ‫ها‬ ‫داده‬ ‫است‬ ‫ممکن‬ ‫مواقعی‬ ‫در‬node‫از‬ ‫حتی‬ ‫یا‬ ‫و‬‫دیگر‬Rack‫شوند‬ ‫خوانده‬ ‫دیگری‬( .‫بعد‬ ‫صفحه‬ ‫شکل‬)
  • 17. ‫ای‬ ‫داده‬ ‫جریان‬ •‫خروجی‬Map‫همان‬ ‫دیسک‬ ‫روی‬node‫توسط‬ ‫باید‬ ‫تنها‬ ‫اش‬ ‫نتایج‬ ‫چون‬ ‫شود‬ ‫می‬ ‫نوشته‬Reduce ‫شود‬ ‫می‬ ‫حذف‬ ‫آن‬ ‫از‬ ‫پس‬ ‫و‬ ‫شود‬ ‫پردازش‬. •‫اگر‬node‫که‬ ‫ی‬Map‫بیفتد‬ ‫کار‬ ‫از‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬Hadoop‫اتوماتیک‬ ‫صورت‬ ‫به‬node ‫کند‬ ‫می‬ ‫جایگزین‬ ‫را‬ ‫دیگری‬. •‫خالف‬‫بر‬Map‫هر‬ ‫در‬ ‫و‬ ‫آمد‬ ‫می‬ ‫وجود‬ ‫به‬ ‫ای‬ ‫داده‬ ‫تکه‬‫هر‬ ‫ای‬‫ر‬‫ب‬ ‫که‬node‫جداگانه‬ ‫صورت‬ ‫به‬ ‫تمام‬ ‫خروجی‬ ،‫شد‬ ‫می‬ ‫پردازش‬Map‫وظیفه‬ ‫یک‬ ‫به‬ ‫ها‬Reduce‫شود‬ ‫می‬ ‫فرستاده‬. •‫شده‬ ‫مرتب‬ ‫خروجی‬Map‫داخل‬ ‫ها‬node‫که‬ ‫ی‬Reduce‫تابع‬ ‫به‬ ‫سپس‬ ‫و‬ ‫شود‬ ‫می‬ ‫ادغام‬ ‫کند‬ ‫می‬ ‫ا‬‫ر‬‫اج‬ ‫را‬ Reduce‫شود‬ ‫می‬ ‫ارسال‬‫کاربر‬ ‫توسط‬ ‫شده‬ ‫تعریف‬.
  • 19. ‫ای‬ ‫داده‬ ‫جریان‬ •‫چند‬ ‫که‬ ‫وقتی‬Reducer‫های‬ ‫وظیفه‬ ،‫داریم‬Map‫را‬ ‫شان‬ ‫خروجی‬‫بندی‬ ‫بخش‬‫به‬ ‫را‬ ‫بخش‬‫هر‬ ‫و‬ ‫کنند‬ ‫می‬ ‫یک‬Reducer‫فرستند‬ ‫می‬. •‫وظیفه‬ ‫هیچ‬ ‫توان‬ ‫می‬Reduce‫نداشت‬ ‫ی‬.‫خروجی‬ ‫حالت‬ ‫این‬ ‫در‬Map‫دهد‬ ‫می‬ ‫را‬ ‫نهایی‬ ‫جواب‬ ‫ها‬.
  • 20. ‫توابع‬Combiner •‫کار‬ ‫زیادی‬ ‫تعداد‬ ‫وجود‬Map‫شود‬ ‫مواجه‬ ‫محدودیت‬ ‫با‬ ‫ها‬‫کالستر‬ ‫روی‬ ‫باند‬ ‫پهنای‬ ‫که‬ ‫شود‬ ‫می‬ ‫باعث‬. •Hadoop‫تابع‬ ‫که‬ ‫دهد‬ ‫می‬ ‫را‬ ‫امکان‬ ‫این‬‫کاربر‬ ‫به‬Combiner‫تعریف‬ ‫ها‬ ‫آن‬ ‫کیب‬‫تر‬ ‫و‬ ‫خروجی‬ ‫چند‬ ‫گرفتن‬ ‫ای‬‫ر‬‫ب‬ ‫کند‬.‫خروجی‬Combiner‫به‬Reduce‫شود‬ ‫می‬ ‫فرستاده‬. •‫چون‬Combiner‫تعداد‬‫هر‬ ‫به‬ ‫آن‬ ‫اخوانی‬‫ر‬‫ف‬ ‫است‬ ‫سازی‬ ‫بهینه‬ ‫تابع‬ ‫یک‬(‫بیشتر‬ ‫یا‬‫صفر‬)‫روی‬ ‫تاثیری‬‫خروجی‬ Reduce‫ندارد‬. •‫تابع‬Combiner‫بین‬ ‫که‬ ‫ای‬ ‫داده‬ ‫ان‬‫ز‬‫می‬ ‫تواند‬ ‫می‬Mapper‫و‬Reducer‫دهد‬ ‫کاهش‬ ‫را‬ ‫شود‬ ‫می‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫ها‬.
  • 21. ‫تابع‬ ‫تعریف‬Combiner •‫با‬ ‫درجه‬ ‫باالترین‬ ‫کردن‬ ‫پیدا‬ ‫اصلی‬ ‫کالس‬ ‫شده‬ ‫بازنویسی‬ ‫نمونه‬ ‫بعدی‬ ‫اسالید‬ ‫مثال‬ ‫در‬Combiner‫شده‬ ‫آورده‬ ‫است‬. •‫که‬ ‫جایی‬ ‫آن‬ ‫از‬ ‫کنید‬ ‫دقت‬Combiner‫به‬ ‫شبیه‬ ‫مثال‬ ‫این‬ ‫در‬Reducer‫کند‬ ‫می‬ ‫عمل‬(‫ماکزیمم‬ ‫آوردن‬ ‫بدست‬ ‫مقدار‬ ‫چند‬)‫از‬ ‫نمونه‬ ‫یک‬Reducer‫عنوان‬ ‫به‬ ‫را‬Combiner‫ایم‬ ‫کرده‬ ‫معرفی‬.
  • 23. Streaming‫در‬Hadoop •Hadoop‫یک‬API‫ای‬‫ر‬‫ب‬MapReduce‫توابع‬ ‫که‬ ‫دهد‬ ‫می‬ ‫را‬ ‫اجازه‬ ‫این‬ ‫شما‬ ‫به‬ ‫که‬ ‫است‬ ‫کرده‬ ‫اهم‬‫ر‬‫ف‬Map‫و‬ Reduce‫بنویسید‬ ‫جاوا‬ ‫از‬‫غیر‬ ‫های‬ ‫زبان‬ ‫در‬ ‫را‬. •Hadoop Streaming‫استاندارد‬ ‫استریم‬ ‫از‬UNIX‫بین‬ ‫ارتباط‬ ‫ای‬‫ر‬‫ب‬Hadoop‫کند‬ ‫می‬ ‫استفاده‬ ‫شما‬ ‫نامه‬‫ر‬‫ب‬ ‫و‬. ‫کدهای‬ ‫نوشتن‬ ‫ای‬‫ر‬‫ب‬ ‫توان‬ ‫می‬ ‫کند‬ ‫پشتیبانی‬ ‫را‬ ‫استریم‬ ‫این‬ ‫که‬ ‫زبانی‬‫هر‬ ‫از‬ ‫این‬‫ر‬‫بناب‬MapReduce‫کرد‬ ‫استفاده‬. •Streaming‫است‬ ‫مناسب‬ ‫متن‬ ‫پردازش‬ ‫های‬ ‫کاربرد‬ ‫ای‬‫ر‬‫ب‬.
  • 24. ‫منابع‬ • White, Tom. Hadoop: The definitive guide, 4th edition. " O'Reilly Media, Inc.", 2015.