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

Farafekr Technology
Farafekr TechnologyFarafekr Technology
‫عملی‬ ‫کارگاه‬
‫هدوپ‬ ‫آموزش‬
}
‫حمایت‬ ‫با‬
‫ایران‬ ‫اطلعات‬ ‫فناوری‬ ‫سازمان‬
‫ایران‬ ‫هدوپ‬ ‫مرجع‬
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‫عمل‬ ‫در‬
‫هدوپ‬ ‫آزمایشگاه‬
‫پاسخ‬ ‫و‬ ‫پرسش‬ ‫بخش‬
‫پایان‬
1 de 81

Recomendados

بیگ دیتا por
بیگ دیتابیگ دیتا
بیگ دیتاHamed Azizi
4.5K vistas27 diapositivas
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز por
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
511 vistas79 diapositivas
تشخیص انجمن در مقیاس کلان داده por
تشخیص انجمن در مقیاس کلان دادهتشخیص انجمن در مقیاس کلان داده
تشخیص انجمن در مقیاس کلان دادهNavid Sedighpour
962 vistas37 diapositivas
Big Data Processing in Cloud Computing Environments por
Big Data Processing in Cloud Computing EnvironmentsBig Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsFarzad Nozarian
4.6K vistas39 diapositivas
داده، dikw ، داده بزرگ و علم داده por
داده، dikw ، داده بزرگ و علم دادهداده، dikw ، داده بزرگ و علم داده
داده، dikw ، داده بزرگ و علم دادهfatemeh zatajam
403 vistas17 diapositivas
Big Data and select suitable tools por
Big Data and select suitable toolsBig Data and select suitable tools
Big Data and select suitable toolsMeghdad Hatami
4.1K vistas43 diapositivas

Más contenido relacionado

La actualidad más candente

Hadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعی por
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
11.9K vistas19 diapositivas
کلان داده کاربردها و چالش های آن por
کلان داده کاربردها و چالش های آنکلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آنHamed Azizi
10.9K vistas7 diapositivas
مقدمه ای بر داده کاوی por
مقدمه ای بر داده کاویمقدمه ای بر داده کاوی
مقدمه ای بر داده کاویdata scientist
2.2K vistas46 diapositivas
What is big data and how use that por
What is big data and how use thatWhat is big data and how use that
What is big data and how use thatshohreh deldari
423 vistas14 diapositivas
داده های عظیم چگونه دنیا را تغییر خواهند داد por
داده های عظیم چگونه دنیا را تغییر خواهند داد داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد Farzad Khandan
1.9K vistas85 diapositivas
Bi and data mining with Oracle por
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracleghanadbashi
227 vistas24 diapositivas

La actualidad más candente(20)

Hadoop Case Studies in the Real World in Persian - کاربردهای هدوپ در دنیای واقعی por Mobin Ranjbar
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 Ranjbar11.9K vistas
کلان داده کاربردها و چالش های آن por Hamed Azizi
کلان داده کاربردها و چالش های آنکلان داده کاربردها و چالش های آن
کلان داده کاربردها و چالش های آن
Hamed Azizi10.9K vistas
مقدمه ای بر داده کاوی por data scientist
مقدمه ای بر داده کاویمقدمه ای بر داده کاوی
مقدمه ای بر داده کاوی
data scientist2.2K vistas
What is big data and how use that por shohreh deldari
What is big data and how use thatWhat is big data and how use that
What is big data and how use that
shohreh deldari423 vistas
داده های عظیم چگونه دنیا را تغییر خواهند داد por Farzad Khandan
داده های عظیم چگونه دنیا را تغییر خواهند داد داده های عظیم چگونه دنیا را تغییر خواهند داد
داده های عظیم چگونه دنیا را تغییر خواهند داد
Farzad Khandan1.9K vistas
Bi and data mining with Oracle por ghanadbashi
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracle
ghanadbashi227 vistas
سیستم فایل HDFS por nasser rezaei
سیستم فایل HDFSسیستم فایل HDFS
سیستم فایل HDFS
nasser rezaei385 vistas
داده کاوی por Taha Mokfi
داده کاویداده کاوی
داده کاوی
Taha Mokfi4K vistas
Opendata and business - داده های باز و کسب و کار por efazati
Opendata and business - داده های باز و کسب و کار Opendata and business - داده های باز و کسب و کار
Opendata and business - داده های باز و کسب و کار
efazati147 vistas
آموزش Sql por aminifar
آموزش Sqlآموزش Sql
آموزش Sql
aminifar159 vistas
آموزش Sql por aminifar
آموزش Sqlآموزش Sql
آموزش Sql
aminifar164 vistas
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies por Ehsan Asgarian
 فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
