SlideShare une entreprise Scribd logo
1  sur  70
1
GV: TS. Hồ Bảo Quốc
Nhóm HV: Đinh Thị Lương 1011036
Đoàn Cao Nghĩa 1011043
Hồng Xuân Viên 1011067
2
Nội dung
 Giới thiệu
• Nhu cầu thực tế
• Hadoop là gì?
• Lịch sử phát triển
 Các thành phần của Hadoop
• Hadoop Common, HDFS, MapReduce
3
Nhu cầu thực tế
 Nhu cầu lưu trữ & xử lý dữ liệu hàng exabyte (1
exabyte = 1021 bytes)
• Đọc & truyền tải dữ liệu rất chậm
 Cần rất nhiều node lưu trữ với chi phí thấp
• Lỗi phần cứng ở node xảy ra hàng ngày
• Kích thước cluster không cố định
 Nhu cần cần có một hạ tầng chung
• Hiệu quả, tin cậy
4
 Kiến trúc 2 tầng
 Các node là các PC
 Chia làm nhiều rack (khoảng 40 PC/rack)
5
5
Hadoop là gì?
 Nền tảng ứng dụng hỗ trợ các ứng dụng phân
tán với dữ liệu rất lớn.
• Quy mô: hàng terabyte dữ liệu, hàng ngàn node.
 Thành phần:
• Lưu trữ: HDFS (Hadoop Distributed Filesystem)
• Xử lý: MapReduce
Hỗ trợ mô hình lập trình Map/Reduce
6
7
Lịch sử phát triển
 2002-2004: Doug Cutting giới thiệu Nutch
 12/2004 – công bố bài báo về GFS & MapReduce
 05/2005 – Nutch sử dụng MapReduce & DFS
 02/2006 – Trở thành subproject của Lucene
 04/2007 – Yahoo chạy 1000-node cluster
 01/2008 – trở thành dự án cao cấp của Apache
 07/2008 – Yahoo thử nghiệm 4000 node cluster
8
Hadoop Common
 Tập hợp những tiện ích hỗ trợ cho các dự
án con của Hadoop
 Bao gồm: tiện ích truy cập hệ thống file,
RPC, …
9
Hadoop Distributed File System
 Hệ thống file phân tán?
 HDFS?
 Kiến trúc của HDFS
 Cách thức lưu trữ và sửa lỗi
10
Hệ thống file
Ứng dụng
Ổ cứng vật lý
Hệ thống file (NTFS)
11
Hệ thống file phân tán
Ứng dụng
Ổ cứng vật lý
Hệ thống file
Hệ thống file phân tán
Ổ cứng vật lý
Hệ thống file
Ổ cứng vật lý
Hệ thống file
12
Mục tiêu của HDFS
 Lưu trữ file rất lớn (hàng terabyte)
 Truy cập dữ liệu theo dòng
 Mô hình liên kết dữ liệu đơn giản
• Ghi 1 lần, đọc nhiều lần
 Di chuyển quá trình xử lý thay vì dữ liệu
 Sử dụng phần cứng phổ thông, đa dạng
 Tự động phát hiện lỗi, phục hồi dữ liệu rất nhanh
13
Điểm yếu của HDFS
 Ứng dụng cần truy cập với độ trễ cao
• HDFS tối ưu quá trình truy cập file rất lớn
 Không thể lưu quá nhiều file trên 1 cluster
• NameNode lưu trên bộ nhớ -> cần nhiều bộ nhớ
 Không hỗ trợ nhiều bộ ghi, sửa dữ liệu bất kỳ
14
Kiến trúc HDFS
15
Kiến trúc HDFS (t.t)
 Các khái niệm
• Block: đơn vị lưu trữ dữ liệu nhỏ nhất
Hadoop dùng mặc định 64MB/block
1 file chia làm nhiều block
Các block chứa ở bất kỳ node nào trong cluster
• NameNode
Quản lý thông tin của tất cả các file trong cluster
• DataNode
Quản lý các block dữ liệu
16
17
NameNode
 Thành phần trọng yếu của HDFS
 Quản lý và thực thi các thao tác liên quan
đến tên file
• Đóng, mở, đổi tên
 Quản lý vị trí của các block
18
DataNode
 Quản lý các block
 Thực hiện thao tác trên dữ liệu
• Thêm, xóa, nhận biết block
• Thực hiện các yêu cầu xử lý dữ liệu
19
Các thức lưu trữ & phát hiện lỗi
 Bản sao dữ liệu:
• Mỗi file có nhiều bản sao  nhiều bản sao của block
 NameNode quyết định việc tạo bản sao
• Nhận dữ liệu Heartbeat & Blockreport từ DataNode
 Heartbeat: tình trạng chức năng của DataNode đó
 Blockreport: danh sách các block
 Thiết lập chính sách lưu trữ của các bản sao
• Cơ chế xác định block đó thuộc node nào
20
21
Chính sách lưu trữ của các bản sao block
 Cực kỳ quan trọng
 Quyết định tính ổn định, an toàn, và khả năng vận hành
của hệ thống
 Cần nhiều thời gian và kinh nghiệm
 Quan tâm đến kiến trúc vật lý: rack, bandwith
 Chính sách thông thường (không tối ưu)
