Tính trong suốt (Transparency):
• Trong suốt truy cập
• Trong suốt vị trí
• Trong suốt khả năng thực thi
• Trong suốt phạm vi (scaling)
• Độc lập vị trí
Caching và caching location:
• Vấn đề là bảo đảm tính nhất
quan giữa cache và tập tin
chính: tiếp cận từ client hay từ
server
• Ví trí cache: trên đĩa (đáng tin
cậy) hay vùng nhớ (tốc độ
nhanh)
Truy cập đồng thời: việc thay đổi một
tập tin không nên bị cản trở bởi hoạt
động các client khác
Stateful và stateless:
• Stateful là server lưu
tất cả thông tin
request từ client
• Stateless là mỗi yêu
cầu client phải cung
cấp đầy đủ thông tin
cho server
Nhânbảntậptin: mỗitập tin
cóthể cónhiềubảnsaonằm
ởcácvịtrí khácnhau
• Tăngkhảnăngthực thi và
tính sẵnsàng.
• Tăngkhảnăngchịulỗi
5
Có khả năng
chịulỗi.
31 trang |
Chia sẻ: oanh_nt | Lượt xem: 3241 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Báo cáo Tổng quan hệ thống tập tin phân tán (DFS), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Distributed File System
GVHD: TS. Hồ Bảo Quốc
Nhóm học viên thực hiện:
• Dương Hữu Thành – 1212035
• Phạm Ngọc Vân Anh – 1212001
• Nguyễn Thanh Tòng – 1212039
LOGO
1
Nội dung
1 Tổng quan hệ thống tập tin phân tán
2 Google File System
3 Map reduce
4 Hadoop distributed file system
2.2
2
Nội dung
1 Tổng quan hệ thống tập tin phân tán
2 Google File System
33 Map reduce
4 Hadoop
3
Tổng quan hệ thống tập tin phân tán (DFS)
(1/2)
DFS là một mô hình phân lớp hệ thống tập
tin được phân tán trên nhiều máy.
DFS hổ trợ việc chia sẻ tập tin của các tập
tin thông qua môi trường mạng.
Client thao tác trên DFS giống như thao tác
trên hệ thống FS (hệ thống tập tin cục bộ).
Hệ thống tập tin cung cấp các dịch vụ cho
client truy cập các tập tin trên server: tạo,
đọc, ... tập tin.
4
Tổng quan hệ thống tập tin phân tán (DFS)
(2/2)
Hoạt động trên
Tính trong suốt (Transparency): nhiều hệ điều Đặt tên (naming):
• Trong suốt truy cập hành khác nhau. • Kết hợp tên local và host
• Trong suốt vị trí • Các thư mục từ xa gắn kết vào thư
• Trong suốt khả năng thực thi mục cục bộ
• Trong suốt phạm vi (scaling) • Cấu trúc tên toàn cục duy nhất của
• Độc lập vị trí hệ thống
Stateful và stateless: Caching và caching location:
• Stateful là server lưu • Vấn đề là bảo đảm tính nhất
tất cả thông tin quan giữa cache và tập tin
request từ client chính: tiếp cận từ client hay từ
• Stateless là mỗi yêu DFS server
cầu client phải cung • Ví trí cache: trên đĩa (đáng tin
cấp đầy đủ thông tin cậy) hay vùng nhớ (tốc độ
cho server nhanh)
Nhân bản tập tin: mỗi tập tin
có thể có nhiều bản sao nằm Truy cập đồng thời: việc thay đổi một
ở các vị trí khác nhau tập tin không nên bị cản trở bởi hoạt
• Tăng khả năng thực thi và động các client khác
tính sẵn sàng. Có khả năng
• Tăng khả năng chịu lỗi chịu lỗi. 5
Nội dung
1 Tổng quan hệ thống tập tin phân tán
2 Google File System
3 Map reduce
4 Hadoop
6
Nội dung
1 Tổng quan hệ thống tập tin phân tán
2 Google File System
33 Map reduce
4 Hadoop
7
Nội dung
1 Tổng quan hệ thống tập tin phân tán
2 Google File System
33 Map reduce
4 Hadoop distributed file system
8
Hadoop (1/3)
Hadoop Map Reduce
distributed file
system
• Hadoop là một dự án Apache, tất cả các thành phần tồn tại thông qua bản
quyền nguồn mở của Apache.
• Hadoop cung cấp một hệ thống tập tin phân tán và một framework để phân
tích và sự biến đổi của tập dữ liệu rất lớn sử dụng MapReduce.
• Đặc tính quan trọng của Hadoop là phân vùng dữ liệu và tính toán trên
nhiều (hàng ngàn) máy chủ, và thực thi tính toán ứng dụng song song.
9
Hadoop (2/3)
Tại sao chọn Hadoop?
• Cần xử lý tập dữ liệu khổng lồ trên các cluster
lớn của máy tính.
• Tốn chi phí xây dựng tính tin cậy trong mỗi
ứng dụng.
• Cần kiến trúc hạ tầng chung: hiệu quả, đáng
tín cậy, dễ dùng, nguồn mỡ, bản quyền
apache.
10
Ai đang
dùng
Hadoop?
HDFS – Tổng quan (1/2)
HDFS là hệ thống tập tin phân tán được
thiết kê để lưu trữ các tập tin rất lớn với
dòng truy cập dữ liệu chạy trên các cluster
của phần cứng.
12
HDFS – Tổng quan (2/2)
Namespace duy nhất cho toàn cluster.
Dữ liệu liên kết chặt chẻ.
• Mô hình truy cập 1 ghi, nhiều đọc.
Tập tin chia thành nhiều block.
• Mỗi block đươc sao chép trên nhiều
DataNode
Client thông minh
• Client có thể tìm vị trí các block
• Client có thể truy cập trực tiếp dữ liệu từ
DataNode
13
HDFS – Block (1/2)
Tập tin được chia thành nhiều phần nhỏ,
gọi là block để lưu trữ trong HDFS.
Các block của cùng tập tin có thể nằm trên
nhiều máy trong cluster.
14
HDFS – Block (2/2)
Sắp đặt các block (block placement):
• Bản sao đầu tiên nằm trên node ngẫu nhiên
của rack cục bộ.
• Bản sao thứ hai trên rack từ xa ngẫu nhiên.
• Bản sao thứ ba nằm trên cùng rack ngẫu
nhiên trên.
• Các bản sao khác có thể sắp đặt ngẫu nhiên.
Client sẽ đọc bản sao gần nhất.
15
HDFS – Kiến trúc (1/10)
NameNode (master):
• Quản lý namespace của hệ thống tập tin và
các truy cập dữ liệu của client.
Ánh xạ tên tập tin đến tập các block.
Ánh xạ các block đến DataNode chứa nó
• Quản lý cấu hình cluster.
• Máy sao chép các block.
16
HDFS – Kiến trúc (2/10)
NameNode meta-data:
• Toàn bộ meta-data được lưu trong bộ nhớ
chính.
• Các meta-data bao gồm:
Danh sách tập tin.
Danh sách các block của tập tin.
Danh sách các DataNode của block.
• Nhật ký giao tác: tháo tác tạo, xóa tập tin, ...
17
HDFS – Kiến trúc (3/10)
Image chứa dữ liệu của NameNode và
danh sách các block thuộc về mỗi tập tin.
18
HDFS – Kiến trúc (4/10)
NameNode cũng lưu trữ nhật ký sửa đổi
của image gọi là journal trong native file
system của các host cục bộ.
19
HDFS – Kiến trúc (5/10)
Mẫu cố định của image được lưu trữ trong system
file của local gọi là checkpoint.
20
HDFS – Kiến trúc (6/10)
CheckpointNode:
• Là NameNode trong HDFS, nhưng trách nhiệm
chính của nó là phục vụ các yêu cầu của client.
Nó có thể là một trong 2 vai trò là
CheckpointNode hay BackupNode, vai trò này
được quyết định ở giai đoạn startup.
• CheckpointNode định kỳ kết hợp checkpoint đã
tồn tại với journal để tạo journal mới và
checkpoint rỗng.
• CheckpointNode thường chạy trên máy chủ khác
NameNode.
21
HDFS – Kiến trúc (7/10)
BackupNode:
• BackupNode có khả năng tạo các checkpoint
định kỳ, nó duy trì trong bộ nhớ và cập nhật
image của không gian tên hệ thống tập tin
luôn luôn đồng bộ với trạng thái của
NameNode.
• Nếu NameNode gặp sự cố thì image của
BackupNode trong bộ nhớ và checkpoint trên
đĩa sẽ là hồ sơ trạng thái cuối cùng của
namespace.
• BackupNode có thể xem như NameNode chỉ
có thể đọc. 22
HDFS – Kiến trúc (8/10)
DataNode (slaves):
• Quản lý các yêu cầu input/output từ client.
• Xử lý các bản sao block, tạo và di chuyễn dữ
liệu được chỉ thị thực hiện bởi NameNode.
• Phục vụ việc lưu trữ các block dữ liệu.
• Định kỳ gửi report tất cả các block tồn tại cho
NameNode. (Block Report)
• Gửi định kỳ heartbeat tới namenode.
• Phục vụ yêu cầu đọc, ghi, thực hiện tạo block,
xóa và sao chép theo chỉ thị từ namenode.
23
HDFS – Kiến trúc (9/10)
DataNode – bắt tay (hand-shake):
• Trong suốt quá trình bắt đầu thì mỗi DataNode kết nối
với NameNode và thực hiện “bắt tay” (hand-shake).
• Mục đích để xác minh namespace ID và software
version của DataNode
24
HDFS – Kiến trúc (10/10)
DataNode – heartbeat: DataNode sẽ gửi
heartbeat tới NameNode để xác nhận rằng
DataNode đang hoạt động và bản sao
block là sẵn sàng.
25
HDFS – Các thao tác đọc ghi tập tin (1/4)
«Single writer, multi readers»
• Cùng một lúc có thể có nhiều người đọc,
nhưng chỉ có một người duy nhất được phép
ghi.
26
HDFS – Các thao tác đọc ghi tập tin (2/4)
Đọc tập tin:
• Khi một ứng dụng muốn
đọc tập tin, HDFS client
phải hỏi NameNode để
có danh sách các
DataNode giữ bản sao
các block của tập tin.
Danh sách này được sắp
xếp bởi khoảng cách kiến
trúc mạng từ client. Client
sẽ liên hệ trực tiếp với
DataNode và yêu cầu
chuyển block mong
muốn.
27
HDFS – Các thao tác đọc ghi tập tin (3/4)
Ghi tập tin:
• Khi client ghi dữ liệu, đầu tiên
nó phải hỏi NameNode để
chọn DataNode để nạp bản
sao block đầu tiên của tập
tin. Client tổ chức một ống
(pipeline) theo từng node và
gửi data. Khi Block đầu tiên
được điền vào, client sẽ yêu
cầu DataNode mới để nạp
bản sao của block kế tiếp.
Ống mới sẽ được tổ chức, và
client gửi các byte tiếp theo
của tập tin. Sự lựa chọn
DataNode của mỗi block
tương tự những các khác.
28
HDFS – Các thao tác đọc ghi tập tin (4/4)
Sự toàn vẹn dữ liệu:
• Sử dụng checksum để xác nhận dữ liệu
(CRC32)
• Khi tạo tập tin
Client tính checksum (512 byte).
DataNode lưu trữ checksum.
• Khi truy cập tập tin
Client tìm kiếm dữ liệu và checksum từ DataNode.
Nếu xác nhận fail, Client cố gắng tạo bản sao khác.
29
HDFS – Sao chép tập tin (Replication) (1/1)
Sao chép trong Hadoop ở mức block.
Có ba mức độ sao chép được đề cập:
• Cùng máy > Cùng rack > Khác rack
NameNode phát hiện các DataNode có sự
cố:
• Chọn DataNode mới cho bản sao mới.
• Cân bằng sử dụng đĩa.
• Cân bằng lưu lượng truyền thông với
DataNode.
30
LOGO
31