فناوری‌های حوزه‌ی کلان داده - Introduction to Big Data Technologies
Ehsan Asgarian369 vistas

Destacado

CloudFoundry-summit-2015-a-look-back por
CloudFoundry-summit-2015-a-look-backCloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-backKrishna-Kumar
1.5K vistas30 diapositivas
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian por
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persianاسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in PersianFarafekr Technology
641 vistas16 diapositivas
Edms hamara 2017 por
Edms hamara 2017Edms hamara 2017
Edms hamara 2017danesh hamara
241 vistas9 diapositivas
Webmining por
WebminingWebmining
WebminingMohammadhiwa Abdekhoda
305 vistas19 diapositivas
Neural networks por
Neural networksNeural networks
Neural networksMeysam Asadi
529 vistas92 diapositivas
شبکه های عصبی مصنوعی por
شبکه های عصبی مصنوعیشبکه های عصبی مصنوعی
شبکه های عصبی مصنوعیdataminers.ir
12.7K vistas45 diapositivas

Destacado(12)

CloudFoundry-summit-2015-a-look-back por Krishna-Kumar
CloudFoundry-summit-2015-a-look-backCloudFoundry-summit-2015-a-look-back
CloudFoundry-summit-2015-a-look-back
Krishna-Kumar 1.5K vistas
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian por Farafekr Technology
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persianاسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
اسلاید وبینار آشنایی با اسپارک - Introduction to Apache Spark in Persian
Farafekr Technology641 vistas
شبکه های عصبی مصنوعی por dataminers.ir
شبکه های عصبی مصنوعیشبکه های عصبی مصنوعی
شبکه های عصبی مصنوعی
dataminers.ir12.7K vistas
Big Data - 25 Amazing Facts Everyone Should Know por Bernard Marr
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should Know
Bernard Marr487.1K vistas
Introduction to Big Data/Machine Learning por Lars Marius Garshol
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine Learning
Lars Marius Garshol306.6K vistas
Big Data Analytics with Hadoop por Philippe Julio
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
Philippe Julio441.9K vistas
What is big data? por David Wellman
What is big data?What is big data?
What is big data?
David Wellman184.4K vistas
What is Big Data? por Bernard Marr
What is Big Data?What is Big Data?
What is Big Data?
Bernard Marr585.3K vistas

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

Rbdmap ceph realease 0.2 por
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Yashar Esmaildokht
64 vistas17 diapositivas
rbdmap in ceph por
rbdmap in ceph rbdmap in ceph
rbdmap in ceph Yashar Esmaildokht
320 vistas15 diapositivas
Sql tuning por
Sql tuningSql tuning
Sql tuningmehrdadkarami3
6 vistas45 diapositivas
معرفي فايروال پايگاه داده por
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
411 vistas4 diapositivas
how enable ceph dashboard por
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboardYashar Esmaildokht
141 vistas16 diapositivas
Pg autoscaling in ceph por
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in cephYashar Esmaildokht
288 vistas19 diapositivas

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

معرفي فايروال پايگاه داده por Hamid Torkashvand
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
Hamid Torkashvand411 vistas
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی por عباس بني اسدي مقدم
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
Ordbms پایگاه داده شی گرا-رابطه ای por Ali Moradi
Ordbms پایگاه داده شی گرا-رابطه ایOrdbms پایگاه داده شی گرا-رابطه ای
Ordbms پایگاه داده شی گرا-رابطه ای
Ali Moradi2.5K vistas
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس por Seied Mahdi Sadat Hosseini
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکسراهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
راهنمای کامل راه اندازی الاستیک سرچ و استفاده آن در شرکت گارتکس
Data cleansing por SiminZolfi
Data cleansingData cleansing
Data cleansing
SiminZolfi90 vistas
Crisp dm.1.0 por ali ahmadi
Crisp dm.1.0Crisp dm.1.0
Crisp dm.1.0
ali ahmadi196 vistas
Cisco Exploration 2 In Persion-Muhibullah Aman por Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah Aman
Muhibullah Aman604 vistas
مسیردهی و پروتوکولهای مسیریابی por Muhibullah Aman
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابی
Muhibullah Aman716 vistas
Introduction to oracle por Ehsan Hamzei
Introduction to oracleIntroduction to oracle
Introduction to oracle
Ehsan Hamzei240 vistas
سیستم عامل جلد اول por iuvmtech
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اول
iuvmtech71 vistas
an introduction to Web 3.0 - Semantic Web por Hossein sharafi
an introduction to Web 3.0 - Semantic Weban introduction to Web 3.0 - Semantic Web
an introduction to Web 3.0 - Semantic Web
Hossein sharafi414 vistas

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;