• Chia block làm 3 bản sao
• Lưu ở node trong rack nội bộ, 2 block ở 2 node khác nhau trong
rack khác (remote rack)
22
Độ bền vững của HDFS
 Mục tiêu chính: đảm bảo dữ liệu chính xác
ngay cả khi lỗi hệ thống xảy ra
 3 loại lỗi chính:
• Lỗi ở NameNode
• Lỗi ở DataNode
• Sự cản trở của mạng máy tính
23
Độ bền vững của HDFS (t.t)
 DataNode gửi định kỳ Heartbeat lên NameNode
• Xác định node bị lỗi nếu NameNode không nhận
được Heartbeat.
• Đưa DataNode khỏi liên kết & cố gắng tạo bản sao
khác
 Tái cân bằng cluster
• Chuyển các block sang DataNode khác có khoảng
trống dưới đính mức qui định
24
Độ bền vững của HDFS (t.t)
 Lỗi ở NameNode
• Có thể làm hệ thống HDFS vô dụng
• Tạo các bản copy của FsImage và EditLog
• Khi NameNode restart, hệ thống sẽ lấy bản
sao gần nhất.
25
Cơ chế hoạt động
 Đọc dữ liệu:
• Chương trình client yêu cầu đọc dữ liệu từ
NameNode
• NameNode trả về vị trí các block của dữ liệu
• Chương trình trực tiếp yêu cầu dữ liệu tại các
node.
26
Cơ chế hoạt động (t.t)
27
28
Cơ chế hoạt động (t.t)
 Ghi dữ liệu:
• Ghi theo dạng đường ống (pipeline)
• Chương trình yêu cầu thao tác ghi ở NameNode
• NameNode kiểm tra quyền ghi và đảm bảo file không
tồn tại
• Các bản sao của block tạo thành đường ống để dữ
liệu tuần tự được ghi vào
29
Cơ chế hoạt động (t.t)
30
31
Map Reduce
 Tại sao cần Map Reduce ?
 Map Reduce là gì ?
 Mô hình Map Reduce
 Thực thi
 Hadoop Map Reduce
 Demo
32
Tại sao cần Map Reduce ?
 Xử lý dữ liệu với quy mô lớn
• Muốn xử dụng 1000 CPU
 Mong muốn một mô hình quản lý đơn giản
 Kiến trúc Map Reduce
• Quản lý tiến trình song song và phân tán
• Quản lý, sắp xếp lịch trình truy xuất I/O
• Theo dõi trạng thái dữ liệu
• Quản lý số lượng lớn dữ liệu có quan hệ phụ thuộc nhau
• Xử lý lỗi
• Trừu tượng đối với các lập trình viên ….
33
Map Reduce là gì ?
 Mô hình lập trình
• MapReduce được xây dựng từ mô hình lập trình hàm và lập trình song
song
 Hệ thống tính toán phân tán
• Tăng tốc độ thực thi xử lý dữ liệu
 Giải quyết được nhiều bài toán
 Ẩn các chi tiết cài đặt, quản lý
• Quản lý lỗi
• Gom nhóm và sắp xếp
• Lập lịch
• ….
34
Map Reduce là gì ?
 Cách tiếp cận : chia để trị
• Chia nhỏ vấn đề lớn thành các vấn đề nhỏ
• Xử lý song song từng việc nhỏ
• Tổng hợp kết quả
 Đọc dữ liệu lớn
 Rút trích thông tin cần thiết từ từng phần tử ( Map )
 Trộn và sắp xếp các kết quả trung gian
 Tổng hợp các kết quả trung gian ( Reduce )
 Phát sinh kết quả cuối cùng
35
Map Reduce là gì ?
36
Mô hình Map Reduce
 Trải qua hai quá trình Map và Reduce
 Map Reduce định nghĩa dữ liệu dưới dạng cặp
