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,... Tổng quan hệ thống tập tin phân tán DFS 2/2 DFS Đặt tên naming: • Kết hợp tên local và host
Trang 4Tổ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,
Trang 5Tổng quan hệ thống tập tin phân tán (DFS)
(2/2)
DFS
Đặt tên (naming):
• Kết hợp tên local và host
• Các thư mục từ xa gắn kết vào thư mục cục bộ
• Cấu trúc tên toàn cục duy nhất của
hệ thống
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
Hoạt động trên nhiều hệ điều hành khác nhau.
Trang 9• Đặ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.
Trang 10Hadoop (2/3)
Tại sao chọn Hadoop?
• Cần xử lý tập dữ liệu khổng lồ trên các clusterlớ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ả, đángtín cậy, dễ dùng, nguồn mỡ, bản quyềnapache
Trang 11Ai đang dùng Hadoop?
Trang 12HDFS – 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.
Trang 13HDFS – 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ềuDataNode
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
Trang 15HDFS – 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
Trang 16HDFS – 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
Trang 17Danh 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
Trang 18HDFS – 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.
Trang 19HDFS – 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
Trang 20HDFS – 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.
Trang 21• 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
Trang 22HDFS – 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ậtimage của không gian tên hệ thống tập tinluôn luôn đồng bộ với trạng thái củaNameNode
• Nếu NameNode gặp sự cố thì image củaBackupNode trong bộ nhớ và checkpoint trên
Trang 23HDFS – 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 choNameNode (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
Trang 24HDFS – 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
Trang 25HDFS – 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
Trang 26HDFS – 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épghi
Trang 27HDFS – Các thao tác đọc ghi tập tin (2/4)
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
Trang 28HDFS – 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.
Trang 29HDFS – 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
Trang 30HDFS – 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
Trang 3131