Cơ chế lưu trữ trong HBase
HBase là một cơ sở dữ liệu hướng cột và dữ liệu được lưu trữ trong các bảng. Các bảng được sắp xếp theo RowId. Như hình dưới đây, HBase có RowId, là tập hợp của một số họ cột có trong bảng.
Các họ cột có trong lược đồ là các cặp khóa-giá trị. Nếu chúng ta quan sát chi tiết mỗi họ cột có nhiều số cột. Các giá trị cột được lưu trữ trong bộ nhớ đĩa. Mỗi ô của bảng có Siêu dữ liệu riêng như dấu thời gian và các thông tin khác.

Cơ chế lưu trữ trong HBase
Đến với HBase, sau đây là các thuật ngữ chính đại diện cho lược đồ bảng
- Bảng : Tập hợp các hàng có mặt.
- Hàng : Tập hợp các họ cột.
- Column Family : Tập hợp các cột.
- Cột : Tập hợp các cặp khóa-giá trị.
- Không gian tên : Nhóm hợp lý các bảng.
- Cell : Bộ giá trị {hàng, cột, phiên bản} chỉ định chính xác định nghĩa ô trong HBase.
Trong hướng dẫn này - bạn sẽ học,
- Cơ chế lưu trữ trong HBase
- Mô hình dữ liệu HBase
- Kiến trúc HBase và các thành phần quan trọng của nó
- HBase đọc và ghi dữ liệu được giải thích
- Các trường hợp sử dụng HBase
- HBASE so với HDFS
Các kho lưu trữ hướng theo cột so với hướng hàng
Các kho lưu trữ hướng theo cột và theo hàng khác nhau về cơ chế lưu trữ của chúng. Như chúng ta đã biết, các mô hình quan hệ truyền thống lưu trữ dữ liệu theo định dạng dựa trên hàng giống như dữ liệu theo hàng. Kho lưu trữ hướng cột lưu trữ bảng dữ liệu theo cột và họ cột.
Bảng sau đây đưa ra một số điểm khác biệt chính giữa hai kho lưu trữ này
Cơ sở dữ liệu hướng cột | Cơ sở dữ liệu hướng hàng |
|
|
|
|
Mô hình dữ liệu HBase
Mô hình dữ liệu HBase là một tập hợp các thành phần bao gồm Bảng, Hàng, Họ cột, Ô, Cột và Phiên bản. Bảng HBase chứa họ cột và hàng với các phần tử được xác định là khóa chính. Một cột trong bảng mô hình dữ liệu HBase đại diện cho các thuộc tính của các đối tượng.
Mô hình dữ liệu HBase bao gồm các phần tử sau,
- Bộ bàn
- Mỗi bảng có họ cột và hàng
- Mỗi bảng phải có một phần tử được xác định là Khóa chính.
- Khóa hàng hoạt động như một khóa Chính trong HBase.
- Mọi quyền truy cập vào bảng HBase đều sử dụng Khóa chính này
- Mỗi cột có trong HBase biểu thị thuộc tính tương ứng với đối tượng
Kiến trúc HBase và các thành phần quan trọng của nó
Dưới đây là bản lưu trữ chi tiết của HBase với các thành phần:
Kiến trúc HBase chủ yếu bao gồm bốn thành phần
- HMaster
- HRegionserver
- HRegions
- Người giữ vườn thú
- HDFS
HMaster:
HMaster trong HBase là việc triển khai một máy chủ Master trong kiến trúc HBase. Nó hoạt động như một tác nhân giám sát để giám sát tất cả các phiên bản Máy chủ Vùng có trong cụm và hoạt động như một giao diện cho tất cả các thay đổi siêu dữ liệu. Trong môi trường cụm phân tán, Master chạy trên NameNode. Master chạy một số chủ đề nền.
Sau đây là những vai trò quan trọng được HMaster thực hiện trong HBase.
- Đóng một vai trò quan trọng về mặt hiệu suất và duy trì các nút trong cụm.
- HMaster cung cấp hiệu suất quản trị và phân phối dịch vụ đến các máy chủ khu vực khác nhau.
- HMaster chỉ định khu vực cho các máy chủ khu vực.
- HMaster có các tính năng như kiểm soát cân bằng tải và chuyển đổi dự phòng để xử lý tải qua các nút có trong cụm.
- Khi khách hàng muốn thay đổi bất kỳ lược đồ nào và thay đổi bất kỳ hoạt động Siêu dữ liệu nào, HMaster sẽ chịu trách nhiệm về các hoạt động này.
Một số phương pháp được HMaster Interface đưa ra chủ yếu là các phương pháp hướng Siêu dữ liệu.
- Bảng (createTable, removeTable, enable, disable)
- ColumnFamily (thêm Cột, sửa đổi Cột)
- Khu vực (di chuyển, chỉ định)
Máy khách giao tiếp theo cách hai chiều với cả HMaster và ZooKeeper. Đối với các hoạt động đọc và ghi, nó liên hệ trực tiếp với các máy chủ HRegion. HMaster chỉ định các khu vực cho các máy chủ khu vực và lần lượt, kiểm tra tình trạng hoạt động của các máy chủ khu vực.
Trong toàn bộ kiến trúc, chúng tôi có nhiều máy chủ khu vực. Hlog hiện diện trong các máy chủ khu vực sẽ lưu trữ tất cả các tệp nhật ký.
Máy chủ khu vực HBase:
Khi HBase Region Server nhận được yêu cầu ghi và đọc từ máy khách, nó sẽ gán yêu cầu cho một vùng cụ thể, nơi họ cột thực sự cư trú. Tuy nhiên, máy khách có thể liên hệ trực tiếp với máy chủ HRegion, không cần sự cho phép bắt buộc của HMaster đối với máy khách liên quan đến giao tiếp với máy chủ HRegion. Khách hàng yêu cầu sự trợ giúp của HMaster khi các hoạt động liên quan đến siêu dữ liệu và thay đổi lược đồ được yêu cầu.
HRegionServer là cài đặt Máy chủ Vùng. Nó chịu trách nhiệm phục vụ và quản lý các vùng hoặc dữ liệu có trong một cụm phân tán. Máy chủ khu vực chạy trên các Nút dữ liệu có trong cụm Hadoop.
HMaster có thể tiếp xúc với nhiều máy chủ HRegion và thực hiện các chức năng sau.
- Lưu trữ và quản lý các khu vực
- Tự động chia tách các vùng
- Xử lý các yêu cầu đọc và ghi
- Giao tiếp trực tiếp với khách hàng
Khu vực HBase:
HRegions là các phần tử xây dựng cơ bản của cụm HBase bao gồm sự phân bố các bảng và bao gồm các họ Cột. Nó chứa nhiều cửa hàng, một cửa hàng cho mỗi họ cột. Nó chủ yếu bao gồm hai thành phần, đó là Memstore và Hfile.
ZooKeeper:
HBase Zookeeper là một máy chủ giám sát tập trung duy trì thông tin cấu hình và cung cấp đồng bộ hóa phân tán. Đồng bộ hóa phân tán là truy cập các ứng dụng phân tán chạy trên toàn cụm với trách nhiệm cung cấp các dịch vụ điều phối giữa các nút. Nếu máy khách muốn giao tiếp với các vùng, máy khách của máy chủ phải tiếp cận ZooKeeper trước.
Nó là một dự án mã nguồn mở và nó cung cấp rất nhiều dịch vụ quan trọng.
Dịch vụ do ZooKeeper cung cấp
- Duy trì thông tin cấu hình
- Cung cấp đồng bộ hóa phân tán
- Thiết lập giao tiếp máy khách với máy chủ khu vực
- Cung cấp các nút tạm thời đại diện cho các máy chủ khu vực khác nhau
- Máy chủ chủ khả năng sử dụng của các nút tạm thời để khám phá các máy chủ có sẵn trong cụm
- Để theo dõi lỗi máy chủ và phân vùng mạng
Các nút nô lệ Master và HBase (máy chủ khu vực) đã tự đăng ký với ZooKeeper. Máy khách cần quyền truy cập vào cấu hình túc số ZK (người giữ vườn thú) để kết nối với máy chủ chính và máy chủ khu vực.
Trong khi xảy ra sự cố của các nút trong cụm HBase, ZKquoram sẽ kích hoạt thông báo lỗi và nó bắt đầu sửa chữa các nút bị lỗi.
HDFS:
HDFS là một hệ thống tệp phân tán Hadoop, như tên của nó, nó cung cấp một môi trường phân tán cho việc lưu trữ và nó là một hệ thống tệp được thiết kế để chạy trên phần cứng hàng hóa. Nó lưu trữ từng tệp trong nhiều khối và để duy trì khả năng chịu lỗi, các khối được sao chép qua một cụm Hadoop.
HDFS cung cấp khả năng chịu lỗi cao và chạy trên phần cứng hàng hóa giá rẻ. Bằng cách thêm các nút vào cụm và thực hiện xử lý & lưu trữ bằng cách sử dụng phần cứng hàng hóa giá rẻ, nó sẽ mang lại cho khách hàng kết quả tốt hơn so với kết quả hiện có.
Ở đây, dữ liệu được lưu trữ trong mỗi khối sẽ sao chép thành 3 nút bất kỳ trong trường hợp khi nút nào gặp sự cố sẽ không bị mất dữ liệu, nó sẽ có cơ chế khôi phục sao lưu phù hợp.
HDFS tiếp xúc với các thành phần HBase và lưu trữ một lượng lớn dữ liệu theo cách phân tán.
HBase đọc và ghi dữ liệu được giải thích
Các hoạt động Đọc và Ghi từ Máy khách vào Hfile có thể được hiển thị trong sơ đồ dưới đây.
Bước 1) Khách hàng muốn ghi dữ liệu và lần lượt trước tiên giao tiếp với máy chủ Khu vực và sau đó là các khu vực
Bước 2) Các khu vực liên hệ với memstore để lưu trữ được liên kết với họ cột
Bước 3) Dữ liệu đầu tiên lưu trữ vào Memstore, nơi dữ liệu được sắp xếp và sau đó, nó được chuyển vào HFile. Lý do chính để sử dụng Memstore là để lưu trữ dữ liệu trong hệ thống tệp phân tán dựa trên Row Key. Memstore sẽ được đặt trong bộ nhớ chính của máy chủ Vùng trong khi các tệp HF được ghi vào HDFS.
Bước 4) Khách hàng muốn đọc dữ liệu từ các Khu vực
Bước 5) Đến lượt Client có thể truy cập trực tiếp vào Mem store và nó có thể yêu cầu dữ liệu.
Bước 6) Khách hàng tiếp cận HFiles để lấy dữ liệu. Dữ liệu được tìm nạp và truy xuất bởi Khách hàng.
Memstore giữ các sửa đổi trong bộ nhớ đối với cửa hàng. Thứ bậc của các đối tượng trong Vùng HBase như được hiển thị từ trên xuống dưới trong bảng dưới đây.
Bàn | Bảng HBase có trong cụm HBase |
Khu vực | Phân bổ cho các bảng đã trình bày |
Cửa hàng | Nó lưu trữ theo ColumnFamily cho từng vùng cho bảng |
Memstore |
|
StoreFile | StoreFiles cho mỗi cửa hàng cho mỗi khu vực cho bảng |
Khối | Các khối hiện có bên trong StoreFiles |
Các trường hợp sử dụng HBase
Sau đây là các ví dụ về các trường hợp sử dụng HBase với giải thích chi tiết về giải pháp mà nó cung cấp cho các vấn đề kỹ thuật khác nhau
Báo cáo vấn đề | Giải pháp |
---|---|
Ngành viễn thông đối mặt với những thách thức kỹ thuật sau
| HBase được sử dụng để lưu trữ hàng tỷ hàng bản ghi cuộc gọi chi tiết. Nếu 20TB dữ liệu được thêm mỗi tháng vào cơ sở dữ liệu RDBMS hiện có, hiệu suất sẽ kém đi. Để xử lý một lượng lớn dữ liệu trong trường hợp sử dụng này, HBase là giải pháp tốt nhất. HBase thực hiện truy vấn nhanh và hiển thị các bản ghi. |
Ngành ngân hàng tạo ra hàng triệu bản ghi mỗi ngày. Bên cạnh đó, ngành ngân hàng cũng cần một giải pháp phân tích có thể phát hiện ra gian lận trong giao dịch tiền | Để lưu trữ, xử lý và cập nhật khối lượng lớn dữ liệu và thực hiện phân tích, một giải pháp lý tưởng là - HBase được tích hợp với một số thành phần hệ sinh thái Hadoop. |
Ngoài ra, HBase có thể được sử dụng
- Bất cứ khi nào có nhu cầu viết các ứng dụng nặng.
- Thực hiện phân tích nhật ký trực tuyến và tạo báo cáo tuân thủ.
HBase so với HDFS
HBase chạy trên HDFS và Hadoop. Một số khác biệt chính giữa HDFS và HBase là về hoạt động và xử lý dữ liệu.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Một số ứng dụng công nghiệp CNTT điển hình sử dụng hoạt động HBase cùng với Hadoop. Các ứng dụng bao gồm dữ liệu trao đổi chứng khoán, dữ liệu hoạt động ngân hàng trực tuyến và xử lý Hbase là phương pháp giải pháp phù hợp nhất.
Tóm lược
Hbase là một trong những cơ sở dữ liệu phân tán theo hướng cột NoSql có sẵn trong nền tảng apache. HBase mang lại hiệu suất cao hơn để lấy ít bản ghi hơn là Hadoop hoặc Hive. Rất dễ dàng để tìm kiếm bất kỳ giá trị đầu vào nào vì nó hỗ trợ lập chỉ mục, giao dịch và cập nhật.
Chúng tôi có thể thực hiện phân tích thời gian thực trực tuyến bằng cách sử dụng Hbase được tích hợp với hệ sinh thái Hadoop. Nó có tính năng sharding tự động và có thể định cấu hình cho các tập dữ liệu hoặc bảng và cung cấp các API hữu ích để thực hiện các công việc MapReduce.