<key,value>
 Map <k1,v1> -> list(<k2,v2>)
 Reduce <k2,list(<v2>)> -> < k3, v3 >
 (input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2>
-> reduce -> <k3, v3> (output)
37
Mô hình Map Reduce
 Hàm Map
• Mỗi phần tử của dữ liệu đầu vào sẽ được
truyền cho hàm Map dưới dạng cặp
<key,value>
• Hàm Map xuất ra một hoặc nhiều cặp
<key,value>
38
Mô hình Map Reduce
 Sau quá trình Map, các giá trị trung gian được
tập hợp thành các danh sách theo từng khóa
 Hàm Reduce
• Kết hợp, xử lý, biến đổi các value
• Đầu ra là một cặp <key,value> đã được xử lý
39
Ví dụ word count
40
Ví dụ word count (tt)
 Mapper
• Đầu vào : Một dòng của văn bản
• Đầu ra : key : từ, value : 1
 Reducer
• Đầu vào : key : từ, values : tập hợp các giá trị
đếm được của mỗi từ
• Đầu ra : key : từ, value : tổng
41
Tính toán song song
 Hàm Map chạy song song tạo ra các giá trị trung
gian khác nhau từ các tập dữ liệu khác nhau
 Hàm Reduce cũng chạy song song, mỗi reducer
xử lý một tập khóa khác nhau
 Tất cả các giá trị được xử lý độc lập
 Bottleneck: Giai đoạn Reduce chỉ bắt đầu khi
giai đoạn Map kết thúc
42
Thực thi MR
43
Thực thi ( bước 1)
 Chương trình (user program), thông qua
thư viện MapReduce phân mảnh dữ liệu
đầu vào
User
ProgramInput
Data
Shard 0
Shard 1
Shard 2
Shard 3
Shard 4
Shard 5
Shard 6
44
Thực thi ( bước 2)
• Map Reduce sao chép chương trình này vào
các máy cluster ( master và các worker )
User
Program
Master
Workers
Workers
Workers
Workers
Workers
45
Thực thi ( bước 3)
 Master phân phối M tác vụ Map và R tác
vụ Reduce vào các worker rảnh rỗi
 Master phân phối các tác vụ dựa trên vị trí
của dữ liệu
Master
Idle
Worker
Message(Do_map_task)
46
Thực thi ( bước 4)
 Mỗi map-task worker đọc dữ liệu từ phân
vùng dữ liệu được gán cho nó và xuất ra
những cặp <key,value> trung gian
• Dữ liệu này được ghi tạm trên RAM
Map
workerShard 0 Key/value pairs
47
Thực thi ( bước 5)
 Mỗi worker phân chia dữ liệu trung gian
thành R vùng, lưu xuống đĩa, xóa dữ liệu
trên bộ đệm và thông báo cho Master
Master
Map
worker
Disk locations
Local
Storage
48
Thực thi ( bước 6)
 Master gán các dữ liệu trung gian và chỉ ra
vị trí của dữ liệu cho các reduce-task
Master
Reduce
worker
Disk locations
remote
Storage
49
Thực thi ( bước 7)
 Mỗi reduce-task worker sắp xếp các key,
gọi hàm reduce và xuất kết quả đầu ra
Reduce
worker
Sorts data Partition
Output file
50
Thực thi ( bước 8)
 Master kích hoạt (wakes up) chương trình
của người dùng thông báo kết quả hoàn
thành
 Dữ liệu đầu ra được lưu trong R tập tin
wakeup User
Program
Master
Output
files
51
Hadoop - Map Reduce
 Là một framework
 Sử dụng HDFS
 Kiến trúc master/slave
Master Slave
DFS Namenode Datanote
MapReduce Jobtracker Tasktracker
52
Hadoop - Map Reduce
 Client gửi MapReduce Job
 JobTracker điều phối việc thực thi Job
 TaskTracker thực thi các task đã được chia ra
53
Hadoop - Map Reduce
54
Job Submission
 Yêu cầu ID cho job mới (1 )
 Kiểm tra các thư mục đầu vào và đầu ra
 Chia tách dữ liệu đầu vào
 Chép các tài nguyên bao gồi chương trình (Jar), các tập
tin cấu hình, các mảnh dữ liệu đầu vào filesystem của
jobtracker (3)
 Thông báo với jobtracker job sẵn sàng để thực thi (4)
55
Khởi tạo Job
 Thêm job vào hàng đợi & khơi tạo các tài
nguyên (5)
 Tạo danh sách các tác vụ ( task ) (6)
56
Phân phối các tác vụ
 TaskTracker định kỳ thông báo sẵn sàng
nhận các tác vụ mới (7)
 JobTracker giao tác vụ cố định cho
TaskTracker ( ví dụ 1 TaskTracker chạy
đồng thời 2 map-task và 2 reduce-task)
57
Thực thi tác vụ
 TaskTracker Chép chương trình thực thi
(Jar File) và các dữ liệu cần thiết từ hệ
thống chia sẻ file
 Tạo tiến trình TaskRunner để thực thi tác
vụ
58
Cập nhật trạng thái
 Cập nhật trạng thái trong quá trìng thực thi
• Tác vụ xử lý được bao nhiêu dữ liệu đầu vào ?
• Tác vụ hoàn thành thành công ?
• Tác vụ lỗi ?
 Task process gửi báo cáo 3s một lần cho TaskTracker
 TaskTracker gửi báo cáo 5s một lần cho JobTracker
 JobTracker tổng hợp các báo cáo, gửi lại cho JobClient
mỗi giây một lần
59
Cập nhật trạng thái
60
Kết thúc Job
 Khi JobTracker nhận được tín hiệu kết thúc của
tác vụ cuối cùng
 JobTracker gủi tín hiệu success cho JobClient
 JobClient thông báo cho chương trình của
người dùng
 JobTracker thu gom rác, hủy các kết quả trung
gian
61
Khả năng chịu lỗi
 Master phát hiện các lỗi
 Lỗi tác vụ (Task Failure)
• Văng lỗi ngoại lệ, Bị giết bởi VJM, Treo
• JobTracker giao cho TaskTracker khác xử lý trong
một giới hạn nhất định
• Hạn chế giao tác vụ mới cho TaskTracker đã xử lý
tác vụ bị lỗi
62
Khả năng chịu lỗi
 Lỗi TaskTracker
• Crashing, Chạy chậm, không gửi báo cáo đúng hạn
cho JobTracker
• JobTracker loại bỏ TaskTracker ra khỏi bảng lịch biểu
tác vụ ( schedule tasks ) và thêm vào blacklist
• JobTracker lập lịch lại để chạy các tác vụ đã trao cho
TaskTracer bị lỗi
63
Khả năng chịu lỗi
 Lỗi Jobtracker
• Nghiêm trọng
• Chưa có hướng giải quyết
64
Tối ưu hóa
 Reduce chỉ bắt đầu khi toàn bộ Map kết
thúc
• Đĩa trên một node truy xuất chậm có thể ảnh
hưởng tới toàn bộ quá trình
 Băng thông của mạng
65
Tối ưu hóa
 Đưa ra hàm combiner
• Có thể chạy trên cùng máy với các mapper
• Chạy độc lập với các mapper khác
• Mini Reducer, làm giảm đầu ra của các giai
đoạn Map. Tiết kiệm băng thông
66
Ứng dụng
 Sắp xếp dữ liệu phân tán
 Phân tích thống kê
 Web Ranking
 Dịch máy
 Indexing
 ...
67
Tổng kết
 Là mô hình đơn giản để xử lý lượng dữ
liệu lớn trên mô hình phân tán
 Tập trung vào vấn đề chính cần xử lý
68
Demo Word Count (1)
 Map
public static class MapClass extends MapReduceBase
implements Mapper {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(WritableComparable key, Writable value,
OutputCollector output, Reporter reporter)
throws IOException {
String line = ((Text)value).toString();
StringTokenizer itr = new StringTokenizer(line);
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
output.collect(word, one);
}
}
}
69
Demo Word Count (2)
 Reduce
