Trước khi so sánh khác nhau về HDFS và HDFS2. Chúng ta đi tò mò về HDFS là cái gì, kiến trúc thế nào? bởi vì sao điều đó lại quan trọng. Bởi vì đây là điều cơ bạn dạng cần biết khi họ muốn phát âm sâu MapReduce vào Hadoop.Chúng ta cùng đi sang một số câu hỏi về HDFS

HDFS là gì?

HDFS viết tắt từ bỏ Hadoop Distributed tệp tin System.

Lý vị nào thành lập HDFS

Khi kích thước của tập tài liệu vượt quá kỹ năng lưu trữ của một trang bị tính, tất yếu đang dẫn đến nhu cầu phân chia tài liệu lên trên những máy tính. Các hệ thống tập tin cai quản việc lưu trữ dữ liệu trên một mạng nhiều máy vi tính gọi là khối hệ thống tập tin phân tán. HDFS thành lập và hoạt động trên nhu yếu lưu trữ giữ liệu của Nutch, một dự án search Engine mối cung cấp mở, và phát triển để đáp ứng các đòi hỏi về lưu trữ và cách xử trí của các hệ thống xử lý tài liệu lớn với các đặc thù riêng. Bởi đó, các nhà cải tiến và phát triển HDFS đã chú ý lại những kiến trúc phân tán trước đó và nhận ra các sự khác biệt trong kim chỉ nam của HDFS so với các hệ thống file phân tán truyền thống.án.Bạn sẽ xem: Hdfs là gì

Đặc điểm của HDFS

HDFS vẫn chạy trên những cluster có hàng nghìn thậm chí hàng vạn node. Những phần cứng này được xây dựng nên từ những phần cứng thông thường, giá bán rẻ, tỷ lệ lỗi cao. Do chất lượng phần cứng bởi thế sẽ dẫn đến phần trăm lỗi nhích cao hơn cluster. Vì thế khả năng phát hiện lỗi, chống chịu đựng lỗi, tự phục hồi phải được tích thích hợp vào trong khối hệ thống HDFS.Kích thước tệp tin sẽ to hơn nhiều so với chuẩn chỉnh truyền thống, những file có kích cỡ hàng GB sẽ trở phải phổ biến. Khi làm việc với tài liệu có form size nhiều TB, thì ít lúc nào người ta lại lựa chọn việc quản lý hàng tỷ file có form size KB. Việc chia tài liệu thành một ít file có kích thước lớn sẽ buổi tối ưu hơn, do việc này góp giảm thời gian truy xuất tài liệu và đơn giản dễ dàng hóa việc cai quản tập tin.HDFS không hẳn là một hệ thống file dành riêng cho các mục đích chung. HDFS được thiết kế dành cho các ứng dụng dạng cách xử trí khối (batch processing). Vì đó, các file bên trên HDFS một lúc được chế tác ra, ghi dữ liệu và đóng lại thì cấp thiết bị chỉnh sữa được nữa. Điều này làm dễ dàng và đơn giản hoá bảo đảm tính đồng điệu của tài liệu và có thể chấp nhận được truy cập dữ liệu với thông lượng cao.

Bạn đang xem: Hdfs là gì

Kiến trúc HDFS

Giống như các khối hệ thống file khác, HDFS gia hạn một kết cấu cây phân cấp những file, thư mục mà những file vẫn đóng vai trò là những node lá. Trong HDFS, mỗi file sẽ tiến hành chia ra làm cho một hay những block với mỗi block này sẽ sở hữu một block ID để dìm diện. Những block của cùng một file (trừ block cuối cùng) sẽ có được cùng form size và form size này được hotline là block form size của tệp tin đó. Mỗi block của file sẽ được lưu trữ do vậy nhiều bạn dạng sao (replica) không giống nhau vì mục đích bình an dữ liệu.HDFS có một bản vẽ xây dựng master/slave. Trên một cluster chạy HDFS, có hai một số loại node là Namenode với Datanode. Một cluster có duy tuyệt nhất một Namenode và có một hay các Datanode. Namenode đóng vai trò là master, chịu trách nhiệm gia hạn thông tin về kết cấu cây phân cấp những file, thư mục của hệ thống file và những metadata khác của khối hệ thống file. Cố kỉnh thể, các Metadata mà lại Namenode tàng trữ gồm có:

File System Namespace: là hình ảnh cây folder của khối hệ thống file tại một thời điểm nào đó. File System Namespace diễn đạt tất các các file, thư mục có trên hệ hống file và quan hệ giữa chúng. Tin tức để ánh xạ trường đoản cú tên file ra nên danh sách những block: với mỗi file, ta gồm một list có trang bị tự các block của tệp tin đó, mỗi Block thay mặt bởi Block ID. Nơi lưu trữ những block: các block được thay mặt đại diện một Block ID. Với từng block ta bao gồm một danh sách những DataNode tàng trữ các bản sao của block đó.

