SlideShare a Scribd company logo
1 of 81
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‫ها‬ ‫داده‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬ –
‫پایتون‬ ‫در‬ ‫اسپارک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫مثال‬
‫عمل‬ ‫در‬ ‫اسپارک‬ ‫آپاچی‬ ‫با‬ ‫کار‬
‫ششم‬ ‫فصل‬
‫داده‬ ‫انباره‬
Hive
‫داده‬ ‫انباره‬Hive
‫اولیه‬ ‫تعریف‬
‫داده‬ ‫انباره‬Hive‫قابلیت‬ ‫ایجاد‬ ‫برای‬SQL‫ساختارمند‬ ‫های‬ ‫داده‬ ‫برروی‬
‫در‬ ‫شده‬ ‫ذخیره‬HDFS‫تر‬ ‫ساده‬ ‫بیان‬ ‫به‬ .‫آمد‬ ‫بوجود‬Hive‫برای‬ ‫ابزاری‬
‫دستورات‬ ‫تبدیل‬SQL‫عملیات‬ ‫به‬MapReduce.‫باشد‬ ‫می‬
‫داده‬ ‫انباره‬Hive
‫مفهوم‬Metastore
‫منبع‬Metastore‫های‬ ‫ابرداده‬ ‫برای‬ ‫سازی‬ ‫ذخیره‬ ‫فضای‬Hive.‫باشد‬ ‫می‬
Metastore‫پیش‬ ‫طور‬ ‫کوچک)به‬ ‫ای‬ ‫رابطه‬ ‫دیتابیس‬ ‫یک‬ ‫خود‬ ‫درون‬ ‫در‬
‫فرض‬Apache Derby.‫شود‬ ‫می‬ ‫ذخیره‬ ‫آن‬ ‫در‬ ‫مربوطه‬ ‫های‬ ‫داده‬ ‫که‬ ‫دارد‬ (
‫با‬ ‫کار‬Hive‫عمل‬ ‫در‬
‫هفتم‬ ‫فصل‬
‫نویسی‬ ‫اسکریپت‬ ‫زبان‬
Pig
‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig
‫اولیه‬ ‫تعریف‬
‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig‫انتزاع‬ ‫از‬ ‫سطحی‬MapReduce‫به‬ ‫که‬ ‫است‬
‫طریق‬ ‫از‬ ‫داده‬ ‫پردازش‬ ‫های‬ ‫چرخه‬ ‫تولید‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫اجازه‬ ‫نویس‬ ‫برنامه‬
MapReduce‫نام‬ ‫به‬ ‫زبانی‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬Pig Latin‫طور‬ ‫به‬ .‫کند‬ ‫تولید‬
‫برای‬ ‫اسکریپتی‬ ‫توان‬ ‫می‬ ‫مثال‬Join.‫نوشت‬ ‫طریق‬ ‫این‬ ‫از‬ ‫ها‬ ‫داده‬ ‫کردن‬
‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig
‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫سازی‬‫پیاده‬ ‫مثال‬Pig
myinput = LOAD '/user/mytext.txt' USING TextLoader AS (line:CHARARRAY);
words = FOREACH myinput GENERATE
FLATTEN(TOKENIZE(REPLACE(LOWER(TRIM(line)),'[p{Punct},p{Cntrl}]','')));
grpd = GROUP words BY $0;
cntd = FOREACH grpd GENERATE $0, COUNT($1);
unmix = ORDER cntd BY $1 DESC, $0 ASC;
DUMP unmix;
‫با‬ ‫کار‬Pig‫عمل‬ ‫در‬
‫هدوپ‬ ‫آزمایشگاه‬
‫پاسخ‬ ‫و‬ ‫پرسش‬ ‫بخش‬
‫پایان‬

More Related Content

What's hot

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 - کاربردهای هدوپ در دنیای واقعیMobin Ranjbar
 
کلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آنکلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آنHamed Azizi
 
مقدمه ای بر داده کاوی
مقدمه ای بر داده کاویمقدمه ای بر داده کاوی
مقدمه ای بر داده کاویdata scientist
 
What is big data and how use that
What is big data and how use thatWhat is big data and how use that
What is big data and how use thatshohreh deldari
 
داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد Farzad Khandan
 
Bi and data mining with Oracle
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracleghanadbashi
 
سیستم فایل HDFS
سیستم فایل HDFSسیستم فایل HDFS
سیستم فایل HDFSnasser rezaei
 
داده کاوی
داده کاویداده کاوی
داده کاویTaha Mokfi
 
Opendata and business - داده های باز و کسب و کار
Opendata and business - داده های باز و کسب و کار Opendata and business - داده های باز و کسب و کار
Opendata and business - داده های باز و کسب و کار efazati
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sqlaminifar
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sqlaminifar
 
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
 فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data TechnologiesEhsan Asgarian
 
Data streaming & kafka
Data streaming & kafkaData streaming & kafka
Data streaming & kafkamohadesedashti
 
Big data related to BI
Big data related to BIBig data related to BI
Big data related to BIdata scientist
 
BI (Business Intelligence)
BI (Business Intelligence)BI (Business Intelligence)
BI (Business Intelligence)poorya davachi
 

What's hot (20)

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 - کاربردهای هدوپ در دنیای واقعی
 
کلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آنکلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آن
 
مقدمه ای بر داده کاوی
مقدمه ای بر داده کاویمقدمه ای بر داده کاوی
مقدمه ای بر داده کاوی
 
What is big data and how use that
What is big data and how use thatWhat is big data and how use that
What is big data and how use that
 
داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد
 
Bi and data mining with Oracle
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracle
 
سیستم فایل HDFS
سیستم فایل HDFSسیستم فایل HDFS
سیستم فایل HDFS
 
داده کاوی
داده کاویداده کاوی
داده کاوی
 
Big data ppt
Big data  pptBig data  ppt
Big data ppt
 
Opendata and business - داده های باز و کسب و کار
Opendata and business - داده های باز و کسب و کار Opendata and business - داده های باز و کسب و کار
Opendata and business - داده های باز و کسب و کار
 
(داده های زمینه ای) Contextual data
  (داده های زمینه ای) Contextual data  (داده های زمینه ای) Contextual data
(داده های زمینه ای) Contextual data
 
داده‌کاوی و زبان برنامه‌نویسی R
داده‌کاوی و زبان برنامه‌نویسی Rداده‌کاوی و زبان برنامه‌نویسی R
داده‌کاوی و زبان برنامه‌نویسی R
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 
آموزش Sql
آموزش Sqlآموزش Sql
آموزش Sql
 
Big data
Big dataBig data
Big data
 
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
 فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
 
Data streaming & kafka
Data streaming & kafkaData streaming & kafka
Data streaming & kafka
 
Big data related to BI
Big data related to BIBig data related to BI
Big data related to BI
 
BI (Business Intelligence)
BI (Business Intelligence)BI (Business Intelligence)
BI (Business Intelligence)
 
Ibm modeler
Ibm modelerIbm modeler
Ibm modeler
 

Viewers also liked

CloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-backCloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-backKrishna-Kumar
 
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persianاسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in PersianFarafekr Technology
 
شبکه های عصبی مصنوعی
شبکه های عصبی مصنوعیشبکه های عصبی مصنوعی
شبکه های عصبی مصنوعیdataminers.ir
 
Big Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBernard Marr
 
Introduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningLars Marius Garshol
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with HadoopPhilippe Julio
 

Viewers also liked (12)

CloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-backCloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-back
 
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persianاسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
 
Edms hamara 2017
Edms hamara 2017Edms hamara 2017
Edms hamara 2017
 
Webmining
WebminingWebmining
Webmining
 
Neural networks
Neural networksNeural networks
Neural networks
 
شبکه های عصبی مصنوعی
شبکه های عصبی مصنوعیشبکه های عصبی مصنوعی
شبکه های عصبی مصنوعی
 
Big Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should Know
 
Introduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine Learning
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
 
Big data ppt
Big  data pptBig  data ppt
Big data ppt
 
What is big data?
What is big data?What is big data?
What is big data?
 
What is Big Data?
What is Big Data?What is Big Data?
What is Big Data?
 

Similar to 1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران

معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی عباس بني اسدي مقدم
 
Ordbms پایگاه داده شی گرا-رابطه ای
Ordbms پایگاه داده شی گرا-رابطه ایOrdbms پایگاه داده شی گرا-رابطه ای
Ordbms پایگاه داده شی گرا-رابطه ایAli Moradi
 
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسراهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسSeied Mahdi Sadat Hosseini
 
Data cleansing
Data cleansingData cleansing
Data cleansingSiminZolfi
 
مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیMuhibullah Aman
 
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 AmanMuhibullah Aman
 
Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracleEhsan Hamzei
 
سیستم عامل جلد اول
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اولiuvmtech
 
Raid type, Raid تکنولوژی ,
Raid type, Raid  تکنولوژی , Raid type, Raid  تکنولوژی ,
Raid type, Raid تکنولوژی , abbas pirnazaraine
 
an introduction to Web 3.0 - Semantic Web
an introduction to Web 3.0 - Semantic Weban introduction to Web 3.0 - Semantic Web
an introduction to Web 3.0 - Semantic WebHossein sharafi
 

Similar to 1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران (20)

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
 
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های 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
 
سیستم عامل جلد اول
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اول
 
Raid type, Raid تکنولوژی ,
Raid type, Raid  تکنولوژی , Raid type, Raid  تکنولوژی ,
Raid type, Raid تکنولوژی ,
 
an introduction to Web 3.0 - Semantic Web
an introduction to Web 3.0 - Semantic Weban introduction to Web 3.0 - Semantic Web
an introduction to Web 3.0 - Semantic Web
 
IranOUG_Oracle_Multitenant
IranOUG_Oracle_MultitenantIranOUG_Oracle_Multitenant
IranOUG_Oracle_Multitenant
 

1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران

  • 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‫ها‬ ‫داده‬ ‫بازیابی‬ ‫و‬ ‫ذخیره‬ – ‫پایتون‬ ‫در‬ ‫اسپارک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫مثال‬
  • 70. ‫عمل‬ ‫در‬ ‫اسپارک‬ ‫آپاچی‬ ‫با‬ ‫کار‬
  • 72. ‫داده‬ ‫انباره‬Hive ‫اولیه‬ ‫تعریف‬ ‫داده‬ ‫انباره‬Hive‫قابلیت‬ ‫ایجاد‬ ‫برای‬SQL‫ساختارمند‬ ‫های‬ ‫داده‬ ‫برروی‬ ‫در‬ ‫شده‬ ‫ذخیره‬HDFS‫تر‬ ‫ساده‬ ‫بیان‬ ‫به‬ .‫آمد‬ ‫بوجود‬Hive‫برای‬ ‫ابزاری‬ ‫دستورات‬ ‫تبدیل‬SQL‫عملیات‬ ‫به‬MapReduce.‫باشد‬ ‫می‬
  • 73. ‫داده‬ ‫انباره‬Hive ‫مفهوم‬Metastore ‫منبع‬Metastore‫های‬ ‫ابرداده‬ ‫برای‬ ‫سازی‬ ‫ذخیره‬ ‫فضای‬Hive.‫باشد‬ ‫می‬ Metastore‫پیش‬ ‫طور‬ ‫کوچک)به‬ ‫ای‬ ‫رابطه‬ ‫دیتابیس‬ ‫یک‬ ‫خود‬ ‫درون‬ ‫در‬ ‫فرض‬Apache Derby.‫شود‬ ‫می‬ ‫ذخیره‬ ‫آن‬ ‫در‬ ‫مربوطه‬ ‫های‬ ‫داده‬ ‫که‬ ‫دارد‬ (
  • 76. ‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig ‫اولیه‬ ‫تعریف‬ ‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig‫انتزاع‬ ‫از‬ ‫سطحی‬MapReduce‫به‬ ‫که‬ ‫است‬ ‫طریق‬ ‫از‬ ‫داده‬ ‫پردازش‬ ‫های‬ ‫چرخه‬ ‫تولید‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫اجازه‬ ‫نویس‬ ‫برنامه‬ MapReduce‫نام‬ ‫به‬ ‫زبانی‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬Pig Latin‫طور‬ ‫به‬ .‫کند‬ ‫تولید‬ ‫برای‬ ‫اسکریپتی‬ ‫توان‬ ‫می‬ ‫مثال‬Join.‫نوشت‬ ‫طریق‬ ‫این‬ ‫از‬ ‫ها‬ ‫داده‬ ‫کردن‬
  • 77. ‫نویسی‬ ‫اسکریپت‬ ‫زبان‬Pig ‫از‬ ‫استفاده‬ ‫با‬ ‫کلمات‬ ‫تعداد‬ ‫شمارش‬ ‫سازی‬‫پیاده‬ ‫مثال‬Pig myinput = LOAD '/user/mytext.txt' USING TextLoader AS (line:CHARARRAY); words = FOREACH myinput GENERATE FLATTEN(TOKENIZE(REPLACE(LOWER(TRIM(line)),'[p{Punct},p{Cntrl}]',''))); grpd = GROUP words BY $0; cntd = FOREACH grpd GENERATE $0, COUNT($1); unmix = ORDER cntd BY $1 DESC, $0 ASC; DUMP unmix;