public static class Reduce extends MapReduceBase
implements Reducer {
public void reduce(WritableComparable key, Iterator
values, OutputCollector output, Reporter reporter)
throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += ((IntWritable) values.next()).get();
}
output.collect(key, new IntWritable(sum));
}
}
70
Demo Word Count (3)
 Main
public static void main(String[] args) throws IOException {
//checking goes here
JobConf conf = new JobConf();
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(MapClass.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);
conf.setInputPath(new Path(args[0]));
conf.setOutputPath(new Path(args[1]));
JobClient.runJob(conf);
}

Contenu connexe

Tendances

TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)Trieu Nguyen
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfMan_Ebook
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Tạ Thành Đạt
 
bao cao linux
bao cao linuxbao cao linux
bao cao linuxbinhnv186
 
Bài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinBài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinTran Tien
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềmLượng Võ Đại
 
Phân tích và thiết kế HTTT
Phân tích và thiết kế HTTTPhân tích và thiết kế HTTT
Phân tích và thiết kế HTTTLy hai
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155nataliej4
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
đề thi java ptit
đề thi java ptitđề thi java ptit
đề thi java ptitNguynMinh294
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...nataliej4
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchBIC
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngJojo Kim
 

Tendances (20)

TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
 
Data Warehouse
Data WarehouseData Warehouse
Data Warehouse
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Hadoop
HadoopHadoop
Hadoop
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game
 
bao cao linux
bao cao linuxbao cao linux
bao cao linux
 
Bài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinBài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tin
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềm
 
Phân tích và thiết kế HTTT
Phân tích và thiết kế HTTTPhân tích và thiết kế HTTT
Phân tích và thiết kế HTTT
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Đề tài: Hệ thống hỗ trợ đăng ký đề tài nghiên cứu khoa học trên web
Đề tài: Hệ thống hỗ trợ đăng ký đề tài nghiên cứu khoa học trên webĐề tài: Hệ thống hỗ trợ đăng ký đề tài nghiên cứu khoa học trên web
Đề tài: Hệ thống hỗ trợ đăng ký đề tài nghiên cứu khoa học trên web
 
đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
đề thi java ptit
đề thi java ptitđề thi java ptit
đề thi java ptit
 
Đề tài: Áp dụng kỹ thuật trong Big data vào lưu trữ dữ liệu, HOT
Đề tài: Áp dụng kỹ thuật trong Big data vào lưu trữ dữ liệu, HOTĐề tài: Áp dụng kỹ thuật trong Big data vào lưu trữ dữ liệu, HOT
Đề tài: Áp dụng kỹ thuật trong Big data vào lưu trữ dữ liệu, HOT
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
 
Map reduce hdfs
Map reduce hdfsMap reduce hdfs
Map reduce hdfs
 

Similaire à Hadoop trong triển khai Big Data

Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyPhamTuanKhiem
 
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 năm
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 nămSFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 năm
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 nămVu Hung Nguyen
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gìHLV
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gìHLV
 
Python Beginner Class day-11-12-13-database
Python Beginner Class day-11-12-13-databasePython Beginner Class day-11-12-13-database
Python Beginner Class day-11-12-13-databaseKhánh Nguyễn
 
Chuong 1 - Gioi Thieu.pptx
Chuong 1 - Gioi Thieu.pptxChuong 1 - Gioi Thieu.pptx
Chuong 1 - Gioi Thieu.pptxCngNguynPhmHuy
 
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTBài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTMasterCode.vn
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptHungHuyNguyen3
 
ITEC - Qua trinh phat trien he thong BigData
ITEC - Qua trinh phat trien he thong BigDataITEC - Qua trinh phat trien he thong BigData
ITEC - Qua trinh phat trien he thong BigDataIT Expert Club
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttvo nhan
 
HDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdfHDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdfHongVitc
 
Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Nhóc Nhóc
 
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao nataliej4
 