Các DataNode sẽ chịu trách nhiệm lưu trữ những block thiệt sự của từng tệp tin của khối hệ thống file phân tán lên hệ thống file cục bộ của nó. Mỗi một block sẽ được lưu trữ như là một file lẻ tẻ trên hệ thống file cục bộ của DataNode.

Sơ đồ phong cách xây dựng HDFS


*

Đọc file trên HDFS

Đầu tiên, client vẫn mở file yêu cầu đọc bằng cách gửi yêu mong đọc file đến NameNode. Kế tiếp NameNode đã thực hiện một số trong những kiểm tra xem file được yêu ước đọc gồm tồn trên không, hoặc file bắt buộc đọc tất cả đang sống trạng thái “khoẻ mạnh” tốt không. Nếu mọi thứ số đông ổn, NameNode đang gửi danh sách các block (đại diện vì Block ID) của file cùng với add các DataNode chứa các phiên bản sao của block này. Tiếp theo, client vẫn mở các kết nối tới DataNode, tiến hành một RPC nhằm yêu cầu nhận block đề xuất đọc với đóng liên kết với DataNode. Lưu ý là với từng block ta gồm thể có không ít DataNode lưu trữ các bạn dạng sao của block đó. Client sẽ chỉ đọc bạn dạng sao của block từ DataNode “gần” nhất. Client sẽ triển khai việc đọc những block lặp đi lăp lại cho đến khi block sau cuối của file được gọi xong. Quá trình client đọc tài liệu từ HDFS đã transparent với người tiêu dùng hoặc chương trình áp dụng client, người dùng sẽ dùng một tập API của Hadoop để địa chỉ với HDFS, những API này che giấu đi quy trình liên lạc với NameNode và kết nối những DataNode để nhận dữ liệu.

Ghi tệp tin trên HDFS

Đầu tiên, client đã gửi yêu cầu đến NameNode chế tạo một file entry lên tệp tin System Namespace. File mới được chế tác sẽ rỗng, tức chưa tồn tại một block nào. Sau đó, NameNode sẽ ra quyết định danh sách các DataNode sẽ cất các bản sao của file phải gì với gửi lại đến client Client sẽ chia file cần gì ra thành các block, và với từng block client đang đóng gói thành một packet. Chú ý là từng block sẽ được lưu ra thành nhiều phiên bản sao trên các DataNode khác nhau (tuỳ vào chỉ số độ nhân bạn dạng của file).Client giữ hộ packet mang lại DataNode vật dụng nhất, DataNode thứ nhất sau khi cảm nhận packet sẽ tiến hành lưu lại bản sao đầu tiên của block. Tiếp sau DataNode thứ nhất sẽ giữ hộ packet này cho DataNode trang bị hai nhằm lưu ra bạn dạng sao sản phẩm công nghệ hai của block. Tựa như DataNode vật dụng hai đang gửi packet đến DataNode thiết bị ba. Cứ như vậy, những DataNode cũng lưu lại các bản sao của một block sẽ hiện ra một ống dẫn dữ liệu data pipe. Sau khi DataNode ở đầu cuối nhận thành được packet, nó sẽ gửi lại đến DataNode máy hai một gói xác thực rằng đang lưu thành công . Cùng gói sản phẩm công nghệ hai lại gởi gói xác thực tình trạng thành công xuất sắc của nhị DataNode về DataNode sản phẩm nhất.Client sẽ nhận được các báo cáo xác nhận từ DataNode đầu tiên cho tình trạng thành công của tất cả DataNode bên trên data pipe. Nếu có ngẫu nhiên một DataNode nào bị lỗi trong quá trình ghi dữ liệu, client sẽ tiến hành chứng thực lại những DataNode vẫn lưu thành công phiên bản sao của block và thực hiện một hành vi đánh dấu block lên trên DataNode bị lỗi.

Xem thêm: Giải Bài Tập Vật Lý 9 Sbt Bài 4, Sbt Vật Lí 9 Bài 4: Đoạn Mạch Nối Tiếp

Sau khi tất cả những block của file đầy đủ đã đươc ghi lên những DataNode, client vẫn thực hiên một thông điệp báo mang lại NameNode nhằm cập nhật lại danh sách những block của tệp tin vừa tạo. Thông tin Mapping từ bỏ Block ID sang trọng danh sách những DataNode lưu giữ trữ sẽ được NameNode auto cập nhật bằng những định kỳ những DataNode vẫn gửi báo cáo cho NameNode danh sách những block mà lại nó cai quản lý.

Từ HDFS cho tới HDFS2 ( từ bỏ Hadoop 1.0 mang lại Hadoop 2.0) gồm gì khác biệt

Thiết kế nơi bắt đầu của HDFS

Gỉai quyết câu hỏi với : 1 Name Node cùng n DataNodes

HDFS2

Bài toán đã mở rộng ra cùng với n NameNodes cùng n DataNodesThay đổi lớn số 1 là HDFS federationLợi ích :