Nó hoạt động bằng cách phân tách tập dữ liệu thành các phần nhỏ hơn, được lưu trữ trên nhiều node khác nhau trong cụm máy tính, đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu.. Mỗi máy
Trang 1TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN
-
-HỌC PHẦN
DỮ LIỆU LỚN VÀ ỨNG DỤNG
Giảng viên: Lê hồng Anh Sinh viên thực hiện: Nguyễn Văn Toàn
Mã sv: 2021050813 Nhóm 100
Trang 2Thành phần HDFS 8
Nút tên 9
Nút tên phụ 9
Hệ thống tập n 10
Siêu dữ liệu 12
Nút dữ liệu 13
Kiến trúc sao chép khối 13
Phương pháp sao chép 14
Cấu trúc liên kết sao chép dữ liệu 15
Cấu trúc liên kết sao chép dữ liệu - Ví dụ 16
Tệp được lưu trữ như thế nào? 17
HDFS đang hoạt động - Ví dụ 18
Dòng lệnh HDFS 20
Trình duyệt tệp Hue 20
Trang 3HDFS là gì?
HDFS (Hadoop Distributed File System) là một hệ thống lưu trữ phân tán được thiết kế để chạy trên nền tảng Hadoop Nó cho phép lưu trữ và xử lý tập dữ liệu lớn trên một cụm máy tính phân tán HDFS được thiết kế để chịu được sự cố hệ thống và xử lý dữ liệu trên các node của mạng Nó hoạt động bằng cách phân tách tập dữ liệu thành các phần nhỏ hơn, được lưu trữ trên nhiều node khác nhau trong cụm máy tính, đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu Các tập dữ liệu này được sao chép trên nhiều node để đảm bảo tính sẵn sàng và truy xuất nhanh chóng
HDFS sử dụng cơ chế đọc và ghi đơn giản cho phép nhiều ứng dụng có thể cùng truy xuất dữ liệu một cách hiệu quả Nó hỗ trợ các tính năng chính như cân bằng tải, đa luồng, phục hồi dữ liệu tự động, xác thực người dùng và mã hóa dữ liệu
Với HDFS, các công ty có thể lưu trữ và xử lý tập dữ liệu lớn một cách hiệu quả và đáng tin cậy HDFS là một phần quan trọng của hệ sinh thái Hadoop, cung cấp nền tảng cho các ứng dụng phân tán
và xử lý dữ liệu
Tại sao chọn HDFS?
Trước năm 2011, việc lưu trữ và truy xuất petabyte hoặc zettabyte dữ liệu có ba thách thức lớn sau: Chi phí, Tốc độ, Độ tin cậy Hệ thống tệp truyền thống có giá xấp xỉ $ 10,000 đến $ 14,000, mỗi terabyte Tìm kiếm và phân tích dữ liệu rất tốn thời gian và tốn kém Ngoài ra, nếu các thành phần tìm kiếm được lưu trên các máy chủ khác nhau, việc tìm nạp dữ liệu rất khó khăn Dưới đây là cách HDFS giải quyết tất cả ba vấn đề chính của hệ thống tệp truyền thống:
Chi phí
HDFS là phần mềm mã nguồn mở để nó có thể được sử dụng với chi phí cấp phép và hỗ trợ bằng không Nó được thiết kế để chạy trên một máy tính thông thường
Trang 4Tốc độ
Các cụm Hadoop lớn có thể đọc hoặc ghi hơn một terabyte dữ liệu mỗi giây Một cụm bao gồm nhiều
hệ thống được kết nối hợp lý với nhau trong cùng một mạng
HDFS có thể dễ dàng cung cấp hơn hai gigabyte dữ liệu mỗi giây, trên mỗi máy tính cho MapReduce, đây là một khung xử lý dữ liệu của Hadoop
Độ tin cậy
HDFS sao chép dữ liệu nhiều lần và phân phối các bản sao cho các nút riêng lẻ Nút là một máy chủ hàng hóa được kết nối với nhau thông qua một thiết bị mạng
HDFS sau đó đặt ít nhất một bản sao dữ liệu trên một máy chủ khác Trong trường hợp, bất kỳ dữ liệu nào bị xóa khỏi bất kỳ nút nào; nó có thể được tìm thấy trong cụm
Một hệ thống tệp thông thường, giống như hệ thống tệp Linux, khác với HDFS về kích thước của dữ liệu Trong một hệ thống tệp thông thường, mỗi khối dữ liệu nhỏ, thường khoảng 51 byte Tuy nhiên, trong HDFS, mỗi khối là 128 Megabyte theo mặc định
Một hệ thống tệp thông thường cung cấp quyền truy cập vào dữ liệu lớn nhưng có thể gặp sự cố đầu vào / đầu ra đĩa chủ yếu do nhiều hoạt động tìm kiếm
Mặt khác, HDFS có thể đọc một lượng lớn dữ liệu tuần tự sau một thao tác tìm kiếm Điều này làm cho HDFS trở nên độc đáo vì tất cả các hoạt động này được thực hiện ở chế độ phân tán
Hãy để chúng tôi liệt kê các đặc điểm của HDFS
Đặc điểm của HDFS
Dưới đây là một số đặc điểm của HDFS:
HDFS có khả năng chịu lỗi cao
HDFS có thể bao gồm hàng ngàn máy chủ Mỗi máy lưu trữ một phần dữ liệu hệ thống tệp HDFS phát hiện các lỗi có thể xảy ra trên bất kỳ máy nào và khôi phục nó một cách nhanh chóng và tự động
HDFS có thông lượng cao
HDFS được thiết kế để lưu trữ và quét hàng triệu hàng dữ liệu và đếm hoặc thêm một số tập hợp con của dữ liệu Thời gian cần thiết trong quá trình này phụ thuộc vào sự phức tạp liên quan
Nó đã được thiết kế để hỗ trợ các bộ dữ liệu lớn trong các công việc kiểu hàng loạt Tuy nhiên, trọng tâm là thông lượng truy cập dữ liệu cao hơn là độ trễ thấp
HDFS tiết kiệm
HDFS được thiết kế theo cách mà nó có thể được xây dựng trên phần cứng hàng hóa và các nền tảng không đồng nhất, có giá thấp và dễ dàng có sẵn
Trang 5HDFS hoạt động như thế nào?
Đây là cách HDFS lưu trữ tệp Ví dụ - Một người bảo trợ đã tặng một bộ sưu tập các cuốn sách phổ biến cho một thư viện đại học Thủ thư quyết định sắp xếp các cuốn sách trên một giá đỡ nhỏ và sau
đó phân phát nhiều bản sao của mỗi cuốn sách trên các giá đỡ khác Bằng cách này, học sinh có thể
dễ dàng nhặt một cuốn sách từ bất kỳ giá đỡ nào
Tương tự, HDFS tạo nhiều bản sao của một khối dữ liệu và giữ chúng trong các hệ thống riêng biệt để
dễ dàng truy cập
Hãy thảo luận về Kiến trúc HDFS và Các thành phần trong phần tiếp theo
Kiến trúc HDFS và các thành phần
Nhìn chung, kiến trúc HDFS được gọi là kiến trúc chủ và kiến trúc nô lệ được hiển thị dưới đây
Một nút chính, đó là NameNode, chịu trách nhiệm chấp nhận công việc từ khách hàng Nhiệm vụ của
nó là đảm bảo rằng dữ liệu cần thiết cho hoạt động được tải và tách biệt thành các khối dữ liệu
Trang 6HDFS hiển thị không gian tên hệ thống tệp và cho phép dữ liệu người dùng được lưu trữ trong tệp Một tệp được chia thành một hoặc nhiều khối, được lưu trữ và sao chép trong các nút phụ được gọi là DataNodes như được hiển thị trong phần bên dưới
Trang 7Các khối dữ liệu sau đó được phân phối đến các hệ thống DataNode trong cụm Điều này đảm bảo rằng các bản sao của dữ liệu được duy trì DataNode phục vụ cho các yêu cầu đọc hoặc ghi Nó cũng tạo, xóa và sao chép các khối trên các hướng dẫn từ NameNode Chúng tôi đã thảo luận trong chủ đề trước rằng đó là siêu dữ liệu lưu trữ vị trí khối và sao chép của nó Nó được giải thích trong sơ đồ dưới đây
Có một NameNode phụ thực hiện các tác vụ cho NameNode và cũng được coi là một nút chính Trước Hadoop 2.0.0, NameNode là một Điểm thất bại duy nhất, hoặc SPOF, trong một cụm HDFS Mỗi cụm có một NameNode duy nhất Trong trường hợp xảy ra sự kiện ngoài kế hoạch, chẳng hạn như lỗi hệ thống, cụm sẽ không khả dụng cho đến khi nhà điều hành khởi động lại NameNode Ngoài ra, các sự kiện bảo trì theo kế hoạch, chẳng hạn như nâng cấp phần mềm hoặc phần cứng trên
hệ thống NameNode, sẽ dẫn đến thời gian ngừng hoạt động của cụm
Tính khả dụng cao của HDFS, hoặc HA, tính năng giải quyết các vấn đề này bằng cách cung cấp tùy chọn chạy hai NameNodes dự phòng trong cùng một cụm trong cấu hình Chủ động / Thụ động với chế độ chờ nóng
Điều này cho phép chuyển đổi dự phòng nhanh chóng sang NameNode mới trong trường hợp hệ thống gặp sự cố hoặc quản trị viên bắt đầu chuyển đổi dự phòng cho mục đích bảo trì theo kế hoạch
Trang 8Trong một cụm HA, hai hệ thống riêng biệt được cấu hình là NameNodes Tại bất kỳ trường hợp nào, một trong các NameNodes ở trạng thái Hoạt động và cái còn lại ở trạng thái Chờ
Active NameNode chịu trách nhiệm cho tất cả các hoạt động của máy khách trong cụm, trong khi Chế
độ chờ chỉ hoạt động như một nô lệ, duy trì trạng thái đủ để cung cấp khả năng chuyển đổi dự phòng nhanh chóng nếu cần
Một cụm HDFS có thể được quản lý bằng các tính năng sau:
Lưu trữ dựa trên Quorum: Lưu trữ dựa trên Quorum đề cập đến việc triển khai HA sử dụng Trình quản lý Tạp chí Quorum, hoặc QJM Trong quá trình triển khai này, nút Standby giữ trạng thái của nó được đồng bộ hóa với nút Hoạt động thông qua một nhóm các daemon riêng biệt được gọi là JournalNodes Daemons là các quy trình chạy lâu dài thường khởi động với
hệ thống và lắng nghe các yêu cầu từ các quy trình máy khách Mỗi daemon chạy trong Máy
ảo Java (JVM) của riêng mình Khi bất kỳ sửa đổi không gian tên nào được thực hiện bởi nút Active, nó sẽ ghi lại một bản ghi sửa đổi đối với phần lớn các JournalNodes Nút Standby đọc các chỉnh sửa từ JournalNodes và liên tục theo dõi các thay đổi đối với nhật ký chỉnh sửa Khi nút Standby chỉnh sửa, nó áp dụng chúng cho không gian tên riêng của nó Trong trường hợp chuyển đổi dự phòng, Chế độ chờ đảm bảo rằng nó đã đọc tất cả các chỉnh sửa từ
JournalNodes trước khi nó tự quảng bá lên trạng thái hoạt động Điều này đảm bảo trạng thái không gian tên được đồng bộ hóa hoàn toàn trước khi xảy ra chuyển đổi dự phòng
Lưu trữ được chia sẻ bằng Hệ thống tệp mạng: Trong bộ nhớ dùng chung bằng cách triển khai NFS, nút Standby giữ trạng thái của nó được đồng bộ hóa với nút Hoạt động thông qua quyền truy cập vào thư mục trên thiết bị lưu trữ dùng chung
Thành phần HDFS
Các thành phần chính của HDFS là:
Nút tên
Nút tên phụ
Hệ thống tập tin
Siêu dữ liệu
Nút dữ liệu
Trang 9Nút tên
Máy chủ NameNode là thành phần cốt lõi của cụm HDFS Chỉ có thể có một máy chủ NameNode trong toàn bộ cụm Namenode duy trì và thực thi hoạt động không gian tên hệ thống tệp như mở, đóng và đổi tên các tệp và thư mục, có trong HDFS.
Hình ảnh không gian tên và nhật ký chỉnh sửa lưu trữ thông tin của dữ liệu và siêu dữ liệu
NameNode cũng xác định việc liên kết các khối với DataNodes Hơn nữa, NameNode là một điểm thất bại duy nhất DataNode là một máy chủ nhiều phiên bản Có thể có một số lượng máy chủ DataNode Số lượng phụ thuộc vào loại mạng và hệ thống lưu trữ
Các máy chủ DataNode, lưu trữ và duy trì các khối dữ liệu NameNode Server cung cấp các khối dữ liệu trên cơ sở loại công việc được gửi bởi khách hàng
DataNode cũng lưu trữ và truy xuất các khối khi được khách hàng hoặc NameNode yêu cầu Hơn nữa, nó đọc / ghi các yêu cầu và thực hiện tạo, xóa và sao chép khối lệnh từ NameNode Chỉ có thể có một máy chủ NameNode phụ trong một cụm Lưu ý rằng bạn không thể coi máy chủ NameNode phụ
là máy chủ khôi phục sau thảm họa Tuy nhiên, nó khôi phục một phần máy chủ NameNode trong trường hợp xảy ra lỗi
Nút tên phụ
Máy chủ NameNode phụ duy trì nhật ký chỉnh sửa và thông tin hình ảnh không gian tên đồng
bộ với máy chủ NameNode Đôi khi, hình ảnh không gian tên từ máy chủ NameNode không
Trang 10được cập nhật; do đó, bạn không thể hoàn toàn dựa vào máy chủ NameNode phụ cho quá trình khôi phục.
Hệ thống tập tin
HDFS hiển thị không gian tên hệ thống tệp và cho phép dữ liệu người dùng được lưu trữ trong tệp HDFS có một hệ thống tệp phân cấp với các thư mục và tệp NameNode quản lý không gian tên hệ thống tệp, cho phép khách hàng làm việc với các tệp và thư mục.
Trang 11Hệ thống tệp hỗ trợ các thao tác như tạo, xóa, di chuyển và đổi tên NameNode, ngoài việc duy trì không gian tên hệ thống tệp, ghi lại bất kỳ thay đổi nào đối với thông tin siêu dữ liệu
Bây giờ chúng ta đã tìm hiểu về các thành phần HDFS, chúng ta hãy xem NameNode hoạt động như thế nào cùng với các thành phần khác
Namenode: Hoạt động
NameNode duy trì hai tệp liên tục; một là nhật ký giao dịch được gọi là Nhật ký chỉnh sửa và một là hình ảnh không gian tên được gọi là FsImage Nhật ký chỉnh sửa ghi lại mọi thay đổi xảy ra trong siêu dữ liệu hệ thống tệp, chẳng hạn như tạo tệp mới
Trang 12NameNode là một hệ thống tệp cục bộ lưu trữ Nhật ký chỉnh sửa Toàn bộ không gian tên hệ thống tệp bao gồm ánh xạ các khối, tệp và thuộc tính hệ thống tệp được lưu trữ trong FsImage Điều này cũng được lưu trữ trong hệ thống tệp cục bộ NameNode
Siêu dữ liệu
Khi DataNodes mới tham gia một cụm, siêu dữ liệu sẽ tải các khối nằm trên một DataNode
cụ thể vào bộ nhớ của nó khi khởi động Siêu dữ liệu sau đó định kỳ tải dữ liệu theo khoảng thời gian do người dùng xác định hoặc mặc định.
Khi NameNode khởi động, nó sẽ truy xuất Nhật ký chỉnh sửa và FsImage từ hệ thống tệp cục
bộ của nó Sau đó, nó cập nhật FsImage với thông tin Edit Log và lưu trữ một bản sao của FsImage trên hệ thống tệp làm điểm kiểm tra.
Kích thước siêu dữ liệu được giới hạn ở RAM có sẵn trên NameNode Một số lượng lớn các tệp nhỏ sẽ yêu cầu nhiều siêu dữ liệu hơn một số lượng nhỏ các tệp lớn Do đó, vấn đề quản
lý siêu dữ liệu trong bộ nhớ giải thích lý do tại sao HDFS ủng hộ một số lượng nhỏ tệp lớn Nếu một NameNode hết RAM, nó sẽ gặp sự cố và các ứng dụng sẽ không thể sử dụng HDFS cho đến khi NameNode hoạt động trở lại.
Trang 13Nút dữ liệu
DataNodes quản lý tên và vị trí của các khối tệp Theo mặc định, mỗi khối tệp là 128
Megabyte Tuy nhiên, điều này có khả năng làm giảm số lượng song song có thể đạt được khi
số lượng khối trên mỗi tệp giảm.
Mỗi tác vụ ánh xạ hoạt động trên một khối, vì vậy nếu các tác vụ ít hơn các nút trong cụm, các tác vụ sẽ chạy chậm Tuy nhiên, vấn đề này ít hơn khi công việc MapReduce trung bình liên quan đến nhiều tệp hơn hoặc các tệp riêng lẻ lớn hơn.
Hãy để chúng tôi xem xét một số lợi ích của phương pháp tiếp cận khối dữ liệu.
Phương pháp tiếp cận khối dữ liệu cung cấp:
Sao chép đơn giản hóa
Khả năng chịu lỗi
Độ tin cậy.
Nó cũng giúp bằng cách bảo vệ người dùng khỏi các chi tiết hệ thống phụ lưu trữ.
Kiến trúc sao chép khối
Trang 14Sao chép khối đề cập đến việc tạo các bản sao của một khối trong nhiều nút dữ liệu Thông thường, dữ liệu được chia thành các dạng của các phần như phần và phần một.
HDFS thực hiện sao chép khối trên nhiều nút dữ liệu để nếu có lỗi trên một trong các máy chủ nút dữ liệu Dịch vụ theo dõi công việc gửi lại công việc đến một máy chủ nút dữ liệu khác Dịch vụ theo dõi công việc có mặt trong máy chủ nút định danh.
Phương pháp sao chép
Trong phương thức sao chép, mỗi tệp được chia thành một chuỗi các khối Tất cả các khối ngoại trừ khối cuối cùng trong tệp có cùng kích thước Các khối được sao chép để có khả năng chịu lỗi.
Trang 15Hệ số sao chép khối thường được cấu hình ở cấp cụm nhưng nó cũng có thể được cấu hình ở cấp độ tệp
Nút tên nhận được nhịp tim và báo cáo khối từ mỗi nút dữ liệu trong cụm Nhịp tim biểu thị rằng nút
dữ liệu đang hoạt động bình thường Báo cáo khối liệt kê các khối trên một nút dữ liệu
Cấu trúc liên kết sao chép dữ liệu
Cấu trúc liên kết của các bản sao là rất quan trọng để đảm bảo độ tin cậy của HDFS Thông thường, mỗi dữ liệu được sao chép ba lần trong đó cấu trúc liên kết sao chép được đề xuất như sau.
Trang 16Đặt bản sao đầu tiên trên cùng một nút với nút của máy khách Đặt bản sao thứ hai trên một giá đỡ khác với bản sao đầu tiên Đặt bản sao thứ ba trên cùng một giá đỡ với bản sao thứ hai nhưng trên một nút khác Hãy hiểu sao chép dữ liệu thông qua một ví dụ đơn giản.
Cấu trúc liên kết sao chép dữ liệu - Ví dụ
Sơ đồ minh họa một cụm Hadoop với ba giá đỡ Dưới đây là sơ đồ sao chép và nhận thức về giá đỡ trong Hadoop.
Trang 17Mỗi giá đỡ bao gồm nhiều nút R1N1 đại diện cho nút 1 trên giá đỡ 1 Giả sử mỗi giá đỡ có tám nút Nút tên quyết định nút dữ liệu nào thuộc về giá đỡ nào Khối 1 là B1 lần đầu tiên được ghi vào nút 4 trên giá đỡ 1.
Một bản sao sau đó được ghi vào một nút khác trên một giá đỡ khác là nút 5 trên giá đỡ 2 Bản sao thứ ba và cuối cùng của khối được ghi vào cùng một giá đỡ của bản sao thứ hai nhưng đến một nút khác là giá đỡ 2 nút 1.
Và bây giờ bạn đã tìm hiểu về cấu trúc liên kết hoặc vị trí sao chép dữ liệu, hãy thảo luận về cách một tệp được lưu trữ trong HDFS.
Tệp được lưu trữ như thế nào?
Trang 18Giả sử chúng ta có một tệp dữ liệu lớn được chia thành bốn khối Mỗi khối được sao chép ba lần như trong sơ đồ.
Bạn có thể nhớ lại rằng kích thước mặc định của mỗi khối là 128 megabyte.
Nút tên sau đó mang thông tin siêu dữ liệu của tất cả các khối và phân phối của nó Hãy làm việc trên một ví dụ về HDFS giúp hiểu sâu sắc về tất cả các điểm được thảo luận cho đến nay.
HDFS đang hoạt động - Ví dụ
Giả sử bạn có 2 tệp nhật ký mà bạn muốn lưu từ hệ thống tệp cục bộ vào cụm HDFS Cụm có 5 nút dữ liệu: nút A, nút B, nút C, nút D và nút E.
Bây giờ nhật ký đầu tiên được chia thành ba khối: b1 b2 và b3 và nhật ký khác được chia thành hai khối: b4 và b5.