Similaire à Hadoop trong triển khai Big Data (20)

Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
 
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 năm
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 nămSFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 năm
SFD 2013 Hanoi: Phần mềm nguồn mở và dự tính khí hậu 100 năm
 
04 ado
04 ado04 ado
04 ado
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gì
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gì
 
Chuong2 nmth
Chuong2 nmthChuong2 nmth
Chuong2 nmth
 
Python Beginner Class day-11-12-13-database
Python Beginner Class day-11-12-13-databasePython Beginner Class day-11-12-13-database
Python Beginner Class day-11-12-13-database
 
Chuong 1 - Gioi Thieu.pptx
Chuong 1 - Gioi Thieu.pptxChuong 1 - Gioi Thieu.pptx
Chuong 1 - Gioi Thieu.pptx
 
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTBài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
Thiet ke csdl pt
Thiet ke csdl ptThiet ke csdl pt
Thiet ke csdl pt
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.ppt
 
--De cuong on tap hdh
 --De cuong on tap hdh --De cuong on tap hdh
--De cuong on tap hdh
 
Process and thread
Process and threadProcess and thread
Process and thread
 
ITEC - Qua trinh phat trien he thong BigData
ITEC - Qua trinh phat trien he thong BigDataITEC - Qua trinh phat trien he thong BigData
ITEC - Qua trinh phat trien he thong BigData
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_httt
 
HDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdfHDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdf
 
Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07
 
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao
Bài Giảng Môn Học Cơ Sở Dữ Liệu Nâng Cao
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 

Plus de Nguyễn Duy Nhân

Chính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmChính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmNguyễn Duy Nhân
 
Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Nguyễn Duy Nhân
 
Nghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNguyễn Duy Nhân
 
Cách lập kế hoạch Marketing
Cách lập kế hoạch MarketingCách lập kế hoạch Marketing
Cách lập kế hoạch MarketingNguyễn Duy Nhân
 
170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viếtNguyễn Duy Nhân
 
Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Nguyễn Duy Nhân
 
Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Nguyễn Duy Nhân
 
Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Nguyễn Duy Nhân
 
Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Nguyễn Duy Nhân
 
Khác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingKhác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingNguyễn Duy Nhân
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học LinuxNguyễn Duy Nhân
 
Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Nguyễn Duy Nhân
 
Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Nguyễn Duy Nhân
 
Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Nguyễn Duy Nhân
 
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìSESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìNguyễn Duy Nhân
 
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàSEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàNguyễn Duy Nhân
 
Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Nguyễn Duy Nhân
 

Plus de Nguyễn Duy Nhân (20)

Chính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmChính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩm
 
Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017
 
Nghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt Nam
 
Cách lập kế hoạch Marketing
Cách lập kế hoạch MarketingCách lập kế hoạch Marketing
Cách lập kế hoạch Marketing
 
170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết
 
Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015
 
Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015
 
Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014
 
Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014
 
Khác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingKhác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook Marketing
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học Linux
 
Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2
 
Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1
 
Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013
 
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìSESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
 
Tài liệu SEO LITADO
Tài liệu SEO LITADOTài liệu SEO LITADO
Tài liệu SEO LITADO
 
How to web responsive
How to web responsiveHow to web responsive
How to web responsive
 
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàSEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
 
Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)
 
Toàn cảnh TMĐT 2012
Toàn cảnh TMĐT 2012Toàn cảnh TMĐT 2012
Toàn cảnh TMĐT 2012
 

