Video: [BigData Engineering] Phần 9-10: Tập batch streaming. Visualize dữ liệu. Bài toán kinh doanh 2025
RegionServers là một điều, nhưng bạn cũng phải xem xét từng khu vực làm việc như thế nào. Trong HBase, một bảng được lan truyền trên một số RegionServers cũng như được tạo thành từ các khu vực riêng lẻ. Khi các bảng được phân chia, sự chia tách trở thành các vùng. Các vùng lưu trữ một loạt các cặp khóa-giá trị, và mỗi RegionServer quản lý một số vùng có thể cấu hình.
Nhưng những khu vực riêng lẻ như thế nào? HBase là một kho dữ liệu theo kiểu cột-gia đình, vậy làm thế nào để các vùng riêng lẻ lưu các cặp khóa-giá trị dựa trên các họ của họ? Hình dưới đây bắt đầu trả lời những câu hỏi này và giúp bạn tiêu hóa nhiều thông tin quan trọng hơn về kiến trúc của HBase.
HBase được viết bằng Java - giống như phần lớn các công nghệ Hadoop. Java là một ngôn ngữ lập trình hướng đối tượng và một công nghệ thanh lịch cho máy tính phân tán. Vì vậy, khi bạn tiếp tục tìm hiểu thêm về HBase, hãy nhớ rằng tất cả các thành phần trong kiến trúc là các đối tượng Java.
Trước hết, hình trên cho ta một ý tưởng khá rõ về những đối tượng khu vực thực sự trông như thế nào, nói chung. Nó cũng làm rõ rằng các vùng phân tách dữ liệu thành các họ hàng cột và lưu trữ dữ liệu trong HDFS bằng các đối tượng HFile.
Khi khách hàng đưa các cặp khóa-giá trị vào hệ thống, các phím được xử lý sao cho dữ liệu được lưu trữ dựa trên cặp cột mà cặp đó thuộc về. Như được hiển thị trong hình, mỗi đối tượng lưu trữ cột của cột có một bộ nhớ cache được đọc gọi là BlockCache và một bộ nhớ cache được gọi là MemStore. BlockCache giúp với hiệu suất đọc ngẫu nhiên.
Dữ liệu được đọc trong các khối từ HDFS và được lưu trữ trong BlockCache. Các lần đọc tiếp theo cho dữ liệu - hoặc dữ liệu được lưu trữ ở gần - sẽ được đọc từ RAM thay vì đĩa, cải thiện hiệu suất tổng thể. Viết nhật ký đầu ra (WAL), đảm bảo rằng HBase của bạn viết đáng tin cậy. Có một WAL cho mỗi RegionServer.
Luôn chú ý đến luật sắt của máy tính phân tán: Sự thất bại không phải là ngoại lệ - đó là một quy tắc, đặc biệt khi phân nhóm hàng trăm hoặc thậm chí hàng ngàn máy chủ. Google đã theo Luật Sắt trong việc thiết kế BigTable và HBase theo sau.
Khi bạn viết hoặc sửa đổi dữ liệu trong HBase, dữ liệu được lưu giữ đầu tiên đến WAL, được lưu trữ trong HDFS, và sau đó dữ liệu được ghi vào bộ nhớ cache MemStore. Ở các khoảng có thể định cấu hình, cặp khóa-giá trị được lưu trữ trong MemStore được ghi vào HFiles trong HDFS và sau đó các mục WAL sẽ bị xóa.
Nếu lỗi xảy ra sau ghi WAL ban đầu nhưng trước khi ghi MemStore cuối cùng vào đĩa, WAL có thể được phát lại để tránh mất dữ liệu. Ba vật thể HFile nằm trong cùng một họ và hai cái khác. Thiết kế của HBase là để tuôn ra dữ liệu cột gia đình lưu trữ trong MemStore đến một HFile cho mỗi tuôn ra. Sau đó, tại các khoảng cấu hình HFiles được kết hợp thành HFiles lớn hơn. Chiến lược này xếp hàng lên hoạt động đầm chặt quan trọng trong HBase.