SlideShare a Scribd company logo
1 of 79
Download to read offline
‫عملی‬ ‫کارگاه‬
‫هدوپ‬ ‫آموزش‬
}
‫حمایت‬ ‫با‬
‫ایران‬ ‫اطلعات‬ ‫فناوری‬ ‫سازمان‬
‫ایران‬ ‫هدوپ‬ ‫مرجع‬
w . . . .ww hadoop ir www farafekr co hello@had . .oop ir info@farafekr co
‫فرافکر‬ ‫پردازان‬ ‫ایده‬ ‫افزار‬‫نرم‬ ‫مهندسی‬ ‫شرکت‬
‫ساده‬ ‫زبان‬ ‫به‬ ‫هدوپ‬
‫اول‬ ‫فصل‬
‫جدید‬ ‫های‬ ‫چالش‬
=
‫جدید‬ ‫های‬‫حل‬ ‫راه‬
‫از‬ ‫خارج‬ ‫ها‬‫آن‬ ‫پردازش‬ ‫و‬ ‫مدیریت‬ ‫که‬ ‫شود‬‫می‬ ‫گفته‬ ‫هایی‬‫داده‬ ‫به‬
.‫است‬ ‫موجود‬ ‫های‬‫سیستم‬ ‫و‬ ‫ها‬‫حل‬ ‫راه‬ ‫توانایی‬
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫در‬ ‫مجازی‬ ‫فضای‬۶۰‫ثانیه‬
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫ها‬ ‫داده‬ ‫رشد‬
2013 2015
Unstructured
Data
88%
300 Exabytes
80 Exabytes
Structured
Data
12%
DatabaseApplicaton
Backup &
Archive
Backup
Storage
Optons
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫یاد‬ ‫به‬ ‫شنوند‬ ‫می‬ ‫را‬ ‫واژه‬ ‫این‬ ‫که‬ ‫زمانی‬ ‫افراد‬ ‫از‬ ‫بسیاری‬
‫زیاد‬ ‫وسعت‬‫یا‬ ‫و‬‫همان‬‫زیاد‬ ‫حجم‬.‫افتند‬‫می‬
‫کلن‬ ‫های‬‫داده‬ ‫در‬‫فقط‬‫مو‬.‫نیست‬ ‫مطرح‬ ‫حجم‬ ‫ضوع‬
‫اصلی‬ ‫فرعی‬
‫ارزش‬‫درستی‬‫تنوع‬‫سرعت‬‫حجم‬
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫کلن‬ ‫های‬‫داده‬ ‫بندی‬ ‫طبقه‬
‫چیست؟‬ ‫داده‬ ‫کلن‬
‫سازی‬ ‫ذخیره‬ ‫و‬ ‫تحلیل‬ ‫های‬‫سیستم‬
‫ای‬ ‫غیررابطه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫های‬‫داده‬ ‫پایگاه‬
) ‫ای‬‫رابطه‬ ‫داده‬ ‫پایگاه‬Relational databases‫های‬‫پایگاه‬ ‫از‬ ‫دسته‬ ‫آن‬ ‫به‬ (
.‫باشند‬ ‫شده‬ ‫ایجاد‬ ‫و‬ ‫طراحی‬ ‫ای‬‫رابطه‬ ‫مدل‬ ‫اساس‬ ‫بر‬ ‫که‬ ‫شود‬‫می‬ ‫اطلقا‬ ‫داده‬
‫تولد‬ ‫سال‬ ‫پدر‬ ‫نام‬ ‫شماره‬
‫دانشجویی‬
‫کامل‬ ‫نام‬
13۶5 ‫جعفر‬ 9۰45879 ‫احمدیان‬ ‫علی‬
13۶۶ ‫ایمان‬ 89۶5479 ‫بهرامی‬ ‫میلد‬
13۶8 ‫مهدی‬ 9245789 ‫علوی‬ ‫علیرضا‬
‫ای‬ ‫غیررابطه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫مقایسه‬
) ‫ای‬‫غیررابطه‬ ‫داده‬ ‫پایگاه‬-Non Relational databases‫از‬ ‫ای‬‫دسته‬ ‫به‬ (
‫نحوه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫مدل‬ ‫از‬ ‫ها‬‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫برای‬ ‫که‬ ‫شود‬‫می‬ ‫گفته‬ ‫ها‬‫داده‬ ‫پایگاه‬
.‫نکند‬ ‫استفاده‬ ‫جدول‬ ‫صورت‬ ‫به‬ ‫ها‬‫داده‬ ‫نمایش‬
{
_id:147963658,
Name:'abc',
Contact:{
Phone:'8984577',
Email:'test@test.com'
},
Address:{
address:'Fanavaran Street',
City:'Tehran'
}
}
‫معایب‬ ‫و‬ ‫مزایا‬
‫ای‬‫رابطه‬ ‫داده‬ ‫پایگاه‬
:‫مزایا‬
1.‫ساختار‬ ‫با‬ ‫های‬‫داده‬ ‫پردازش‬ ‫و‬ ‫ذخیره‬ ‫در‬ ‫قبول‬ ‫قابل‬ ‫کارایی‬ .
2.‫شده‬ ‫اثبات‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫متنوع‬ ‫ابزارهای‬ ‫وجود‬ .
:‫معایب‬
1.‫ضعیف‬ ‫پذیری‬ ‫توسعه‬ .
2.‫ثابت‬ ‫ای‬‫داده‬ ‫ساختار‬ .
‫معایب‬ ‫و‬ ‫مزایا‬
‫ای‬‫غیررابطه‬ ‫داده‬ ‫پایگاه‬
:‫مزایا‬
1.‫ساختار‬ ‫بی‬ ‫های‬‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫و‬ ‫پردازش‬ ‫در‬ ‫عالی‬ ‫کارایی‬ .
2.‫داده‬ ‫پایگاه‬ ‫در‬ ‫مکرر‬ ‫تغییر‬ ‫تحمل‬ ‫توانایی‬ .
3.‫ابری‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫های‬‫سیستم‬ ‫در‬ ‫کارایی‬ ‫بهترین‬ .
:‫معایب‬
1.‫رشد‬ ‫حال‬ ‫در‬ ‫همچنان‬ ‫موردنیاز‬ ‫ابزارهای‬ ‫و‬ ‫اندازی،نصب‬ ‫راه‬ .
2.‫خاص‬ ‫مسائل‬ ‫در‬ ‫پایین‬ ‫دهی‬ ‫پاسخ‬ ‫زمان‬ .
‫است؟‬ ‫بهتر‬ ‫مدل‬ ‫کدام‬
!‫کدام‬ ‫هیچ‬
‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫رابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬
1.‫دارید‬ ‫جدول‬ ‫به‬ ‫نیاز‬ .
2.‫هستند‬ ‫روشن‬ ‫و‬ ‫ساده‬ ‫شما‬ ‫های‬ ‫داده‬ .
3.‫است‬ ‫مقداری‬ ‫تک‬ ‫جداول‬ ‫های‬ ‫فیلد‬ .
4.‫دارد‬ ‫یکپارچه‬ ‫و‬ ‫یکتا‬ ‫ساختاری‬ ‫شما‬ ‫های‬ ‫داده‬ .
‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫غیررابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬
1.‫رسد‬ ‫می‬ ‫بزرگی‬ ‫مقیاس‬ ‫به‬ ‫ثانیه‬ ‫از‬ ‫کسری‬ ‫در‬ ‫شما‬ ‫های‬ ‫داده‬ .
2.‫است‬ ‫پراکنده‬ ‫و‬ ‫ساختار‬ ‫بدون‬ ‫شما‬ ‫های‬ ‫داده‬ .
3‫به‬ ‫تبدیل‬ ‫ای‬ ‫داده‬ ‫فیلد‬ ‫هر‬ ‫است‬ ‫ممکن‬ ‫لحظه‬ ‫هر‬ .2،3‫بیشتر‬ ‫یا‬ ‫و‬
.‫شود‬
4.‫است‬ ‫شده‬ ‫تشکیل‬ ‫مقادیر‬ ‫از‬ ‫ای‬ ‫آرایه‬ ‫از‬ ‫ای‬ ‫داده‬ ‫فیلد‬ ‫هر‬ .
5.‫هستید‬ ‫ها‬ ‫داده‬ ‫تداوم‬ ‫و‬ ‫پایداری‬ ‫نگران‬ .
۶.‫هستید‬ ‫سرور‬ ‫شدن‬ ‫دسترس‬ ‫از‬ ‫خارج‬ ‫نگران‬ .
7‫از‬ ‫میخواهید‬ ‫و‬ ‫است‬ ‫شده‬ ‫ذخیره‬ ‫ابری‬ ‫بستر‬ ‫در‬ ‫شما‬ ‫های‬ ‫داده‬ .
.‫کنید‬ ‫استفاده‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫دیتابیس‬
‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫رابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬
1.‫دارید‬ ‫جدول‬ ‫به‬ ‫نیاز‬ .
2.‫هستند‬ ‫روشن‬ ‫و‬ ‫ساده‬ ‫شما‬ ‫های‬ ‫داده‬ .
3.‫است‬ ‫مقداری‬ ‫تک‬ ‫جداول‬ ‫های‬ ‫فیلد‬ .
4.‫دارد‬ ‫یکپارچه‬ ‫و‬ ‫یکتا‬ ‫ساختاری‬ ‫شما‬ ‫های‬ ‫داده‬ .
A
C P
)‫پذیری‬ ‫دسترس‬Availability:(
‫هم‬ ‫همواره‬ ‫را‬ ‫ها‬‫داده‬ ‫بتواند‬ ‫کلینت‬ ‫هر‬
.‫بنویسد‬ ‫هم‬ ‫و‬ ‫بخواند‬
)‫پذیری‬ ‫بخش‬ ‫تحمل‬Partition
Tolerance:(
‫شبکه‬ ‫فیزیکی‬ ‫شدن‬ ‫تقسیم‬ ‫رغم‬ ‫به‬ ‫سیستم‬
.‫کند‬ ‫کار‬ ‫خوبی‬ ‫مختلف،به‬ ‫های‬‫قسمت‬ ‫به‬
)‫ثبات‬Consistency:(
‫های‬ ‫نسخه‬ ‫به‬ ‫همواره‬ ‫ها‬ ‫کلینت‬ ‫تمامی‬
.‫باشند‬ ‫داشته‬ ‫دسترسی‬ ‫داده‬ ‫از‬ ‫یکسانی‬
CA
CP
BigTable
HyperTable
HBase
MongoDB
TerraStore
Scalaris
BerkeleyDB
MemcacheDB
Redis
AP
Dynamo
Voldemort
Tokyo Cabinet
KAI
Cassandra
SimpleDB
CouchDB
Riak
RDBMSs
( , , )MySQLPostgresetc
Aster Data
Greenplum
Vertica
‫کنید‬ ‫انتخاب‬ ‫را‬ ‫مورد‬ ‫دو‬
‫نظریه‬CAP
:‫ای‬ ‫غیررابطه‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫انواع‬
1‫یا‬ ‫کلید-مقدار‬ .-Key Value
2‫یا‬ ‫سندگرا‬ .-Document Oriented
3‫یا‬ ‫گرا‬ ‫ستون‬ .-Column Oriented
4‫یا‬ ‫گراف‬ ‫بر‬ ‫مبتنی‬ .-Graph based
5‫یا‬ ‫ترکیبی‬ .Multi Model
‫کلید-مقدار‬ ‫های‬‫داده‬ ‫پایگاه‬
‫های‬‫جفت‬ ‫صورت‬ ‫به‬ ‫مقادیر‬ ‫تمامی‬ ‫کلید-مقدار‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫در‬
‫کلید‬ ‫یک‬ ‫دارای‬ ‫مقدار‬ ‫هر‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ .‫هستند‬ ‫مقدار‬ ‫و‬ ‫کلید‬
.‫است‬
‫کلید-مقدار‬ ‫های‬‫داده‬ ‫پایگاه‬
‫سندگرا‬ ‫های‬‫داده‬ ‫پایگاه‬
‫یک‬ ‫عنوان‬ ‫به‬ ‫ما‬ ‫داده‬ ‫سطرهای‬ ‫تمامی‬ ‫سندگرا‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫در‬
‫ای‬‫مجموعه‬ ‫از‬ ‫شده‬ ‫تشکیل‬ ‫اسناد‬ ‫این‬ ‫تمامی‬ ‫و‬ ‫شوند‬‫می‬ ‫شناخته‬ ‫سند‬
.‫هستند‬ ‫کلید-مقدارها‬
{
_id:147963658,
Name:'abc',
Contact:{
Phone:'8984577',
Email:'test@test.com'
},
Address:{
address:'Fanavaran Street',
City:'Tehran'
}
}
‫سندگرا‬ ‫های‬‫داده‬ ‫پایگاه‬
‫گرا‬ ‫ستون‬ ‫های‬‫داده‬ ‫پایگاه‬
،‫سطر‬ ‫جای‬ ‫به‬ ،‫ستون‬ ‫قالب‬ ‫در‬ ‫را‬ ‫محتوایش‬ ‫گرا‬ ‫ستون‬ ‫های‬‫داده‬ ‫پایگاه‬
‫را‬ ‫خود‬ ‫خاص‬ ‫های‬‫ستون‬ ‫داده‬ ‫از‬ ‫سطر‬ ‫هر‬ ‫به‬ ‫توان‬‫می‬ .‫نماید‬‫می‬ ‫ذخیره‬
.‫داد‬ ‫نسبت‬
‫گرا‬ ‫ستون‬ ‫های‬‫داده‬ ‫پایگاه‬
‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬
‫که‬ ‫کند‬‫می‬ ‫پیروی‬ ‫گراف‬ ‫تئوری‬ ‫از‬ ‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬
‫توسط‬ ‫ها‬‫آن‬ ‫بین‬ ‫ارتباط‬ ‫و‬ ‫ها‬‫گره‬ ‫همان‬ ‫یا‬ ‫داده‬ ‫نقاط‬ ‫براساس‬ ‫ها‬‫داده‬
.‫آیند‬‫می‬ ‫در‬ ‫نمایش‬ ‫به‬ ‫ها‬ ‫یال‬
‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬
‫ترکیبی‬ ‫های‬‫داده‬ ‫پایگاه‬
‫ها‬‫داده‬ ‫و‬ ‫شوند‬‫نمی‬ ‫خاصی‬ ‫مدل‬ ‫به‬ ‫محدود‬ ‫ها‬‫داده‬ ‫پایگاه‬ ‫از‬ ‫نوع‬ ‫این‬
.‫کرد‬ ‫ذخیره‬ ‫مختلفی‬ ‫انواع‬ ‫به‬ ‫توان‬‫می‬ ‫را‬
‫خلصه‬ ‫صورت‬ ‫به‬ ‫هدوپ‬
‫هدوپ‬ ‫توان‬‫می‬ ‫را‬ ‫داده‬ ‫تحلیلی‬ ‫های‬‫چهارچوب‬ ‫ترین‬ ‫بزرگ‬ ‫و‬ ‫ترین‬‫مهم‬ ‫از‬ ‫یکی‬
.‫نامید‬
‫که‬ ‫است‬ ‫هایی‬ ‫کتابخانه‬ ‫و‬ ‫افزارها‬ ‫نرم‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫یا‬ ‫ورک‬ ‫فریم‬ ‫یک‬ ‫هدوپ‬
‫در‬ .‫میکند‬ ‫فراهم‬ ‫را‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫داده‬ ‫از‬ ‫عظیمی‬ ‫حجم‬ ‫پردازش‬ ‫کار‬ ‫و‬ ‫ساز‬
‫واقع‬Hadoop‫تا‬ ‫شده‬ ‫طراحی‬ ‫که‬ ‫کرد‬ ‫تشبیه‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬
‫مدیریت‬ ‫و‬ ‫پردازش‬ ‫مختلف‬ ‫های‬ ‫ماشین‬ ‫روی‬ ‫بر‬ ‫را‬ ‫ها‬ ‫داده‬ ‫از‬ ‫زیادی‬ ‫حجم‬ ‫بتواند‬
‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫و‬ ‫نیست‬ ‫قیمت‬ ‫گران‬ ‫کامپیوترهای‬ ‫نیازمند‬ ‫هدوپ‬ .‫کند‬
.‫گیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫معمول‬ ‫و‬ ‫ارزان‬ ‫کامپیوترهای‬
‫خلصه‬ ‫صورت‬ ‫به‬ ‫هدوپ‬
‫دوم‬ ‫فصل‬
‫نگاشت،کاهش‬ ‫مدل‬
MapReduce
‫ای‬ ‫داده‬ ‫مدل‬
‫یا‬ ‫نگاشت،کاهش‬MapReduce‫های‬ ‫داده‬ ‫پردازش‬ ‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫یک‬
‫تواند‬ ‫می‬ ،‫سادگی‬ ‫عین‬ ‫در‬ ‫مدل‬ ‫این‬ .‫باشد‬ ‫می‬ ‫موازی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫صورت‬ ‫به‬ ‫کلن‬
،‫مختلف‬ ‫های‬ ‫الگوریتم‬ ‫در‬ ‫ساختار‬ ‫پیچیدگی‬ ‫دلیل‬ ‫به‬ ‫زیرا‬ .‫باشد‬ ‫پیچیده‬ ‫بسیار‬
.‫شود‬ ‫می‬ ‫غیرممکن‬ ‫مدل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سازی‬ ‫پیاده‬ ‫توانایی‬
‫یا‬ ‫نگاشت،کاهش‬MapReduce‫های‬ ‫داده‬ ‫پردازش‬ ‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫یک‬
‫تواند‬ ‫می‬ ،‫سادگی‬ ‫عین‬ ‫در‬ ‫مدل‬ ‫این‬ .‫باشد‬ ‫می‬ ‫موازی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫صورت‬ ‫به‬ ‫کلن‬
،‫مختلف‬ ‫های‬ ‫الگوریتم‬ ‫در‬ ‫ساختار‬ ‫پیچیدگی‬ ‫دلیل‬ ‫به‬ ‫زیرا‬ .‫باشد‬ ‫پیچیده‬ ‫بسیار‬
.‫شود‬ ‫می‬ ‫غیرممکن‬ ‫مدل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سازی‬ ‫پیاده‬ ‫توانایی‬
‫مدل‬MR‫به‬ ‫را‬ ‫مسئله‬2‫اصلی‬ ‫فاز‬Map‫و‬Reduce‫از‬ ‫هرکدام‬ .‫کند‬ ‫می‬ ‫تقسیم‬
‫توسط‬ ‫آنها‬ ‫نوع‬ ‫که‬ ‫باشد‬ ‫می‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫کلید-مقدارهای‬ ‫جفت‬ ‫دارای‬ ‫فازها‬ ‫این‬
‫توابع‬ ‫بایست‬ ‫می‬ ‫نویس‬ ‫برنامه‬ ‫همچنین‬ .‫گردد‬ ‫می‬ ‫تعیین‬ ‫نویس‬ ‫برنامه‬Map‫و‬
Reduce.‫کند‬ ‫سازی‬ ‫پیاده‬ ‫هم‬ ‫را‬
‫نگاه‬ ‫یک‬ ‫در‬ ‫نگاشت،کاهش‬ ‫مدل‬
‫یا‬ ‫نگاشت‬ ‫متد‬Map
‫توسط‬ ‫شده‬ ‫تعیین‬ ‫اندازه‬ ‫به‬ ‫را‬ ‫ورودی‬ ‫داده‬ ‫هدوپ‬Input Split‫و‬ ‫کند‬‫می‬ ‫تقسیم‬
‫یا‬ ‫نگاشت‬ ‫متد‬ ،‫ها‬‫قسمت‬ ‫این‬ ‫از‬ ‫هرکدام‬ ‫برای‬Map‫نوشته‬ ‫کاربر‬ ‫توسط‬ ‫که‬ ‫ای‬
.‫کند‬‫می‬ ‫ایجاد‬ ‫را‬ ‫است‬ ‫شده‬
‫اندازه‬Input Split‫کل‬ ‫کارایی‬ ‫در‬Job‫متعادل‬ ‫مقدار‬ ‫این‬ ‫اگر‬ .‫دارد‬ ‫زیادی‬ ‫تأثیر‬
،‫باشد‬ ‫کم‬ ‫بسیار‬ ‫میزان‬ ‫این‬ ‫اگر‬ ‫اما‬ .‫یافت‬ ‫خواهد‬ ‫افزایش‬ ‫موازی‬ ‫بار‬ ‫توازن‬ ‫باشد‬
‫مدیریت‬Task‫کارایی‬ ‫ورودی‬ ‫های‬‫تکه‬ ‫و‬ ‫ها‬Job.‫دهد‬‫می‬ ‫کاهش‬ ‫را‬
‫میزان‬ ‫بهترین‬Input Split) ‫داده‬ ‫بلوک‬ ‫یک‬ ‫اندازه‬ ‫به‬128.‫باشد‬‫می‬ (‫مگابایت‬
‫یا‬ ‫تکه‬ ‫هر‬ ‫برای‬ ‫که‬ ‫زیرا‬Split‫متد‬ ‫یک‬Map.‫شود‬‫می‬ ‫ایجاد‬
‫مفهوم‬DLO‫داده‬ ‫محلی‬ ‫سازی‬ ‫بهینه‬ ‫یا‬
‫متد‬ ‫که‬ ‫کند‬ ‫می‬ ‫تلش‬ ‫هدوپ‬Map‫پردازشی‬ ‫داده‬ ‫که‬ ‫کند‬ ‫اجرا‬ ‫ماشینی‬ ‫برروی‬ ‫را‬
‫رفتن‬ ‫هدر‬ ‫به‬ ‫از‬ ‫موضوع‬ ‫این‬ ‫که‬ ‫زیرا‬ .‫باشد‬ ‫داشته‬ ‫وجود‬ ‫سیستم‬ ‫همان‬ ‫برروی‬ ‫آن‬
‫مفهوم‬ ‫این‬ ‫به‬ .‫کند‬ ‫می‬ ‫جلوگیری‬ ‫شبکه‬ ‫ارزش‬ ‫با‬ ‫باند‬ ‫پهنای‬‫داده‬ ‫محلی‬ ‫سازی‬ ‫بهینه‬
.‫شود‬ ‫می‬ ‫گفته‬
‫متد‬ ‫اجرای‬ ‫هنگام‬ ‫در‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬Map‫آن‬ ‫توسط‬ ‫بایست‬ ‫می‬ ‫که‬ ‫هایی‬ ‫داده‬
.‫است‬ ‫موجود‬ ‫محلی‬ ‫ماشین‬ ‫در‬ ‫گیرد‬ ‫قرار‬ ‫پردازش‬ ‫مورد‬ ‫متد‬
‫متد‬ ‫در‬ ‫فقط‬ ‫مکانیزم‬ ‫این‬ ‫که‬ ‫کنید‬ ‫توجه‬Map‫متد‬ ‫و‬ ‫دارد‬ ‫وجود‬Reduce‫به‬ ‫قادر‬
.‫نیست‬ ‫اینکار‬ ‫انجام‬
‫یا‬ ‫کاهش‬ ‫متد‬Reduce
‫یا‬ ‫کاهش‬ ‫متد‬ ‫در‬Reduce‫متد‬ ‫خروجی‬Map‫شود‬ ‫می‬ ‫دریافت‬ ‫ورودی‬ ‫عنوان‬ ‫به‬
‫متد‬ ‫یک‬ ‫اگر‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬Reduce‫همه‬ ‫خروجی‬ ‫باشیم‬ ‫داشته‬Map‫به‬ ‫ها‬
‫متد‬ ‫یک‬Reduce.‫شود‬ ‫می‬ ‫ارسال‬ ‫ماشین‬ ‫یک‬ ‫برروی‬
‫متد‬ ‫چند‬ ‫اگر‬ ‫اما‬Reduce‫هر‬ ‫خروجی‬ ،‫شود‬ ‫اجرا‬Map‫متدهای‬ ‫بین‬Reduce
‫شود‬ ‫سازی‬ ‫پیاده‬ ‫نویس‬ ‫برنامه‬ ‫توسط‬ ‫بایست‬ ‫می‬ ‫نیز‬ ‫متد‬ ‫این‬ .‫شود‬ ‫می‬ ‫کپی‬ ‫و‬ ‫توزیع‬
‫برروی‬ ‫متد‬ ‫این‬ ‫خروجی‬ ‫نهایت‬ ‫در‬ ‫و‬HDFS.‫میگیرد‬ ‫قرار‬
‫یا‬ ‫کاهش‬ ‫متد‬Reduce
‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫یک‬ ‫با‬
‫یا‬ ‫کاهش‬ ‫متد‬Reduce
‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫چند‬ ‫با‬
‫یا‬ ‫کاهش‬ ‫متد‬Reduce
‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫بدون‬
‫توابع‬Combiner
‫های‬ ‫برنامه‬MapReduce‫و‬ ‫هستند‬ ‫محدود‬ ‫کلستر‬ ‫در‬ ‫موجود‬ ‫باند‬ ‫پهنای‬ ‫لحاظ‬ ‫از‬
‫وظایف‬ ‫بین‬ ‫ها‬ ‫داده‬ ‫تبادل‬ ‫میزان‬ ‫بایست‬ ‫می‬Map‫و‬Reduce.‫رسد‬ ‫حداقل‬ ‫به‬
‫تابع‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫را‬ ‫امکان‬ ‫این‬ ‫کاربر‬ ‫به‬ ‫هدوپ‬Combiner‫خروجی‬ ‫برروی‬Map
‫متد‬ ‫ورودی‬ ‫و‬ ‫شود‬ ‫اجرا‬Reduce‫واقع‬ ‫در‬ .‫کند‬ ‫پردازش‬ ‫رسیدن‬ ‫از‬ ‫پیش‬ ‫را‬
‫بار‬ ‫چند‬ ‫تابع‬ ‫این‬ ‫که‬ ‫دهد‬ ‫نمی‬ ‫تضمین‬ ‫هدوپ‬ ‫ولی‬ ‫است‬ ‫سازی‬ ‫بهینه‬ ‫تابع‬ ‫این‬ ‫وظیفه‬
‫هر‬ ‫خروجی‬ ‫برروی‬Map.‫شود‬ ‫می‬ ‫اجرا‬
‫تابع‬ ‫واقع‬ ‫در‬Combiner‫توابع‬ ‫خروجی‬Map‫کاری‬ ‫و‬ ‫کند‬ ‫می‬ ‫پردازش‬ ‫پیش‬ ‫را‬
‫فاز‬ ‫مشابه‬Reduce.‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬
‫عمل‬ ‫در‬ ‫کاهش‬ ‫و‬ ‫نگاشت‬ ‫برنامه‬ ‫یک‬ ‫اجرای‬
‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬
‫کتابخانه‬ ‫استفاده‬ ‫با‬Hadoop Streaming‫های‬ ‫برنامه‬ ‫توان‬ ‫می‬MapReduce
‫از‬ ‫کتابخانه‬ ‫این‬ .‫کرد‬ ‫سازی‬ ‫پیاده‬ ‫هدوپ‬ ‫برای‬ ‫جاوا‬ ‫از‬ ‫غیر‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫هر‬ ‫با‬ ‫را‬
‫استاندارد‬ ‫جریان‬ ‫واسط‬Unix‫خروجی‬ ‫و‬ ‫ورودی‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ ‫کند‬ ‫می‬ ‫استفاده‬
‫برنامه‬MapReduce‫طریق‬ ‫از‬ ‫بایست‬ ‫می‬ ‫شما‬Standard Input‫یا‬stdin‫و‬
Standard Output‫یا‬stdout.‫شود‬ ‫پردازش‬ ‫و‬ ‫دریافت‬
‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬
import sys
for line in sys.stdin:
line = line.strip()
words = line.split()
for word in words:
print '%st%s' % (word,1)
‫زیر‬ ‫صورت‬ ‫به‬ (‫کلمات‬ ‫شمارش‬ ‫پایتون)مثال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫در‬ ‫نگاشت‬ ‫متد‬ ‫ساختار‬
:‫است‬
‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬
from operator import itemgetter
import sys
current_word = None
current_count = 0
word = None
for line in sys.stdin:
line = line.strip()
word, count = line.split('t', 1)
try:
count = int(count)
except ValueError:
continue
if current_word == word:
current_count += count
else:
if current_word:
print '%st%s' % (current_word, current_count)
current_count = count
current_word = word
if current_word == word:
print '%st%s' % (current_word, current_count)
‫زیر‬ ‫صورت‬ ‫به‬ (‫کلمات‬ ‫شمارش‬ ‫پایتون)مثال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫در‬ ‫کاهش‬ ‫متد‬ ‫ساختار‬
:‫است‬
‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬
‫فایل‬ ‫دو‬ ‫اجرای‬ ‫برای‬.mapper py‫و‬.reducer py:‫میکنیم‬ ‫عمل‬ ‫زیر‬ ‫صورت‬ ‫به‬
hadoop jar hadoop-*streaming*.jar 
-file /home/hduser/mapper.py -mapper
/home/hduser/mapper.py 
-file /home/hduser/reducer.py -reducer
/home/hduser/reducer.py 
-input /user/hduser/myinput/* -output /user/hduser/myoutput
‫سوم‬ ‫فصل‬
‫هدوپ‬ ‫شده‬ ‫توزیع‬ ‫فایل‬ ‫سیستم‬
HDFS
‫مفهوم‬HDFS
‫با‬ ‫را‬ ‫بزرگ‬ ‫بسیار‬ ‫های‬ ‫فایل‬ ‫تا‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫هدوپ‬ ‫شده‬ ‫توزیع‬ ‫فایل‬ ‫سیستم‬
‫های‬ ‫فایل‬ ‫از‬ ‫منظور‬ .‫کند‬ ‫اجرا‬ ‫معمولی‬ ‫کامپیوترهای‬ ‫برروی‬ ،‫جریانی‬ ‫دسترسی‬ ‫الگوی‬
‫بر‬ ‫بالغ‬ ‫حجمی‬ ،‫بزرگ‬1۰۰‫از‬ ‫منظور‬ ‫و‬ ‫است‬ ‫پتابایت‬ ‫و‬ ‫ترابایت‬ ‫و‬ ‫گیگابایت‬ ،‫مگابایت‬ ‫ها‬
‫یک‬ .‫است‬ ‫بار‬ ‫چند‬ ‫خواندن‬ ‫و‬ ‫بار‬ ‫یک‬ ‫نوشتن‬ ‫الگوی‬ ، ‫ها‬ ‫داده‬ ‫جریانی‬ ‫دسترسی‬ ‫الگوی‬
‫های‬ ‫تحلیل‬ ‫آن‬ ‫برروی‬ ‫سپس‬ ‫و‬ ‫شود‬ ‫می‬ ‫کپی‬ ‫یا‬ ‫و‬ ‫آوری‬ ‫جمع‬ ‫معمول‬ ‫طور‬ ‫به‬ ‫دیتاست‬
.‫شود‬ ‫می‬ ‫انجام‬ ‫مشخصی‬ ‫زمانی‬ ‫های‬ ‫بازه‬ ‫در‬ ‫مختلفی‬
.‫نیست‬ ‫قدیمی‬ ‫و‬ ‫قیمت‬ ‫ارزان‬ ‫کامپیوترهای‬ ،‫معمولی‬ ‫کامپیوترهای‬ ‫از‬ ‫منظور‬ ‫همچنین‬
.‫نیست‬ ‫بال‬ ‫اعتماد‬ ‫قابلیت‬ ‫با‬ ‫قیمت‬ ‫گران‬ ‫سرورهای‬ ‫یا‬ ‫و‬ ‫کامپیوترها‬ ‫به‬ ‫نیاز‬ ‫هدوپ‬
‫دارد‬ ‫وجود‬ ‫بازار‬ ‫که‬ ‫معمولی‬ ‫سرورهای‬ ‫و‬ ‫کامپیوترها‬ ‫برروی‬ ‫تا‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫هدوپ‬
.‫کند‬ ‫کار‬
‫کلی‬ ‫تعریف‬HDFS
‫مفهوم‬HDFS
●‫ها‬ ‫ده‬ ‫حدود‬ ‫تاخیر)در‬ ‫با‬ ‫دسترسی‬ ‫نیازمند‬ ‫که‬ ‫هایی‬ ‫برنامه‬ : ‫کم‬ ‫تأخیر‬ ‫با‬ ‫دسترسی‬
‫که‬ ‫باشید‬ ‫داشته‬ ‫دقت‬ .‫باشد‬ ‫می‬ (‫ثانیه‬ ‫میلی‬HDFS‫عملیاتی‬ ‫توان‬ ‫افزایش‬ ‫برای‬
‫و‬ ‫بسیاربال‬ ‫سرعت‬ ‫نیازمند‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫در‬ ‫آن‬ ‫از‬ ‫توان‬ ‫نمی‬ ‫و‬ ‫است‬ ‫شده‬ ‫طراحی‬
.‫کرد‬ ‫استفاده‬ ‫هستند‬ ‫تاخیرکم‬
●‫هدوپ)به‬ ‫بلک‬ ‫یک‬ ‫از‬ ‫کوچکتر‬ ‫اندازه‬ ‫با‬ ‫فایلی‬ ‫به‬ ‫کوچک‬ ‫فایل‬ ‫یک‬ : ‫کوچک‬ ‫های‬‫فایل‬
‫فرض‬ ‫پیش‬ ‫صورت‬۶4‫خواندن‬ ‫عملیات‬ ‫اینکه‬ ‫دلیل‬ ‫به‬ .‫شود‬ ‫می‬ ‫گفته‬ (‫مگابایت‬
‫نیازمند‬Seek‫است‬ ‫داده‬ ‫های‬ ‫گره‬ ‫از‬ ‫زیادی‬ ‫های‬ ‫بازخوانی‬ ‫و‬HDFS‫کارایی‬
.‫داشت‬ ‫نخواهد‬ ‫مناسبی‬
●‫در‬ ‫ها‬ ‫فایل‬ : ‫همزمان‬ ‫نوشتن‬HDFS‫به‬ ‫شود‬ ‫نوشته‬ ‫تواند‬ ‫می‬ ‫نویسنده‬ ‫یک‬ ‫توسط‬
‫تغییرات‬ ‫آنها‬ ‫در‬ ‫و‬ ‫بازکرد‬ ‫نویسنده‬ ‫چند‬ ‫توسط‬ ‫را‬ ‫فایل‬ ‫یک‬ ‫توان‬ ‫نمی‬ ‫که‬ ‫صورت‬ ‫این‬
.‫شود‬ ‫پیشتیبانی‬ ‫آینده‬ ‫در‬ ‫است‬ ‫ممکن‬ ‫ویژگی‬ ‫این‬ .‫کرد‬ ‫ایجاد‬
‫زمانی‬ ‫چه‬HDFS‫نیست؟‬ ‫مناسبی‬ ‫انتخاب‬
‫مفهوم‬HDFS
‫ها‬ ‫بلک‬
‫است‬ ‫داده‬ ‫از‬ ‫حداقلی‬ ‫میزان‬ ‫بلک‬ ‫هر‬ ‫واقع‬ ‫در‬ .‫باشد‬ ‫می‬ ‫بلک‬ ‫اندازه‬ ‫دارای‬ ‫دیسک‬ ‫هر‬
‫کیلوبایت‬ ‫چند‬ ‫از‬ ‫معمول‬ ‫سیستم‬ ‫فایل‬ ‫های‬ ‫بلک‬ .‫شود‬ ‫نوشته‬ ‫یا‬ ‫خوانده‬ ‫تواند‬ ‫می‬ ‫که‬
.‫بنویسد‬ ‫و‬ ‫بخواند‬ ‫را‬ ‫ها‬ ‫فایل‬ ‫تواند‬ ‫می‬ ‫سیستم‬ ‫فایل‬ ‫که‬ ‫شود‬ ‫می‬ ‫تشکیل‬
‫در‬HDFS‫در‬ ‫بلک‬ ‫اندازه‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫دارد‬ ‫وجود‬ ‫بلک‬ ‫مقوله‬ ‫هم‬HDFS‫بزرگ‬
‫فرض‬ ‫پیش‬ ‫صورت‬ ‫تر)به‬128‫ها‬ ‫فایل‬ ،‫معمولی‬ ‫سیستم‬ ‫فایل‬ ‫مثل‬ .‫باشد‬ ‫می‬ (‫مگابایت‬
‫در‬HDFS‫فایل‬ ‫برعکس‬ .‫شوند‬ ‫می‬ ‫شکسته‬ ‫ثابت‬ ‫اندازه‬ ‫با‬ ‫مستقل‬ ‫های‬ ‫بلک‬ ‫به‬
‫در‬ ‫فایل‬ ‫یک‬ ‫که‬ ‫زمانی‬ ،‫معمولی‬ ‫های‬ ‫سیستم‬HDFS،‫باشد‬ ‫کوچکتر‬ ‫بلک‬ ‫یک‬ ‫اندازه‬ ‫از‬
‫فایل‬ ‫یک‬ ‫مثال‬ ‫طور‬ ‫به‬ .‫کند‬ ‫نمی‬ ‫اشغال‬ ‫را‬ ‫بلک‬ ‫یک‬ ‫فضای‬ ‫کل‬1‫در‬ ‫مگابایتی‬HDFS
‫بلک‬ ‫یک‬ ‫در‬ ‫که‬128‫حجم‬ ‫شود‬ ‫می‬ ‫ذخیره‬ ‫مگابایتی‬1‫نه‬ ‫و‬ ‫کند‬ ‫می‬ ‫اشغال‬ ‫را‬ ‫مگابایت‬
128.‫مگابایت‬
‫مفهوم‬HDFS
‫ها‬ ‫بلک‬
‫در‬ ‫ها‬‫فایل‬ ‫های‬ ‫بلک‬ ‫لیست‬ ‫زیر‬ ‫دستور‬HDFS:‫دهد‬‫می‬ ‫نشان‬ ‫را‬
$ hdfs fsck / -files -blocks
‫ورودی‬ ‫فایل‬
) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
‫فرمان‬ ‫خط‬ ‫واسط‬ ‫با‬ ‫کار‬HDFS
‫از‬ ‫خواندن‬ ‫عملیات‬ ‫بررسی‬HDFS
‫در‬ ‫نوشتن‬ ‫عملیات‬ ‫بررسی‬HDFS
‫چهارم‬ ‫فصل‬
‫بند‬ ‫زمان‬YARN
‫بند‬ ‫زمان‬YARN
‫بند‬ ‫زمان‬YARN‫نسخه‬ ‫در‬ ‫که‬ ‫باشد‬ ‫می‬ ‫هدوپ‬ ‫کلستر‬ ‫منابع‬ ‫مدیریت‬ ‫سیستم‬2
‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫سازی‬ ‫بهینه‬ ‫و‬ ‫توسعه‬ ‫برای‬ ‫هدوپ‬MapReduce.‫شد‬ ‫ارائه‬
‫مثل‬ ‫پردازشی‬ ‫موتورهای‬ ‫دیگر‬ ‫از‬ ‫سیستم‬ ‫این‬ ‫همچنین‬Spark‫و‬Tez‫پشتیبانی‬ ...‫و‬
.‫کند‬ ‫می‬
‫ساختار‬YARN
‫بند‬ ‫زمان‬YARN
‫در‬ ‫برنامه‬ ‫اجرای‬ ‫ساختار‬YARN
‫بند‬ ‫زمان‬YARN
‫ها‬ ‫برنامه‬ ‫سازی‬‫پیاده‬
‫در‬ ‫ها‬‫برنامه‬ ‫سازی‬‫پیاده‬ ‫و‬ ‫ساخت‬ ‫در‬ ‫پیچیدگی‬ ‫وجود‬ ‫دلیل‬ ‫به‬YARN‫از‬ ‫استفاده‬ ‫با‬ ،2
‫برای‬ ‫نخی‬ ‫تک‬ ‫نویسی‬ ‫برنامه‬ ‫همانند‬ ‫توان‬‫می‬ ‫زیر‬ ‫ابزار‬YARN:‫نوشت‬ ‫برنامه‬
●Apache Slider:
‫مثل‬ ‫آماده‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫برنامه‬ ‫انتقال‬ ‫برای‬ ‫افزاری‬ ‫نرم‬HBase‫برروی‬YARN
.‫باشد‬ ‫می‬ ‫دارا‬ ‫را‬ ‫گیری‬ ‫گزارش‬ ‫و‬ ‫مانیتورینگ‬ ‫همچون‬ ‫امکاناتی‬ ‫و‬ ‫باشد‬ ‫می‬
●Apache Twill:
‫افزارهای‬ ‫نرم‬ ‫سازی‬ ‫پیاده‬ ‫و‬ ‫ساخت‬ ‫فرآیند‬ ‫که‬ ‫است‬ ‫هدوپ‬ ‫برای‬ ‫انتزاعی‬ ‫سطحی‬
‫برروی‬ ‫شده‬ ‫توزیع‬YARN.‫کند‬ ‫می‬ ‫ساده‬ ‫را‬
‫بند‬ ‫زمان‬YARN
‫بندی‬ ‫زمان‬ ‫اصول‬
‫بندی‬ ‫زمان‬FIFO:
‫بند‬ ‫زمان‬YARN
‫بندی‬ ‫زمان‬ ‫اصول‬
‫بندی‬ ‫زمان‬Capacity: (‫فرض‬ ‫)پیش‬
‫بند‬ ‫زمان‬YARN
‫بندی‬ ‫زمان‬ ‫اصول‬
‫بندی‬ ‫زمان‬Fair:
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.
scheduler.fair.FairScheduler</value>
</property>
‫بند‬ ‫زمان‬YARN
‫بندی‬ ‫زمان‬ ‫اصول‬
‫تنظیمات‬ ‫در‬ ‫بند‬ ‫زمان‬ ‫نوع‬ ‫انتخاب‬ ‫برای‬- .yarn site xml‫کلید‬ ‫بایست‬ ‫می‬
: ‫نمایید‬ ‫وارد‬ ‫را‬ ‫زیر‬
‫پنجم‬ ‫فصل‬
‫پردازشی‬ ‫موتور‬
Apache Spark
‫پردازشی‬ ‫موتور‬Apache Spark
‫اولیه‬ ‫تعریف‬
‫برای‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شده‬ ‫توزیع‬ ‫پردازش‬ ‫های‬ ‫پلتفرم‬ ‫از‬ ‫یکی‬ ‫اسپارک‬ ‫آپاچی‬
.‫است‬ ‫شده‬ ‫طراحی‬ (‫جریانی‬ ‫بال)داده‬ ‫سرعت‬ ‫با‬ ‫پردازشی‬ ‫عملیات‬ ‫اجرای‬
‫پردازشی‬ ‫موتور‬Apache Spark
‫اسپارک‬ ‫در‬ ‫برنامه‬ ‫اجرای‬ ‫روند‬
lines = sc.textFile("README.md")
lines.count()
127
lines.first()
u'# Apache Spark'
‫پردازشی‬ ‫موتور‬Apache Spark
‫مفهوم‬RDD
‫یک‬RDD‫به‬ ‫شبکه‬ ‫های‬‫ماشین‬ ‫برروی‬ ‫که‬ ‫است‬ ‫ای‬‫داده‬ ‫اقلم‬ ‫از‬ ‫مجموعه‬
.‫میگیرد‬ ‫قرار‬ ‫شده‬ ‫توزیع‬ ‫صورت‬
rdd = sc.textFile("s3://...")
words = rdd.flatMap(lambda x: x.split(" "))
result = words.map(lambda x:
(x,1)).reduceByKey(lambda x, y: x + y)
result.saveAsTextFile(outputFile)
‫پردازشی‬ ‫موتور‬Apache Spark
‫مفهوم‬RDD‫ها‬ ‫داده‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬ –
‫پایتون‬ ‫در‬ ‫اسپارک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫مثال‬
‫ششم‬ ‫فصل‬:‫پردازشی‬ ‫موتور‬ ‫ادامه‬Apache Spark
‫پردازشی‬ ‫موتور‬Apache Spark
‫معرفی‬Spark SQL
‫باشد‬ ‫می‬ ‫ساختارمند‬ ‫نیمه‬ ‫و‬ ‫باساختار‬ ‫های‬ ‫داده‬ ‫را‬ ‫کار‬ ‫واسط‬ ‫کتابخانه‬ ‫این‬.‫باس‬ ‫های‬ ‫داده‬‫به‬ ‫اختار‬
‫فی‬ ‫و‬ ‫رکورد‬ ‫به‬ ‫مربوط‬ ‫مفاهیم‬ ‫همانند‬ ‫باشند‬ ‫اسکیما‬ ‫دارای‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫هایی‬ ‫داده‬‫جداول‬ ‫در‬ ‫لد‬
‫ای‬ ‫رابطه‬.
‫پردازشی‬ ‫موتور‬Apache Spark
‫مفهوم‬DataFrame
‫یک‬DataFrame‫اختصار‬ ‫به‬ ‫یا‬DF،‫با‬ ‫است‬ ‫ای‬ ‫غیررابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫جدول‬ ‫مفهوم‬ ‫همانند‬
‫این‬ ‫و‬ ‫شود‬ ‫ایجاد‬ ‫داده‬ ‫کالن‬ ‫شده‬ ‫توزیع‬ ‫ورک‬ ‫فریم‬ ‫یک‬ ‫در‬ ‫تواند‬ ‫می‬ ‫جدول‬ ‫این‬ ‫که‬ ‫تفاوت‬ ‫این‬‫ها‬ ‫داده‬
‫کرد‬ ‫ترکیب‬ ‫مختلف‬ ‫ای‬ ‫داده‬ ‫منابع‬ ‫از‬ ‫ساختار‬ ‫بی‬ ‫های‬ ‫داده‬ ‫با‬ ‫توان‬ ‫می‬ ‫را‬.
myDF = spark.read.format(...)
‫پردازشی‬ ‫موتور‬Apache Spark
‫ها‬ ‫داده‬ ‫نشست‬ ‫و‬ ‫بارگیری‬
‫پردازشی‬ ‫موتور‬Apache Spark‫پشتی‬ ‫ساخت‬ ‫درون‬ ‫صورت‬ ‫به‬ ‫ای‬ ‫داده‬ ‫منابع‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫از‬‫بانی‬
‫کند‬ ‫می‬.‫عبارتنداز‬ ‫منابع‬ ‫این‬:
Apache Hive:‫برروی‬ ‫را‬ ‫خود‬ ‫های‬ ‫داده‬ ‫که‬ ‫است‬ ‫ای‬ ‫داده‬ ‫انباره‬ ‫یک‬HDFS‫ای‬ ‫رابطه‬ ‫قالب‬ ‫با‬
‫کند‬ ‫می‬ ‫ذخیره‬.
Parquet:‫ب‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫که‬ ‫باشد‬ ‫می‬ ‫گرا‬ ‫ستون‬ ‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫قالب‬ ‫یک‬‫سرعت‬ ‫ا‬
‫کرد‬ ‫پیدا‬ ‫دسترسی‬ ‫ها‬ ‫داده‬ ‫به‬ ‫باالتری‬ ‫بسیار‬.
‫در‬ ‫مثال‬ ‫یک‬ ‫اجرای‬Spark SQL
‫هفتم‬ ‫فصل‬:‫پردازشی‬ ‫موتور‬ ‫ادامه‬Apache Spark
‫پردازشی‬ ‫موتور‬Apache Spark
‫کتابخانه‬ ‫با‬ ‫آشنایی‬Streaming
‫کتابخانه‬ ‫از‬Streaming‫ج‬ ‫و‬ ‫بالدرنگ‬ ‫پردازش‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫نوشتن‬ ‫برای‬ ‫توان‬ ‫می‬‫ریانی‬
‫کرد‬ ‫استفاده‬ ‫دارند‬.‫بالفاص‬ ،‫رسیدن‬ ‫زمان‬ ‫در‬ ‫توان‬ ‫می‬ ‫را‬ ‫ها‬ ‫داده‬ ،‫کتابخانه‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬‫پردازش‬ ‫له‬
‫کرد‬.
‫پردازشی‬ ‫موتور‬Apache Spark
‫معماری‬Streaming
‫نام‬ ‫به‬ ‫انتزاعی‬ ‫کالس‬ ‫یک‬ ‫دارای‬ ‫کتابخانه‬ ‫این‬DStream‫یا‬Discretized Stream‫باشد‬ ‫می‬
‫از‬ ‫ای‬ ‫دنباله‬ ‫که‬RDD‫یابد‬ ‫می‬ ‫انتقال‬ ‫زمان‬ ‫در‬ ‫که‬ ‫است‬ ‫هایی‬.DStream‫منابع‬ ‫توسط‬ ‫تواند‬ ‫می‬
‫مانند‬ ‫گردد‬ ‫تولید‬ ‫مختلفی‬ ‫ای‬ ‫داده‬Flume،Kafka‫یا‬ ‫و‬HDFS.
‫پردازشی‬ ‫موتور‬Apache Spark
‫شده‬ ‫بندی‬ ‫زمان‬ ‫عملیات‬
Dstream‫کرد‬ ‫فراخوانی‬ ‫مختلفی‬ ‫زمانی‬ ‫فواصل‬ ‫در‬ ‫توان‬ ‫می‬ ‫را‬ ‫ها‬.‫مثال‬ ‫طور‬ ‫به‬:
ssc = StreamingContext(sc,1)
‫در‬ ‫مثال‬ ‫یک‬ ‫اجرای‬Spark Streaming

More Related Content

What's hot

Designing An Enterprise Data Fabric
Designing An Enterprise Data FabricDesigning An Enterprise Data Fabric
Designing An Enterprise Data Fabric
Alan McSweeney
 
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
Simplilearn
 

What's hot (20)

Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)
 
Microsoft Fabric.pptx
Microsoft Fabric.pptxMicrosoft Fabric.pptx
Microsoft Fabric.pptx
 
Microsoft Fabric Intro D Koutsanastasis
Microsoft Fabric Intro D KoutsanastasisMicrosoft Fabric Intro D Koutsanastasis
Microsoft Fabric Intro D Koutsanastasis
 
Hadoop World 2011: Replacing RDB/DW with Hadoop and Hive for Telco Big Data -...
Hadoop World 2011: Replacing RDB/DW with Hadoop and Hive for Telco Big Data -...Hadoop World 2011: Replacing RDB/DW with Hadoop and Hive for Telco Big Data -...
Hadoop World 2011: Replacing RDB/DW with Hadoop and Hive for Telco Big Data -...
 
Open Source Security Tools for Big Data
Open Source Security Tools for Big DataOpen Source Security Tools for Big Data
Open Source Security Tools for Big Data
 
Google BigTable
Google BigTableGoogle BigTable
Google BigTable
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and Debezium
 
Building Data Lakes with Apache Airflow
Building Data Lakes with Apache AirflowBuilding Data Lakes with Apache Airflow
Building Data Lakes with Apache Airflow
 
Data Lake Overview
Data Lake OverviewData Lake Overview
Data Lake Overview
 
Designing An Enterprise Data Fabric
Designing An Enterprise Data FabricDesigning An Enterprise Data Fabric
Designing An Enterprise Data Fabric
 
Apache Sentry for Hadoop security
Apache Sentry for Hadoop securityApache Sentry for Hadoop security
Apache Sentry for Hadoop security
 
5 Steps for Architecting a Data Lake
5 Steps for Architecting a Data Lake5 Steps for Architecting a Data Lake
5 Steps for Architecting a Data Lake
 
Apache hive essentials
Apache hive essentialsApache hive essentials
Apache hive essentials
 
From Data Warehouse to Lakehouse
From Data Warehouse to LakehouseFrom Data Warehouse to Lakehouse
From Data Warehouse to Lakehouse
 
Apache Hadoop 3
Apache Hadoop 3Apache Hadoop 3
Apache Hadoop 3
 
Building Lakehouses on Delta Lake with SQL Analytics Primer
Building Lakehouses on Delta Lake with SQL Analytics PrimerBuilding Lakehouses on Delta Lake with SQL Analytics Primer
Building Lakehouses on Delta Lake with SQL Analytics Primer
 
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
Building Real-Time BI Systems with Kafka, Spark, and Kudu: Spark Summit East ...
 
Learning from ZFS to Scale Storage on and under Containers
Learning from ZFS to Scale Storage on and under ContainersLearning from ZFS to Scale Storage on and under Containers
Learning from ZFS to Scale Storage on and under Containers
 
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
Hadoop Ecosystem | Hadoop Ecosystem Tutorial | Hadoop Tutorial For Beginners ...
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
 

Similar to Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز

معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
Hamid Torkashvand
 

Similar to Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز (20)

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
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
Bi and data mining with Oracle
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracle
 
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
 
Ordbms پایگاه داده شی گرا-رابطه ای
Ordbms پایگاه داده شی گرا-رابطه ایOrdbms پایگاه داده شی گرا-رابطه ای
Ordbms پایگاه داده شی گرا-رابطه ای
 
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسراهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
 
Data cleansing
Data cleansingData cleansing
Data cleansing
 
how upgrade ceph
how upgrade cephhow upgrade ceph
how upgrade ceph
 
Microsoft BI Sumery
Microsoft BI SumeryMicrosoft BI Sumery
Microsoft BI Sumery
 
Crisp dm.1.0
Crisp dm.1.0Crisp dm.1.0
Crisp dm.1.0
 
مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابی
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah Aman
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracle
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 

More from Mobin Ranjbar

More from Mobin Ranjbar (7)

Introduction to Apache Hadoop in Persian - آشنایی با هدوپ
Introduction to Apache Hadoop in Persian - آشنایی با هدوپIntroduction to Apache Hadoop in Persian - آشنایی با هدوپ
Introduction to Apache Hadoop in Persian - آشنایی با هدوپ
 
Hadoop Case Studies in the Real World
Hadoop Case Studies in the Real WorldHadoop Case Studies in the Real World
Hadoop Case Studies in the Real World
 
Hadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعی
Hadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعیHadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعی
Hadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعی
 
Role of Big Data in Start-ups - Persian
Role of Big Data in Start-ups - PersianRole of Big Data in Start-ups - Persian
Role of Big Data in Start-ups - Persian
 
Software Cost Estimation Methods:A Review - Persian
Software Cost Estimation Methods:A Review - PersianSoftware Cost Estimation Methods:A Review - Persian
Software Cost Estimation Methods:A Review - Persian
 
A Story of Big Data:Introduction
A Story of Big Data:IntroductionA Story of Big Data:Introduction
A Story of Big Data:Introduction
 
Smooth Introduction To Startups - استارتاپ زیر صفر،آشنایی با استارتاپ ها به ...
Smooth Introduction To Startups -  استارتاپ زیر صفر،آشنایی با استارتاپ ها به ...Smooth Introduction To Startups -  استارتاپ زیر صفر،آشنایی با استارتاپ ها به ...
Smooth Introduction To Startups - استارتاپ زیر صفر،آشنایی با استارتاپ ها به ...
 

Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز

  • 1. ‫عملی‬ ‫کارگاه‬ ‫هدوپ‬ ‫آموزش‬ } ‫حمایت‬ ‫با‬ ‫ایران‬ ‫اطلعات‬ ‫فناوری‬ ‫سازمان‬ ‫ایران‬ ‫هدوپ‬ ‫مرجع‬ w . . . .ww hadoop ir www farafekr co hello@had . .oop ir info@farafekr co ‫فرافکر‬ ‫پردازان‬ ‫ایده‬ ‫افزار‬‫نرم‬ ‫مهندسی‬ ‫شرکت‬
  • 2. ‫ساده‬ ‫زبان‬ ‫به‬ ‫هدوپ‬ ‫اول‬ ‫فصل‬
  • 3. ‫جدید‬ ‫های‬ ‫چالش‬ = ‫جدید‬ ‫های‬‫حل‬ ‫راه‬ ‫از‬ ‫خارج‬ ‫ها‬‫آن‬ ‫پردازش‬ ‫و‬ ‫مدیریت‬ ‫که‬ ‫شود‬‫می‬ ‫گفته‬ ‫هایی‬‫داده‬ ‫به‬ .‫است‬ ‫موجود‬ ‫های‬‫سیستم‬ ‫و‬ ‫ها‬‫حل‬ ‫راه‬ ‫توانایی‬ ‫چیست؟‬ ‫داده‬ ‫کلن‬
  • 5. ‫ها‬ ‫داده‬ ‫رشد‬ 2013 2015 Unstructured Data 88% 300 Exabytes 80 Exabytes Structured Data 12% DatabaseApplicaton Backup & Archive Backup Storage Optons ‫چیست؟‬ ‫داده‬ ‫کلن‬
  • 6. ‫چیست؟‬ ‫داده‬ ‫کلن‬ ‫یاد‬ ‫به‬ ‫شنوند‬ ‫می‬ ‫را‬ ‫واژه‬ ‫این‬ ‫که‬ ‫زمانی‬ ‫افراد‬ ‫از‬ ‫بسیاری‬ ‫زیاد‬ ‫وسعت‬‫یا‬ ‫و‬‫همان‬‫زیاد‬ ‫حجم‬.‫افتند‬‫می‬ ‫کلن‬ ‫های‬‫داده‬ ‫در‬‫فقط‬‫مو‬.‫نیست‬ ‫مطرح‬ ‫حجم‬ ‫ضوع‬
  • 8. ‫کلن‬ ‫های‬‫داده‬ ‫بندی‬ ‫طبقه‬ ‫چیست؟‬ ‫داده‬ ‫کلن‬
  • 9. ‫سازی‬ ‫ذخیره‬ ‫و‬ ‫تحلیل‬ ‫های‬‫سیستم‬
  • 10. ‫ای‬ ‫غیررابطه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫های‬‫داده‬ ‫پایگاه‬ ) ‫ای‬‫رابطه‬ ‫داده‬ ‫پایگاه‬Relational databases‫های‬‫پایگاه‬ ‫از‬ ‫دسته‬ ‫آن‬ ‫به‬ ( .‫باشند‬ ‫شده‬ ‫ایجاد‬ ‫و‬ ‫طراحی‬ ‫ای‬‫رابطه‬ ‫مدل‬ ‫اساس‬ ‫بر‬ ‫که‬ ‫شود‬‫می‬ ‫اطلقا‬ ‫داده‬ ‫تولد‬ ‫سال‬ ‫پدر‬ ‫نام‬ ‫شماره‬ ‫دانشجویی‬ ‫کامل‬ ‫نام‬ 13۶5 ‫جعفر‬ 9۰45879 ‫احمدیان‬ ‫علی‬ 13۶۶ ‫ایمان‬ 89۶5479 ‫بهرامی‬ ‫میلد‬ 13۶8 ‫مهدی‬ 9245789 ‫علوی‬ ‫علیرضا‬
  • 11. ‫ای‬ ‫غیررابطه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫مقایسه‬ ) ‫ای‬‫غیررابطه‬ ‫داده‬ ‫پایگاه‬-Non Relational databases‫از‬ ‫ای‬‫دسته‬ ‫به‬ ( ‫نحوه‬ ‫و‬ ‫ای‬‫رابطه‬ ‫مدل‬ ‫از‬ ‫ها‬‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫برای‬ ‫که‬ ‫شود‬‫می‬ ‫گفته‬ ‫ها‬‫داده‬ ‫پایگاه‬ .‫نکند‬ ‫استفاده‬ ‫جدول‬ ‫صورت‬ ‫به‬ ‫ها‬‫داده‬ ‫نمایش‬ { _id:147963658, Name:'abc', Contact:{ Phone:'8984577', Email:'test@test.com' }, Address:{ address:'Fanavaran Street', City:'Tehran' } }
  • 12. ‫معایب‬ ‫و‬ ‫مزایا‬ ‫ای‬‫رابطه‬ ‫داده‬ ‫پایگاه‬ :‫مزایا‬ 1.‫ساختار‬ ‫با‬ ‫های‬‫داده‬ ‫پردازش‬ ‫و‬ ‫ذخیره‬ ‫در‬ ‫قبول‬ ‫قابل‬ ‫کارایی‬ . 2.‫شده‬ ‫اثبات‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫متنوع‬ ‫ابزارهای‬ ‫وجود‬ . :‫معایب‬ 1.‫ضعیف‬ ‫پذیری‬ ‫توسعه‬ . 2.‫ثابت‬ ‫ای‬‫داده‬ ‫ساختار‬ .
  • 13. ‫معایب‬ ‫و‬ ‫مزایا‬ ‫ای‬‫غیررابطه‬ ‫داده‬ ‫پایگاه‬ :‫مزایا‬ 1.‫ساختار‬ ‫بی‬ ‫های‬‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫و‬ ‫پردازش‬ ‫در‬ ‫عالی‬ ‫کارایی‬ . 2.‫داده‬ ‫پایگاه‬ ‫در‬ ‫مکرر‬ ‫تغییر‬ ‫تحمل‬ ‫توانایی‬ . 3.‫ابری‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫های‬‫سیستم‬ ‫در‬ ‫کارایی‬ ‫بهترین‬ . :‫معایب‬ 1.‫رشد‬ ‫حال‬ ‫در‬ ‫همچنان‬ ‫موردنیاز‬ ‫ابزارهای‬ ‫و‬ ‫اندازی،نصب‬ ‫راه‬ . 2.‫خاص‬ ‫مسائل‬ ‫در‬ ‫پایین‬ ‫دهی‬ ‫پاسخ‬ ‫زمان‬ .
  • 14. ‫است؟‬ ‫بهتر‬ ‫مدل‬ ‫کدام‬ !‫کدام‬ ‫هیچ‬
  • 15. ‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫رابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬ 1.‫دارید‬ ‫جدول‬ ‫به‬ ‫نیاز‬ . 2.‫هستند‬ ‫روشن‬ ‫و‬ ‫ساده‬ ‫شما‬ ‫های‬ ‫داده‬ . 3.‫است‬ ‫مقداری‬ ‫تک‬ ‫جداول‬ ‫های‬ ‫فیلد‬ . 4.‫دارد‬ ‫یکپارچه‬ ‫و‬ ‫یکتا‬ ‫ساختاری‬ ‫شما‬ ‫های‬ ‫داده‬ .
  • 16. ‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫غیررابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬ 1.‫رسد‬ ‫می‬ ‫بزرگی‬ ‫مقیاس‬ ‫به‬ ‫ثانیه‬ ‫از‬ ‫کسری‬ ‫در‬ ‫شما‬ ‫های‬ ‫داده‬ . 2.‫است‬ ‫پراکنده‬ ‫و‬ ‫ساختار‬ ‫بدون‬ ‫شما‬ ‫های‬ ‫داده‬ . 3‫به‬ ‫تبدیل‬ ‫ای‬ ‫داده‬ ‫فیلد‬ ‫هر‬ ‫است‬ ‫ممکن‬ ‫لحظه‬ ‫هر‬ .2،3‫بیشتر‬ ‫یا‬ ‫و‬ .‫شود‬ 4.‫است‬ ‫شده‬ ‫تشکیل‬ ‫مقادیر‬ ‫از‬ ‫ای‬ ‫آرایه‬ ‫از‬ ‫ای‬ ‫داده‬ ‫فیلد‬ ‫هر‬ . 5.‫هستید‬ ‫ها‬ ‫داده‬ ‫تداوم‬ ‫و‬ ‫پایداری‬ ‫نگران‬ . ۶.‫هستید‬ ‫سرور‬ ‫شدن‬ ‫دسترس‬ ‫از‬ ‫خارج‬ ‫نگران‬ . 7‫از‬ ‫میخواهید‬ ‫و‬ ‫است‬ ‫شده‬ ‫ذخیره‬ ‫ابری‬ ‫بستر‬ ‫در‬ ‫شما‬ ‫های‬ ‫داده‬ . .‫کنید‬ ‫استفاده‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫دیتابیس‬
  • 17. ‫کنیم؟‬ ‫استفاده‬ ‫ای‬ ‫رابطه‬ ‫ای‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫از‬ ‫زمانی‬ ‫چه‬ 1.‫دارید‬ ‫جدول‬ ‫به‬ ‫نیاز‬ . 2.‫هستند‬ ‫روشن‬ ‫و‬ ‫ساده‬ ‫شما‬ ‫های‬ ‫داده‬ . 3.‫است‬ ‫مقداری‬ ‫تک‬ ‫جداول‬ ‫های‬ ‫فیلد‬ . 4.‫دارد‬ ‫یکپارچه‬ ‫و‬ ‫یکتا‬ ‫ساختاری‬ ‫شما‬ ‫های‬ ‫داده‬ .
  • 18. A C P )‫پذیری‬ ‫دسترس‬Availability:( ‫هم‬ ‫همواره‬ ‫را‬ ‫ها‬‫داده‬ ‫بتواند‬ ‫کلینت‬ ‫هر‬ .‫بنویسد‬ ‫هم‬ ‫و‬ ‫بخواند‬ )‫پذیری‬ ‫بخش‬ ‫تحمل‬Partition Tolerance:( ‫شبکه‬ ‫فیزیکی‬ ‫شدن‬ ‫تقسیم‬ ‫رغم‬ ‫به‬ ‫سیستم‬ .‫کند‬ ‫کار‬ ‫خوبی‬ ‫مختلف،به‬ ‫های‬‫قسمت‬ ‫به‬ )‫ثبات‬Consistency:( ‫های‬ ‫نسخه‬ ‫به‬ ‫همواره‬ ‫ها‬ ‫کلینت‬ ‫تمامی‬ .‫باشند‬ ‫داشته‬ ‫دسترسی‬ ‫داده‬ ‫از‬ ‫یکسانی‬ CA CP BigTable HyperTable HBase MongoDB TerraStore Scalaris BerkeleyDB MemcacheDB Redis AP Dynamo Voldemort Tokyo Cabinet KAI Cassandra SimpleDB CouchDB Riak RDBMSs ( , , )MySQLPostgresetc Aster Data Greenplum Vertica ‫کنید‬ ‫انتخاب‬ ‫را‬ ‫مورد‬ ‫دو‬ ‫نظریه‬CAP
  • 19. :‫ای‬ ‫غیررابطه‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫انواع‬ 1‫یا‬ ‫کلید-مقدار‬ .-Key Value 2‫یا‬ ‫سندگرا‬ .-Document Oriented 3‫یا‬ ‫گرا‬ ‫ستون‬ .-Column Oriented 4‫یا‬ ‫گراف‬ ‫بر‬ ‫مبتنی‬ .-Graph based 5‫یا‬ ‫ترکیبی‬ .Multi Model
  • 20. ‫کلید-مقدار‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫های‬‫جفت‬ ‫صورت‬ ‫به‬ ‫مقادیر‬ ‫تمامی‬ ‫کلید-مقدار‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫کلید‬ ‫یک‬ ‫دارای‬ ‫مقدار‬ ‫هر‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ .‫هستند‬ ‫مقدار‬ ‫و‬ ‫کلید‬ .‫است‬
  • 22. ‫سندگرا‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫ما‬ ‫داده‬ ‫سطرهای‬ ‫تمامی‬ ‫سندگرا‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫ای‬‫مجموعه‬ ‫از‬ ‫شده‬ ‫تشکیل‬ ‫اسناد‬ ‫این‬ ‫تمامی‬ ‫و‬ ‫شوند‬‫می‬ ‫شناخته‬ ‫سند‬ .‫هستند‬ ‫کلید-مقدارها‬ { _id:147963658, Name:'abc', Contact:{ Phone:'8984577', Email:'test@test.com' }, Address:{ address:'Fanavaran Street', City:'Tehran' } }
  • 24. ‫گرا‬ ‫ستون‬ ‫های‬‫داده‬ ‫پایگاه‬ ،‫سطر‬ ‫جای‬ ‫به‬ ،‫ستون‬ ‫قالب‬ ‫در‬ ‫را‬ ‫محتوایش‬ ‫گرا‬ ‫ستون‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫را‬ ‫خود‬ ‫خاص‬ ‫های‬‫ستون‬ ‫داده‬ ‫از‬ ‫سطر‬ ‫هر‬ ‫به‬ ‫توان‬‫می‬ .‫نماید‬‫می‬ ‫ذخیره‬ .‫داد‬ ‫نسبت‬
  • 26. ‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫که‬ ‫کند‬‫می‬ ‫پیروی‬ ‫گراف‬ ‫تئوری‬ ‫از‬ ‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫توسط‬ ‫ها‬‫آن‬ ‫بین‬ ‫ارتباط‬ ‫و‬ ‫ها‬‫گره‬ ‫همان‬ ‫یا‬ ‫داده‬ ‫نقاط‬ ‫براساس‬ ‫ها‬‫داده‬ .‫آیند‬‫می‬ ‫در‬ ‫نمایش‬ ‫به‬ ‫ها‬ ‫یال‬
  • 27. ‫گراف‬ ‫بر‬ ‫مبتنی‬ ‫های‬‫داده‬ ‫پایگاه‬
  • 28. ‫ترکیبی‬ ‫های‬‫داده‬ ‫پایگاه‬ ‫ها‬‫داده‬ ‫و‬ ‫شوند‬‫نمی‬ ‫خاصی‬ ‫مدل‬ ‫به‬ ‫محدود‬ ‫ها‬‫داده‬ ‫پایگاه‬ ‫از‬ ‫نوع‬ ‫این‬ .‫کرد‬ ‫ذخیره‬ ‫مختلفی‬ ‫انواع‬ ‫به‬ ‫توان‬‫می‬ ‫را‬
  • 29. ‫خلصه‬ ‫صورت‬ ‫به‬ ‫هدوپ‬ ‫هدوپ‬ ‫توان‬‫می‬ ‫را‬ ‫داده‬ ‫تحلیلی‬ ‫های‬‫چهارچوب‬ ‫ترین‬ ‫بزرگ‬ ‫و‬ ‫ترین‬‫مهم‬ ‫از‬ ‫یکی‬ .‫نامید‬ ‫که‬ ‫است‬ ‫هایی‬ ‫کتابخانه‬ ‫و‬ ‫افزارها‬ ‫نرم‬ ‫از‬ ‫ای‬ ‫مجموعه‬ ‫یا‬ ‫ورک‬ ‫فریم‬ ‫یک‬ ‫هدوپ‬ ‫در‬ .‫میکند‬ ‫فراهم‬ ‫را‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫داده‬ ‫از‬ ‫عظیمی‬ ‫حجم‬ ‫پردازش‬ ‫کار‬ ‫و‬ ‫ساز‬ ‫واقع‬Hadoop‫تا‬ ‫شده‬ ‫طراحی‬ ‫که‬ ‫کرد‬ ‫تشبیه‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬ ‫مدیریت‬ ‫و‬ ‫پردازش‬ ‫مختلف‬ ‫های‬ ‫ماشین‬ ‫روی‬ ‫بر‬ ‫را‬ ‫ها‬ ‫داده‬ ‫از‬ ‫زیادی‬ ‫حجم‬ ‫بتواند‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫و‬ ‫نیست‬ ‫قیمت‬ ‫گران‬ ‫کامپیوترهای‬ ‫نیازمند‬ ‫هدوپ‬ .‫کند‬ .‫گیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫معمول‬ ‫و‬ ‫ارزان‬ ‫کامپیوترهای‬
  • 32. ‫ای‬ ‫داده‬ ‫مدل‬ ‫یا‬ ‫نگاشت،کاهش‬MapReduce‫های‬ ‫داده‬ ‫پردازش‬ ‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫یک‬ ‫تواند‬ ‫می‬ ،‫سادگی‬ ‫عین‬ ‫در‬ ‫مدل‬ ‫این‬ .‫باشد‬ ‫می‬ ‫موازی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫صورت‬ ‫به‬ ‫کلن‬ ،‫مختلف‬ ‫های‬ ‫الگوریتم‬ ‫در‬ ‫ساختار‬ ‫پیچیدگی‬ ‫دلیل‬ ‫به‬ ‫زیرا‬ .‫باشد‬ ‫پیچیده‬ ‫بسیار‬ .‫شود‬ ‫می‬ ‫غیرممکن‬ ‫مدل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سازی‬ ‫پیاده‬ ‫توانایی‬ ‫یا‬ ‫نگاشت،کاهش‬MapReduce‫های‬ ‫داده‬ ‫پردازش‬ ‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫یک‬ ‫تواند‬ ‫می‬ ،‫سادگی‬ ‫عین‬ ‫در‬ ‫مدل‬ ‫این‬ .‫باشد‬ ‫می‬ ‫موازی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫صورت‬ ‫به‬ ‫کلن‬ ،‫مختلف‬ ‫های‬ ‫الگوریتم‬ ‫در‬ ‫ساختار‬ ‫پیچیدگی‬ ‫دلیل‬ ‫به‬ ‫زیرا‬ .‫باشد‬ ‫پیچیده‬ ‫بسیار‬ .‫شود‬ ‫می‬ ‫غیرممکن‬ ‫مدل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سازی‬ ‫پیاده‬ ‫توانایی‬ ‫مدل‬MR‫به‬ ‫را‬ ‫مسئله‬2‫اصلی‬ ‫فاز‬Map‫و‬Reduce‫از‬ ‫هرکدام‬ .‫کند‬ ‫می‬ ‫تقسیم‬ ‫توسط‬ ‫آنها‬ ‫نوع‬ ‫که‬ ‫باشد‬ ‫می‬ ‫خروجی‬ ‫و‬ ‫ورودی‬ ‫کلید-مقدارهای‬ ‫جفت‬ ‫دارای‬ ‫فازها‬ ‫این‬ ‫توابع‬ ‫بایست‬ ‫می‬ ‫نویس‬ ‫برنامه‬ ‫همچنین‬ .‫گردد‬ ‫می‬ ‫تعیین‬ ‫نویس‬ ‫برنامه‬Map‫و‬ Reduce.‫کند‬ ‫سازی‬ ‫پیاده‬ ‫هم‬ ‫را‬
  • 33. ‫نگاه‬ ‫یک‬ ‫در‬ ‫نگاشت،کاهش‬ ‫مدل‬
  • 34. ‫یا‬ ‫نگاشت‬ ‫متد‬Map ‫توسط‬ ‫شده‬ ‫تعیین‬ ‫اندازه‬ ‫به‬ ‫را‬ ‫ورودی‬ ‫داده‬ ‫هدوپ‬Input Split‫و‬ ‫کند‬‫می‬ ‫تقسیم‬ ‫یا‬ ‫نگاشت‬ ‫متد‬ ،‫ها‬‫قسمت‬ ‫این‬ ‫از‬ ‫هرکدام‬ ‫برای‬Map‫نوشته‬ ‫کاربر‬ ‫توسط‬ ‫که‬ ‫ای‬ .‫کند‬‫می‬ ‫ایجاد‬ ‫را‬ ‫است‬ ‫شده‬ ‫اندازه‬Input Split‫کل‬ ‫کارایی‬ ‫در‬Job‫متعادل‬ ‫مقدار‬ ‫این‬ ‫اگر‬ .‫دارد‬ ‫زیادی‬ ‫تأثیر‬ ،‫باشد‬ ‫کم‬ ‫بسیار‬ ‫میزان‬ ‫این‬ ‫اگر‬ ‫اما‬ .‫یافت‬ ‫خواهد‬ ‫افزایش‬ ‫موازی‬ ‫بار‬ ‫توازن‬ ‫باشد‬ ‫مدیریت‬Task‫کارایی‬ ‫ورودی‬ ‫های‬‫تکه‬ ‫و‬ ‫ها‬Job.‫دهد‬‫می‬ ‫کاهش‬ ‫را‬ ‫میزان‬ ‫بهترین‬Input Split) ‫داده‬ ‫بلوک‬ ‫یک‬ ‫اندازه‬ ‫به‬128.‫باشد‬‫می‬ (‫مگابایت‬ ‫یا‬ ‫تکه‬ ‫هر‬ ‫برای‬ ‫که‬ ‫زیرا‬Split‫متد‬ ‫یک‬Map.‫شود‬‫می‬ ‫ایجاد‬
  • 35. ‫مفهوم‬DLO‫داده‬ ‫محلی‬ ‫سازی‬ ‫بهینه‬ ‫یا‬ ‫متد‬ ‫که‬ ‫کند‬ ‫می‬ ‫تلش‬ ‫هدوپ‬Map‫پردازشی‬ ‫داده‬ ‫که‬ ‫کند‬ ‫اجرا‬ ‫ماشینی‬ ‫برروی‬ ‫را‬ ‫رفتن‬ ‫هدر‬ ‫به‬ ‫از‬ ‫موضوع‬ ‫این‬ ‫که‬ ‫زیرا‬ .‫باشد‬ ‫داشته‬ ‫وجود‬ ‫سیستم‬ ‫همان‬ ‫برروی‬ ‫آن‬ ‫مفهوم‬ ‫این‬ ‫به‬ .‫کند‬ ‫می‬ ‫جلوگیری‬ ‫شبکه‬ ‫ارزش‬ ‫با‬ ‫باند‬ ‫پهنای‬‫داده‬ ‫محلی‬ ‫سازی‬ ‫بهینه‬ .‫شود‬ ‫می‬ ‫گفته‬ ‫متد‬ ‫اجرای‬ ‫هنگام‬ ‫در‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬Map‫آن‬ ‫توسط‬ ‫بایست‬ ‫می‬ ‫که‬ ‫هایی‬ ‫داده‬ .‫است‬ ‫موجود‬ ‫محلی‬ ‫ماشین‬ ‫در‬ ‫گیرد‬ ‫قرار‬ ‫پردازش‬ ‫مورد‬ ‫متد‬ ‫متد‬ ‫در‬ ‫فقط‬ ‫مکانیزم‬ ‫این‬ ‫که‬ ‫کنید‬ ‫توجه‬Map‫متد‬ ‫و‬ ‫دارد‬ ‫وجود‬Reduce‫به‬ ‫قادر‬ .‫نیست‬ ‫اینکار‬ ‫انجام‬
  • 36. ‫یا‬ ‫کاهش‬ ‫متد‬Reduce ‫یا‬ ‫کاهش‬ ‫متد‬ ‫در‬Reduce‫متد‬ ‫خروجی‬Map‫شود‬ ‫می‬ ‫دریافت‬ ‫ورودی‬ ‫عنوان‬ ‫به‬ ‫متد‬ ‫یک‬ ‫اگر‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬Reduce‫همه‬ ‫خروجی‬ ‫باشیم‬ ‫داشته‬Map‫به‬ ‫ها‬ ‫متد‬ ‫یک‬Reduce.‫شود‬ ‫می‬ ‫ارسال‬ ‫ماشین‬ ‫یک‬ ‫برروی‬ ‫متد‬ ‫چند‬ ‫اگر‬ ‫اما‬Reduce‫هر‬ ‫خروجی‬ ،‫شود‬ ‫اجرا‬Map‫متدهای‬ ‫بین‬Reduce ‫شود‬ ‫سازی‬ ‫پیاده‬ ‫نویس‬ ‫برنامه‬ ‫توسط‬ ‫بایست‬ ‫می‬ ‫نیز‬ ‫متد‬ ‫این‬ .‫شود‬ ‫می‬ ‫کپی‬ ‫و‬ ‫توزیع‬ ‫برروی‬ ‫متد‬ ‫این‬ ‫خروجی‬ ‫نهایت‬ ‫در‬ ‫و‬HDFS.‫میگیرد‬ ‫قرار‬
  • 37. ‫یا‬ ‫کاهش‬ ‫متد‬Reduce ‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫یک‬ ‫با‬
  • 38. ‫یا‬ ‫کاهش‬ ‫متد‬Reduce ‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫چند‬ ‫با‬
  • 39. ‫یا‬ ‫کاهش‬ ‫متد‬Reduce ‫برنامه‬ ‫یک‬MapReduce‫کاهش‬ ‫متد‬ ‫بدون‬
  • 40. ‫توابع‬Combiner ‫های‬ ‫برنامه‬MapReduce‫و‬ ‫هستند‬ ‫محدود‬ ‫کلستر‬ ‫در‬ ‫موجود‬ ‫باند‬ ‫پهنای‬ ‫لحاظ‬ ‫از‬ ‫وظایف‬ ‫بین‬ ‫ها‬ ‫داده‬ ‫تبادل‬ ‫میزان‬ ‫بایست‬ ‫می‬Map‫و‬Reduce.‫رسد‬ ‫حداقل‬ ‫به‬ ‫تابع‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫را‬ ‫امکان‬ ‫این‬ ‫کاربر‬ ‫به‬ ‫هدوپ‬Combiner‫خروجی‬ ‫برروی‬Map ‫متد‬ ‫ورودی‬ ‫و‬ ‫شود‬ ‫اجرا‬Reduce‫واقع‬ ‫در‬ .‫کند‬ ‫پردازش‬ ‫رسیدن‬ ‫از‬ ‫پیش‬ ‫را‬ ‫بار‬ ‫چند‬ ‫تابع‬ ‫این‬ ‫که‬ ‫دهد‬ ‫نمی‬ ‫تضمین‬ ‫هدوپ‬ ‫ولی‬ ‫است‬ ‫سازی‬ ‫بهینه‬ ‫تابع‬ ‫این‬ ‫وظیفه‬ ‫هر‬ ‫خروجی‬ ‫برروی‬Map.‫شود‬ ‫می‬ ‫اجرا‬ ‫تابع‬ ‫واقع‬ ‫در‬Combiner‫توابع‬ ‫خروجی‬Map‫کاری‬ ‫و‬ ‫کند‬ ‫می‬ ‫پردازش‬ ‫پیش‬ ‫را‬ ‫فاز‬ ‫مشابه‬Reduce.‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬
  • 41. ‫عمل‬ ‫در‬ ‫کاهش‬ ‫و‬ ‫نگاشت‬ ‫برنامه‬ ‫یک‬ ‫اجرای‬
  • 42. ‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬ ‫کتابخانه‬ ‫استفاده‬ ‫با‬Hadoop Streaming‫های‬ ‫برنامه‬ ‫توان‬ ‫می‬MapReduce ‫از‬ ‫کتابخانه‬ ‫این‬ .‫کرد‬ ‫سازی‬ ‫پیاده‬ ‫هدوپ‬ ‫برای‬ ‫جاوا‬ ‫از‬ ‫غیر‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫هر‬ ‫با‬ ‫را‬ ‫استاندارد‬ ‫جریان‬ ‫واسط‬Unix‫خروجی‬ ‫و‬ ‫ورودی‬ ‫که‬ ‫صورت‬ ‫این‬ ‫به‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫برنامه‬MapReduce‫طریق‬ ‫از‬ ‫بایست‬ ‫می‬ ‫شما‬Standard Input‫یا‬stdin‫و‬ Standard Output‫یا‬stdout.‫شود‬ ‫پردازش‬ ‫و‬ ‫دریافت‬
  • 43. ‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬ import sys for line in sys.stdin: line = line.strip() words = line.split() for word in words: print '%st%s' % (word,1) ‫زیر‬ ‫صورت‬ ‫به‬ (‫کلمات‬ ‫شمارش‬ ‫پایتون)مثال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫در‬ ‫نگاشت‬ ‫متد‬ ‫ساختار‬ :‫است‬
  • 44. ‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬ from operator import itemgetter import sys current_word = None current_count = 0 word = None for line in sys.stdin: line = line.strip() word, count = line.split('t', 1) try: count = int(count) except ValueError: continue if current_word == word: current_count += count else: if current_word: print '%st%s' % (current_word, current_count) current_count = count current_word = word if current_word == word: print '%st%s' % (current_word, current_count) ‫زیر‬ ‫صورت‬ ‫به‬ (‫کلمات‬ ‫شمارش‬ ‫پایتون)مثال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫در‬ ‫کاهش‬ ‫متد‬ ‫ساختار‬ :‫است‬
  • 45. ‫جاوا‬ ‫غیر‬ ‫های‬‫زبان‬ ‫در‬ ‫کاهش‬ ،‫نگاشت‬ ‫مدل‬ ‫فایل‬ ‫دو‬ ‫اجرای‬ ‫برای‬.mapper py‫و‬.reducer py:‫میکنیم‬ ‫عمل‬ ‫زیر‬ ‫صورت‬ ‫به‬ hadoop jar hadoop-*streaming*.jar -file /home/hduser/mapper.py -mapper /home/hduser/mapper.py -file /home/hduser/reducer.py -reducer /home/hduser/reducer.py -input /user/hduser/myinput/* -output /user/hduser/myoutput
  • 46. ‫سوم‬ ‫فصل‬ ‫هدوپ‬ ‫شده‬ ‫توزیع‬ ‫فایل‬ ‫سیستم‬ HDFS
  • 47. ‫مفهوم‬HDFS ‫با‬ ‫را‬ ‫بزرگ‬ ‫بسیار‬ ‫های‬ ‫فایل‬ ‫تا‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫هدوپ‬ ‫شده‬ ‫توزیع‬ ‫فایل‬ ‫سیستم‬ ‫های‬ ‫فایل‬ ‫از‬ ‫منظور‬ .‫کند‬ ‫اجرا‬ ‫معمولی‬ ‫کامپیوترهای‬ ‫برروی‬ ،‫جریانی‬ ‫دسترسی‬ ‫الگوی‬ ‫بر‬ ‫بالغ‬ ‫حجمی‬ ،‫بزرگ‬1۰۰‫از‬ ‫منظور‬ ‫و‬ ‫است‬ ‫پتابایت‬ ‫و‬ ‫ترابایت‬ ‫و‬ ‫گیگابایت‬ ،‫مگابایت‬ ‫ها‬ ‫یک‬ .‫است‬ ‫بار‬ ‫چند‬ ‫خواندن‬ ‫و‬ ‫بار‬ ‫یک‬ ‫نوشتن‬ ‫الگوی‬ ، ‫ها‬ ‫داده‬ ‫جریانی‬ ‫دسترسی‬ ‫الگوی‬ ‫های‬ ‫تحلیل‬ ‫آن‬ ‫برروی‬ ‫سپس‬ ‫و‬ ‫شود‬ ‫می‬ ‫کپی‬ ‫یا‬ ‫و‬ ‫آوری‬ ‫جمع‬ ‫معمول‬ ‫طور‬ ‫به‬ ‫دیتاست‬ .‫شود‬ ‫می‬ ‫انجام‬ ‫مشخصی‬ ‫زمانی‬ ‫های‬ ‫بازه‬ ‫در‬ ‫مختلفی‬ .‫نیست‬ ‫قدیمی‬ ‫و‬ ‫قیمت‬ ‫ارزان‬ ‫کامپیوترهای‬ ،‫معمولی‬ ‫کامپیوترهای‬ ‫از‬ ‫منظور‬ ‫همچنین‬ .‫نیست‬ ‫بال‬ ‫اعتماد‬ ‫قابلیت‬ ‫با‬ ‫قیمت‬ ‫گران‬ ‫سرورهای‬ ‫یا‬ ‫و‬ ‫کامپیوترها‬ ‫به‬ ‫نیاز‬ ‫هدوپ‬ ‫دارد‬ ‫وجود‬ ‫بازار‬ ‫که‬ ‫معمولی‬ ‫سرورهای‬ ‫و‬ ‫کامپیوترها‬ ‫برروی‬ ‫تا‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫هدوپ‬ .‫کند‬ ‫کار‬ ‫کلی‬ ‫تعریف‬HDFS
  • 48. ‫مفهوم‬HDFS ●‫ها‬ ‫ده‬ ‫حدود‬ ‫تاخیر)در‬ ‫با‬ ‫دسترسی‬ ‫نیازمند‬ ‫که‬ ‫هایی‬ ‫برنامه‬ : ‫کم‬ ‫تأخیر‬ ‫با‬ ‫دسترسی‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫دقت‬ .‫باشد‬ ‫می‬ (‫ثانیه‬ ‫میلی‬HDFS‫عملیاتی‬ ‫توان‬ ‫افزایش‬ ‫برای‬ ‫و‬ ‫بسیاربال‬ ‫سرعت‬ ‫نیازمند‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫در‬ ‫آن‬ ‫از‬ ‫توان‬ ‫نمی‬ ‫و‬ ‫است‬ ‫شده‬ ‫طراحی‬ .‫کرد‬ ‫استفاده‬ ‫هستند‬ ‫تاخیرکم‬ ●‫هدوپ)به‬ ‫بلک‬ ‫یک‬ ‫از‬ ‫کوچکتر‬ ‫اندازه‬ ‫با‬ ‫فایلی‬ ‫به‬ ‫کوچک‬ ‫فایل‬ ‫یک‬ : ‫کوچک‬ ‫های‬‫فایل‬ ‫فرض‬ ‫پیش‬ ‫صورت‬۶4‫خواندن‬ ‫عملیات‬ ‫اینکه‬ ‫دلیل‬ ‫به‬ .‫شود‬ ‫می‬ ‫گفته‬ (‫مگابایت‬ ‫نیازمند‬Seek‫است‬ ‫داده‬ ‫های‬ ‫گره‬ ‫از‬ ‫زیادی‬ ‫های‬ ‫بازخوانی‬ ‫و‬HDFS‫کارایی‬ .‫داشت‬ ‫نخواهد‬ ‫مناسبی‬ ●‫در‬ ‫ها‬ ‫فایل‬ : ‫همزمان‬ ‫نوشتن‬HDFS‫به‬ ‫شود‬ ‫نوشته‬ ‫تواند‬ ‫می‬ ‫نویسنده‬ ‫یک‬ ‫توسط‬ ‫تغییرات‬ ‫آنها‬ ‫در‬ ‫و‬ ‫بازکرد‬ ‫نویسنده‬ ‫چند‬ ‫توسط‬ ‫را‬ ‫فایل‬ ‫یک‬ ‫توان‬ ‫نمی‬ ‫که‬ ‫صورت‬ ‫این‬ .‫شود‬ ‫پیشتیبانی‬ ‫آینده‬ ‫در‬ ‫است‬ ‫ممکن‬ ‫ویژگی‬ ‫این‬ .‫کرد‬ ‫ایجاد‬ ‫زمانی‬ ‫چه‬HDFS‫نیست؟‬ ‫مناسبی‬ ‫انتخاب‬
  • 49. ‫مفهوم‬HDFS ‫ها‬ ‫بلک‬ ‫است‬ ‫داده‬ ‫از‬ ‫حداقلی‬ ‫میزان‬ ‫بلک‬ ‫هر‬ ‫واقع‬ ‫در‬ .‫باشد‬ ‫می‬ ‫بلک‬ ‫اندازه‬ ‫دارای‬ ‫دیسک‬ ‫هر‬ ‫کیلوبایت‬ ‫چند‬ ‫از‬ ‫معمول‬ ‫سیستم‬ ‫فایل‬ ‫های‬ ‫بلک‬ .‫شود‬ ‫نوشته‬ ‫یا‬ ‫خوانده‬ ‫تواند‬ ‫می‬ ‫که‬ .‫بنویسد‬ ‫و‬ ‫بخواند‬ ‫را‬ ‫ها‬ ‫فایل‬ ‫تواند‬ ‫می‬ ‫سیستم‬ ‫فایل‬ ‫که‬ ‫شود‬ ‫می‬ ‫تشکیل‬ ‫در‬HDFS‫در‬ ‫بلک‬ ‫اندازه‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫دارد‬ ‫وجود‬ ‫بلک‬ ‫مقوله‬ ‫هم‬HDFS‫بزرگ‬ ‫فرض‬ ‫پیش‬ ‫صورت‬ ‫تر)به‬128‫ها‬ ‫فایل‬ ،‫معمولی‬ ‫سیستم‬ ‫فایل‬ ‫مثل‬ .‫باشد‬ ‫می‬ (‫مگابایت‬ ‫در‬HDFS‫فایل‬ ‫برعکس‬ .‫شوند‬ ‫می‬ ‫شکسته‬ ‫ثابت‬ ‫اندازه‬ ‫با‬ ‫مستقل‬ ‫های‬ ‫بلک‬ ‫به‬ ‫در‬ ‫فایل‬ ‫یک‬ ‫که‬ ‫زمانی‬ ،‫معمولی‬ ‫های‬ ‫سیستم‬HDFS،‫باشد‬ ‫کوچکتر‬ ‫بلک‬ ‫یک‬ ‫اندازه‬ ‫از‬ ‫فایل‬ ‫یک‬ ‫مثال‬ ‫طور‬ ‫به‬ .‫کند‬ ‫نمی‬ ‫اشغال‬ ‫را‬ ‫بلک‬ ‫یک‬ ‫فضای‬ ‫کل‬1‫در‬ ‫مگابایتی‬HDFS ‫بلک‬ ‫یک‬ ‫در‬ ‫که‬128‫حجم‬ ‫شود‬ ‫می‬ ‫ذخیره‬ ‫مگابایتی‬1‫نه‬ ‫و‬ ‫کند‬ ‫می‬ ‫اشغال‬ ‫را‬ ‫مگابایت‬ 128.‫مگابایت‬
  • 50. ‫مفهوم‬HDFS ‫ها‬ ‫بلک‬ ‫در‬ ‫ها‬‫فایل‬ ‫های‬ ‫بلک‬ ‫لیست‬ ‫زیر‬ ‫دستور‬HDFS:‫دهد‬‫می‬ ‫نشان‬ ‫را‬ $ hdfs fsck / -files -blocks
  • 51. ‫ورودی‬ ‫فایل‬ ) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
  • 52. ) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
  • 53. ) ‫داده‬ ‫گره‬ ‫و‬ ‫نام‬ ‫گره‬NameNode‫و‬DataNode(
  • 54. ‫فرمان‬ ‫خط‬ ‫واسط‬ ‫با‬ ‫کار‬HDFS
  • 58. ‫بند‬ ‫زمان‬YARN ‫بند‬ ‫زمان‬YARN‫نسخه‬ ‫در‬ ‫که‬ ‫باشد‬ ‫می‬ ‫هدوپ‬ ‫کلستر‬ ‫منابع‬ ‫مدیریت‬ ‫سیستم‬2 ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫سازی‬ ‫بهینه‬ ‫و‬ ‫توسعه‬ ‫برای‬ ‫هدوپ‬MapReduce.‫شد‬ ‫ارائه‬ ‫مثل‬ ‫پردازشی‬ ‫موتورهای‬ ‫دیگر‬ ‫از‬ ‫سیستم‬ ‫این‬ ‫همچنین‬Spark‫و‬Tez‫پشتیبانی‬ ...‫و‬ .‫کند‬ ‫می‬ ‫ساختار‬YARN
  • 59. ‫بند‬ ‫زمان‬YARN ‫در‬ ‫برنامه‬ ‫اجرای‬ ‫ساختار‬YARN
  • 60. ‫بند‬ ‫زمان‬YARN ‫ها‬ ‫برنامه‬ ‫سازی‬‫پیاده‬ ‫در‬ ‫ها‬‫برنامه‬ ‫سازی‬‫پیاده‬ ‫و‬ ‫ساخت‬ ‫در‬ ‫پیچیدگی‬ ‫وجود‬ ‫دلیل‬ ‫به‬YARN‫از‬ ‫استفاده‬ ‫با‬ ،2 ‫برای‬ ‫نخی‬ ‫تک‬ ‫نویسی‬ ‫برنامه‬ ‫همانند‬ ‫توان‬‫می‬ ‫زیر‬ ‫ابزار‬YARN:‫نوشت‬ ‫برنامه‬ ●Apache Slider: ‫مثل‬ ‫آماده‬ ‫شده‬ ‫توزیع‬ ‫های‬ ‫برنامه‬ ‫انتقال‬ ‫برای‬ ‫افزاری‬ ‫نرم‬HBase‫برروی‬YARN .‫باشد‬ ‫می‬ ‫دارا‬ ‫را‬ ‫گیری‬ ‫گزارش‬ ‫و‬ ‫مانیتورینگ‬ ‫همچون‬ ‫امکاناتی‬ ‫و‬ ‫باشد‬ ‫می‬ ●Apache Twill: ‫افزارهای‬ ‫نرم‬ ‫سازی‬ ‫پیاده‬ ‫و‬ ‫ساخت‬ ‫فرآیند‬ ‫که‬ ‫است‬ ‫هدوپ‬ ‫برای‬ ‫انتزاعی‬ ‫سطحی‬ ‫برروی‬ ‫شده‬ ‫توزیع‬YARN.‫کند‬ ‫می‬ ‫ساده‬ ‫را‬
  • 61. ‫بند‬ ‫زمان‬YARN ‫بندی‬ ‫زمان‬ ‫اصول‬ ‫بندی‬ ‫زمان‬FIFO:
  • 62. ‫بند‬ ‫زمان‬YARN ‫بندی‬ ‫زمان‬ ‫اصول‬ ‫بندی‬ ‫زمان‬Capacity: (‫فرض‬ ‫)پیش‬
  • 63. ‫بند‬ ‫زمان‬YARN ‫بندی‬ ‫زمان‬ ‫اصول‬ ‫بندی‬ ‫زمان‬Fair:
  • 64. <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager. scheduler.fair.FairScheduler</value> </property> ‫بند‬ ‫زمان‬YARN ‫بندی‬ ‫زمان‬ ‫اصول‬ ‫تنظیمات‬ ‫در‬ ‫بند‬ ‫زمان‬ ‫نوع‬ ‫انتخاب‬ ‫برای‬- .yarn site xml‫کلید‬ ‫بایست‬ ‫می‬ : ‫نمایید‬ ‫وارد‬ ‫را‬ ‫زیر‬
  • 66. ‫پردازشی‬ ‫موتور‬Apache Spark ‫اولیه‬ ‫تعریف‬ ‫برای‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شده‬ ‫توزیع‬ ‫پردازش‬ ‫های‬ ‫پلتفرم‬ ‫از‬ ‫یکی‬ ‫اسپارک‬ ‫آپاچی‬ .‫است‬ ‫شده‬ ‫طراحی‬ (‫جریانی‬ ‫بال)داده‬ ‫سرعت‬ ‫با‬ ‫پردازشی‬ ‫عملیات‬ ‫اجرای‬
  • 67. ‫پردازشی‬ ‫موتور‬Apache Spark ‫اسپارک‬ ‫در‬ ‫برنامه‬ ‫اجرای‬ ‫روند‬
  • 68. lines = sc.textFile("README.md") lines.count() 127 lines.first() u'# Apache Spark' ‫پردازشی‬ ‫موتور‬Apache Spark ‫مفهوم‬RDD ‫یک‬RDD‫به‬ ‫شبکه‬ ‫های‬‫ماشین‬ ‫برروی‬ ‫که‬ ‫است‬ ‫ای‬‫داده‬ ‫اقلم‬ ‫از‬ ‫مجموعه‬ .‫میگیرد‬ ‫قرار‬ ‫شده‬ ‫توزیع‬ ‫صورت‬
  • 69. rdd = sc.textFile("s3://...") words = rdd.flatMap(lambda x: x.split(" ")) result = words.map(lambda x: (x,1)).reduceByKey(lambda x, y: x + y) result.saveAsTextFile(outputFile) ‫پردازشی‬ ‫موتور‬Apache Spark ‫مفهوم‬RDD‫ها‬ ‫داده‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬ – ‫پایتون‬ ‫در‬ ‫اسپارک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫مثال‬
  • 71. ‫پردازشی‬ ‫موتور‬Apache Spark ‫معرفی‬Spark SQL ‫باشد‬ ‫می‬ ‫ساختارمند‬ ‫نیمه‬ ‫و‬ ‫باساختار‬ ‫های‬ ‫داده‬ ‫را‬ ‫کار‬ ‫واسط‬ ‫کتابخانه‬ ‫این‬.‫باس‬ ‫های‬ ‫داده‬‫به‬ ‫اختار‬ ‫فی‬ ‫و‬ ‫رکورد‬ ‫به‬ ‫مربوط‬ ‫مفاهیم‬ ‫همانند‬ ‫باشند‬ ‫اسکیما‬ ‫دارای‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫هایی‬ ‫داده‬‫جداول‬ ‫در‬ ‫لد‬ ‫ای‬ ‫رابطه‬.
  • 72. ‫پردازشی‬ ‫موتور‬Apache Spark ‫مفهوم‬DataFrame ‫یک‬DataFrame‫اختصار‬ ‫به‬ ‫یا‬DF،‫با‬ ‫است‬ ‫ای‬ ‫غیررابطه‬ ‫های‬ ‫دیتابیس‬ ‫در‬ ‫جدول‬ ‫مفهوم‬ ‫همانند‬ ‫این‬ ‫و‬ ‫شود‬ ‫ایجاد‬ ‫داده‬ ‫کالن‬ ‫شده‬ ‫توزیع‬ ‫ورک‬ ‫فریم‬ ‫یک‬ ‫در‬ ‫تواند‬ ‫می‬ ‫جدول‬ ‫این‬ ‫که‬ ‫تفاوت‬ ‫این‬‫ها‬ ‫داده‬ ‫کرد‬ ‫ترکیب‬ ‫مختلف‬ ‫ای‬ ‫داده‬ ‫منابع‬ ‫از‬ ‫ساختار‬ ‫بی‬ ‫های‬ ‫داده‬ ‫با‬ ‫توان‬ ‫می‬ ‫را‬. myDF = spark.read.format(...)
  • 73. ‫پردازشی‬ ‫موتور‬Apache Spark ‫ها‬ ‫داده‬ ‫نشست‬ ‫و‬ ‫بارگیری‬ ‫پردازشی‬ ‫موتور‬Apache Spark‫پشتی‬ ‫ساخت‬ ‫درون‬ ‫صورت‬ ‫به‬ ‫ای‬ ‫داده‬ ‫منابع‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫از‬‫بانی‬ ‫کند‬ ‫می‬.‫عبارتنداز‬ ‫منابع‬ ‫این‬: Apache Hive:‫برروی‬ ‫را‬ ‫خود‬ ‫های‬ ‫داده‬ ‫که‬ ‫است‬ ‫ای‬ ‫داده‬ ‫انباره‬ ‫یک‬HDFS‫ای‬ ‫رابطه‬ ‫قالب‬ ‫با‬ ‫کند‬ ‫می‬ ‫ذخیره‬. Parquet:‫ب‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫که‬ ‫باشد‬ ‫می‬ ‫گرا‬ ‫ستون‬ ‫داده‬ ‫سازی‬ ‫ذخیره‬ ‫قالب‬ ‫یک‬‫سرعت‬ ‫ا‬ ‫کرد‬ ‫پیدا‬ ‫دسترسی‬ ‫ها‬ ‫داده‬ ‫به‬ ‫باالتری‬ ‫بسیار‬.
  • 74. ‫در‬ ‫مثال‬ ‫یک‬ ‫اجرای‬Spark SQL
  • 76. ‫پردازشی‬ ‫موتور‬Apache Spark ‫کتابخانه‬ ‫با‬ ‫آشنایی‬Streaming ‫کتابخانه‬ ‫از‬Streaming‫ج‬ ‫و‬ ‫بالدرنگ‬ ‫پردازش‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫نوشتن‬ ‫برای‬ ‫توان‬ ‫می‬‫ریانی‬ ‫کرد‬ ‫استفاده‬ ‫دارند‬.‫بالفاص‬ ،‫رسیدن‬ ‫زمان‬ ‫در‬ ‫توان‬ ‫می‬ ‫را‬ ‫ها‬ ‫داده‬ ،‫کتابخانه‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬‫پردازش‬ ‫له‬ ‫کرد‬.
  • 77. ‫پردازشی‬ ‫موتور‬Apache Spark ‫معماری‬Streaming ‫نام‬ ‫به‬ ‫انتزاعی‬ ‫کالس‬ ‫یک‬ ‫دارای‬ ‫کتابخانه‬ ‫این‬DStream‫یا‬Discretized Stream‫باشد‬ ‫می‬ ‫از‬ ‫ای‬ ‫دنباله‬ ‫که‬RDD‫یابد‬ ‫می‬ ‫انتقال‬ ‫زمان‬ ‫در‬ ‫که‬ ‫است‬ ‫هایی‬.DStream‫منابع‬ ‫توسط‬ ‫تواند‬ ‫می‬ ‫مانند‬ ‫گردد‬ ‫تولید‬ ‫مختلفی‬ ‫ای‬ ‫داده‬Flume،Kafka‫یا‬ ‫و‬HDFS.
  • 78. ‫پردازشی‬ ‫موتور‬Apache Spark ‫شده‬ ‫بندی‬ ‫زمان‬ ‫عملیات‬ Dstream‫کرد‬ ‫فراخوانی‬ ‫مختلفی‬ ‫زمانی‬ ‫فواصل‬ ‫در‬ ‫توان‬ ‫می‬ ‫را‬ ‫ها‬.‫مثال‬ ‫طور‬ ‫به‬: ssc = StreamingContext(sc,1)
  • 79. ‫در‬ ‫مثال‬ ‫یک‬ ‫اجرای‬Spark Streaming