Hadoop trong triển khai Big Data

  • 1. 1 GV: TS. Hồ Bảo Quốc Nhóm HV: Đinh Thị Lương 1011036 Đoàn Cao Nghĩa 1011043 Hồng Xuân Viên 1011067
  • 2. 2 Nội dung  Giới thiệu • Nhu cầu thực tế • Hadoop là gì? • Lịch sử phát triển  Các thành phần của Hadoop • Hadoop Common, HDFS, MapReduce
  • 3. 3 Nhu cầu thực tế  Nhu cầu lưu trữ & xử lý dữ liệu hàng exabyte (1 exabyte = 1021 bytes) • Đọc & truyền tải dữ liệu rất chậm  Cần rất nhiều node lưu trữ với chi phí thấp • Lỗi phần cứng ở node xảy ra hàng ngày • Kích thước cluster không cố định  Nhu cần cần có một hạ tầng chung • Hiệu quả, tin cậy
  • 4. 4  Kiến trúc 2 tầng  Các node là các PC  Chia làm nhiều rack (khoảng 40 PC/rack)
  • 5. 5 5 Hadoop là gì?  Nền tảng ứng dụng hỗ trợ các ứng dụng phân tán với dữ liệu rất lớn. • Quy mô: hàng terabyte dữ liệu, hàng ngàn node.  Thành phần: • Lưu trữ: HDFS (Hadoop Distributed Filesystem) • Xử lý: MapReduce Hỗ trợ mô hình lập trình Map/Reduce
  • 6. 6
  • 7. 7 Lịch sử phát triển  2002-2004: Doug Cutting giới thiệu Nutch  12/2004 – công bố bài báo về GFS & MapReduce  05/2005 – Nutch sử dụng MapReduce & DFS  02/2006 – Trở thành subproject của Lucene  04/2007 – Yahoo chạy 1000-node cluster  01/2008 – trở thành dự án cao cấp của Apache  07/2008 – Yahoo thử nghiệm 4000 node cluster
  • 8. 8 Hadoop Common  Tập hợp những tiện ích hỗ trợ cho các dự án con của Hadoop  Bao gồm: tiện ích truy cập hệ thống file, RPC, …
  • 9. 9 Hadoop Distributed File System  Hệ thống file phân tán?  HDFS?  Kiến trúc của HDFS  Cách thức lưu trữ và sửa lỗi
  • 10. 10 Hệ thống file Ứng dụng Ổ cứng vật lý Hệ thống file (NTFS)
  • 11. 11 Hệ thống file phân tán Ứng dụng Ổ cứng vật lý Hệ thống file Hệ thống file phân tán Ổ cứng vật lý Hệ thống file Ổ cứng vật lý Hệ thống file
  • 12. 12 Mục tiêu của HDFS  Lưu trữ file rất lớn (hàng terabyte)  Truy cập dữ liệu theo dòng  Mô hình liên kết dữ liệu đơn giản • Ghi 1 lần, đọc nhiều lần  Di chuyển quá trình xử lý thay vì dữ liệu  Sử dụng phần cứng phổ thông, đa dạng  Tự động phát hiện lỗi, phục hồi dữ liệu rất nhanh
  • 13. 13 Điểm yếu của HDFS  Ứng dụng cần truy cập với độ trễ cao • HDFS tối ưu quá trình truy cập file rất lớn  Không thể lưu quá nhiều file trên 1 cluster • NameNode lưu trên bộ nhớ -> cần nhiều bộ nhớ  Không hỗ trợ nhiều bộ ghi, sửa dữ liệu bất kỳ
  • 15. 15 Kiến trúc HDFS (t.t)  Các khái niệm • Block: đơn vị lưu trữ dữ liệu nhỏ nhất Hadoop dùng mặc định 64MB/block 1 file chia làm nhiều block Các block chứa ở bất kỳ node nào trong cluster • NameNode Quản lý thông tin của tất cả các file trong cluster • DataNode Quản lý các block dữ liệu
  • 16. 16
  • 17. 17 NameNode  Thành phần trọng yếu của HDFS  Quản lý và thực thi các thao tác liên quan đến tên file • Đóng, mở, đổi tên  Quản lý vị trí của các block
  • 18. 18 DataNode  Quản lý các block  Thực hiện thao tác trên dữ liệu • Thêm, xóa, nhận biết block • Thực hiện các yêu cầu xử lý dữ liệu
  • 19. 19 Các thức lưu trữ & phát hiện lỗi  Bản sao dữ liệu: • Mỗi file có nhiều bản sao  nhiều bản sao của block  NameNode quyết định việc tạo bản sao • Nhận dữ liệu Heartbeat & Blockreport từ DataNode  Heartbeat: tình trạng chức năng của DataNode đó  Blockreport: danh sách các block  Thiết lập chính sách lưu trữ của các bản sao • Cơ chế xác định block đó thuộc node nào
  • 20. 20
  • 21. 21 Chính sách lưu trữ của các bản sao block  Cực kỳ quan trọng  Quyết định tính ổn định, an toàn, và khả năng vận hành của hệ thống  Cần nhiều thời gian và kinh nghiệm  Quan tâm đến kiến trúc vật lý: rack, bandwith  Chính sách thông thường (không tối ưu) • Chia block làm 3 bản sao • Lưu ở node trong rack nội bộ, 2 block ở 2 node khác nhau trong rack khác (remote rack)
  • 22. 22 Độ bền vững của HDFS  Mục tiêu chính: đảm bảo dữ liệu chính xác ngay cả khi lỗi hệ thống xảy ra  3 loại lỗi chính: • Lỗi ở NameNode • Lỗi ở DataNode • Sự cản trở của mạng máy tính
  • 23. 23 Độ bền vững của HDFS (t.t)  DataNode gửi định kỳ Heartbeat lên NameNode • Xác định node bị lỗi nếu NameNode không nhận được Heartbeat. • Đưa DataNode khỏi liên kết & cố gắng tạo bản sao khác  Tái cân bằng cluster • Chuyển các block sang DataNode khác có khoảng trống dưới đính mức qui định
  • 24. 24 Độ bền vững của HDFS (t.t)  Lỗi ở NameNode • Có thể làm hệ thống HDFS vô dụng • Tạo các bản copy của FsImage và EditLog • Khi NameNode restart, hệ thống sẽ lấy bản sao gần nhất.
  • 25. 25 Cơ chế hoạt động  Đọc dữ liệu: • Chương trình client yêu cầu đọc dữ liệu từ NameNode • NameNode trả về vị trí các block của dữ liệu • Chương trình trực tiếp yêu cầu dữ liệu tại các node.
  • 26. 26 Cơ chế hoạt động (t.t)
  • 27. 27
  • 28. 28 Cơ chế hoạt động (t.t)  Ghi dữ liệu: • Ghi theo dạng đường ống (pipeline) • Chương trình yêu cầu thao tác ghi ở NameNode • NameNode kiểm tra quyền ghi và đảm bảo file không tồn tại • Các bản sao của block tạo thành đường ống để dữ liệu tuần tự được ghi vào
  • 29. 29 Cơ chế hoạt động (t.t)
  • 30. 30
  • 31. 31 Map Reduce  Tại sao cần Map Reduce ?  Map Reduce là gì ?  Mô hình Map Reduce  Thực thi  Hadoop Map Reduce  Demo
  • 32. 32 Tại sao cần Map Reduce ?  Xử lý dữ liệu với quy mô lớn • Muốn xử dụng 1000 CPU  Mong muốn một mô hình quản lý đơn giản  Kiến trúc Map Reduce • Quản lý tiến trình song song và phân tán • Quản lý, sắp xếp lịch trình truy xuất I/O • Theo dõi trạng thái dữ liệu • Quản lý số lượng lớn dữ liệu có quan hệ phụ thuộc nhau • Xử lý lỗi • Trừu tượng đối với các lập trình viên ….
  • 33. 33 Map Reduce là gì ?  Mô hình lập trình • MapReduce được xây dựng từ mô hình lập trình hàm và lập trình song song  Hệ thống tính toán phân tán • Tăng tốc độ thực thi xử lý dữ liệu  Giải quyết được nhiều bài toán  Ẩn các chi tiết cài đặt, quản lý • Quản lý lỗi • Gom nhóm và sắp xếp • Lập lịch • ….
  • 34. 34 Map Reduce là gì ?  Cách tiếp cận : chia để trị • Chia nhỏ vấn đề lớn thành các vấn đề nhỏ • Xử lý song song từng việc nhỏ • Tổng hợp kết quả  Đọc dữ liệu lớn  Rút trích thông tin cần thiết từ từng phần tử ( Map )  Trộn và sắp xếp các kết quả trung gian  Tổng hợp các kết quả trung gian ( Reduce )  Phát sinh kết quả cuối cùng
  • 36. 36 Mô hình Map Reduce  Trải qua hai quá trình Map và Reduce  Map Reduce định nghĩa dữ liệu dưới dạng cặp <key,value>  Map <k1,v1> -> list(<k2,v2>)  Reduce <k2,list(<v2>)> -> < k3, v3 >  (input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)
  • 37. 37 Mô hình Map Reduce  Hàm Map • Mỗi phần tử của dữ liệu đầu vào sẽ được truyền cho hàm Map dưới dạng cặp <key,value> • Hàm Map xuất ra một hoặc nhiều cặp <key,value>
  • 38. 38 Mô hình Map Reduce  Sau quá trình Map, các giá trị trung gian được tập hợp thành các danh sách theo từng khóa  Hàm Reduce • Kết hợp, xử lý, biến đổi các value • Đầu ra là một cặp <key,value> đã được xử lý
  • 40. 40 Ví dụ word count (tt)  Mapper • Đầu vào : Một dòng của văn bản • Đầu ra : key : từ, value : 1  Reducer • Đầu vào : key : từ, values : tập hợp các giá trị đếm được của mỗi từ • Đầu ra : key : từ, value : tổng
  • 41. 41 Tính toán song song  Hàm Map chạy song song tạo ra các giá trị trung gian khác nhau từ các tập dữ liệu khác nhau  Hàm Reduce cũng chạy song song, mỗi reducer xử lý một tập khóa khác nhau  Tất cả các giá trị được xử lý độc lập  Bottleneck: Giai đoạn Reduce chỉ bắt đầu khi giai đoạn Map kết thúc
  • 43. 43 Thực thi ( bước 1)  Chương trình (user program), thông qua thư viện MapReduce phân mảnh dữ liệu đầu vào User ProgramInput Data Shard 0 Shard 1 Shard 2 Shard 3 Shard 4 Shard 5 Shard 6
  • 44. 44 Thực thi ( bước 2) • Map Reduce sao chép chương trình này vào các máy cluster ( master và các worker ) User Program Master Workers Workers Workers Workers Workers
  • 45. 45 Thực thi ( bước 3)  Master phân phối M tác vụ Map và R tác vụ Reduce vào các worker rảnh rỗi  Master phân phối các tác vụ dựa trên vị trí của dữ liệu Master Idle Worker Message(Do_map_task)
  • 46. 46 Thực thi ( bước 4)  Mỗi map-task worker đọc dữ liệu từ phân vùng dữ liệu được gán cho nó và xuất ra những cặp <key,value> trung gian • Dữ liệu này được ghi tạm trên RAM Map workerShard 0 Key/value pairs
  • 47. 47 Thực thi ( bước 5)  Mỗi worker phân chia dữ liệu trung gian thành R vùng, lưu xuống đĩa, xóa dữ liệu trên bộ đệm và thông báo cho Master Master Map worker Disk locations Local Storage
  • 48. 48 Thực thi ( bước 6)  Master gán các dữ liệu trung gian và chỉ ra vị trí của dữ liệu cho các reduce-task Master Reduce worker Disk locations remote Storage
  • 49. 49 Thực thi ( bước 7)  Mỗi reduce-task worker sắp xếp các key, gọi hàm reduce và xuất kết quả đầu ra Reduce worker Sorts data Partition Output file
  • 50. 50 Thực thi ( bước 8)  Master kích hoạt (wakes up) chương trình của người dùng thông báo kết quả hoàn thành  Dữ liệu đầu ra được lưu trong R tập tin wakeup User Program Master Output files
  • 51. 51 Hadoop - Map Reduce  Là một framework  Sử dụng HDFS  Kiến trúc master/slave Master Slave DFS Namenode Datanote MapReduce Jobtracker Tasktracker
  • 52. 52 Hadoop - Map Reduce  Client gửi MapReduce Job  JobTracker điều phối việc thực thi Job  TaskTracker thực thi các task đã được chia ra
  • 53. 53 Hadoop - Map Reduce
  • 54. 54 Job Submission  Yêu cầu ID cho job mới (1 )  Kiểm tra các thư mục đầu vào và đầu ra  Chia tách dữ liệu đầu vào  Chép các tài nguyên bao gồi chương trình (Jar), các tập tin cấu hình, các mảnh dữ liệu đầu vào filesystem của jobtracker (3)  Thông báo với jobtracker job sẵn sàng để thực thi (4)
  • 55. 55 Khởi tạo Job  Thêm job vào hàng đợi & khơi tạo các tài nguyên (5)  Tạo danh sách các tác vụ ( task ) (6)
  • 56. 56 Phân phối các tác vụ  TaskTracker định kỳ thông báo sẵn sàng nhận các tác vụ mới (7)  JobTracker giao tác vụ cố định cho TaskTracker ( ví dụ 1 TaskTracker chạy đồng thời 2 map-task và 2 reduce-task)
  • 57. 57 Thực thi tác vụ  TaskTracker Chép chương trình thực thi (Jar File) và các dữ liệu cần thiết từ hệ thống chia sẻ file  Tạo tiến trình TaskRunner để thực thi tác vụ
  • 58. 58 Cập nhật trạng thái  Cập nhật trạng thái trong quá trìng thực thi • Tác vụ xử lý được bao nhiêu dữ liệu đầu vào ? • Tác vụ hoàn thành thành công ? • Tác vụ lỗi ?  Task process gửi báo cáo 3s một lần cho TaskTracker  TaskTracker gửi báo cáo 5s một lần cho JobTracker  JobTracker tổng hợp các báo cáo, gửi lại cho JobClient mỗi giây một lần
  • 60. 60 Kết thúc Job  Khi JobTracker nhận được tín hiệu kết thúc của tác vụ cuối cùng  JobTracker gủi tín hiệu success cho JobClient  JobClient thông báo cho chương trình của người dùng  JobTracker thu gom rác, hủy các kết quả trung gian
  • 61. 61 Khả năng chịu lỗi  Master phát hiện các lỗi  Lỗi tác vụ (Task Failure) • Văng lỗi ngoại lệ, Bị giết bởi VJM, Treo • JobTracker giao cho TaskTracker khác xử lý trong một giới hạn nhất định • Hạn chế giao tác vụ mới cho TaskTracker đã xử lý tác vụ bị lỗi
  • 62. 62 Khả năng chịu lỗi  Lỗi TaskTracker • Crashing, Chạy chậm, không gửi báo cáo đúng hạn cho JobTracker • JobTracker loại bỏ TaskTracker ra khỏi bảng lịch biểu tác vụ ( schedule tasks ) và thêm vào blacklist • JobTracker lập lịch lại để chạy các tác vụ đã trao cho TaskTracer bị lỗi
  • 63. 63 Khả năng chịu lỗi  Lỗi Jobtracker • Nghiêm trọng • Chưa có hướng giải quyết
  • 64. 64 Tối ưu hóa  Reduce chỉ bắt đầu khi toàn bộ Map kết thúc • Đĩa trên một node truy xuất chậm có thể ảnh hưởng tới toàn bộ quá trình  Băng thông của mạng
  • 65. 65 Tối ưu hóa  Đưa ra hàm combiner • Có thể chạy trên cùng máy với các mapper • Chạy độc lập với các mapper khác • Mini Reducer, làm giảm đầu ra của các giai đoạn Map. Tiết kiệm băng thông
  • 66. 66 Ứng dụng  Sắp xếp dữ liệu phân tán  Phân tích thống kê  Web Ranking  Dịch máy  Indexing  ...
  • 67. 67 Tổng kết  Là mô hình đơn giản để xử lý lượng dữ liệu lớn trên mô hình phân tán  Tập trung vào vấn đề chính cần xử lý
  • 68. 68 Demo Word Count (1)  Map public static class MapClass extends MapReduceBase implements Mapper { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(WritableComparable key, Writable value, OutputCollector output, Reporter reporter) throws IOException { String line = ((Text)value).toString(); StringTokenizer itr = new StringTokenizer(line); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); output.collect(word, one); } } }
  • 69. 69 Demo Word Count (2)  Reduce public static class Reduce extends MapReduceBase implements Reducer { public void reduce(WritableComparable key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += ((IntWritable) values.next()).get(); } output.collect(key, new IntWritable(sum)); } }
  • 70. 70 Demo Word Count (3)  Main public static void main(String[] args) throws IOException { //checking goes here JobConf conf = new JobConf(); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(MapClass.class); conf.setCombinerClass(Reduce.class); conf.setReducerClass(Reduce.class); conf.setInputPath(new Path(args[0])); conf.setOutputPath(new Path(args[1])); JobClient.runJob(conf); }