HBase Archikiến trúc: Trường hợp sử dụng, Thành phần & Mô hình dữ liệu

⚡ Tóm tắt thông minh

Kiến trúc HBase được xây dựng từ bốn thành phần phối hợp — HMaster, Region Servers, ZooKeeper và HDFS — lưu trữ dữ liệu theo mô hình hướng cột, chia dữ liệu thành các vùng và phục vụ các thao tác đọc và ghi ngẫu nhiên với độ trễ thấp.

  • 🧭 HMaster: Phân bổ khu vực cho Máy chủ khu vực, xử lý cân bằng tải và chuyển đổi dự phòng, đồng thời quản lý các thay đổi về lược đồ và siêu dữ liệu.
  • 🗄️ Máy chủ khu vực: Tự động xử lý các yêu cầu đọc và ghi của máy khách, phân vùng lưu trữ và chia vùng khi dữ liệu tăng lên.
  • 🧱 Khu vực và cửa hàng: Mỗi vùng lưu trữ một store cho mỗi column family, được xây dựng từ MemStore trong bộ nhớ và HFiles trên đĩa.
  • 🔗 Người giữ vườn thú: Điều phối cụm, tracCác lỗi máy chủ ks và lưu giữ cấu hình quorum mà các máy khách sử dụng để kết nối.
  • 🧮 Mô hình dữ liệu: Bảng nhóm các nhóm cột và hàng, và khóa hàng đóng vai trò là khóa chính cho mọi truy cập.
  • HBase so với HDFS: HBase bổ sung khả năng đọc và ghi ngẫu nhiên độ trễ thấp cho hệ thống lưu trữ theo lô của HDFS.

Kiến trúc HBase với các thành phần, mô hình dữ liệu và luồng dữ liệu đọc và ghi.

Apache HBase là một cơ sở dữ liệu NoSQL phân tán, hướng cột, chạy trên nền tảng... Hadoop và Hệ thống Tệp Phân tán Hadoop (HDFS). Kiến trúc của nó kết hợp một máy chủ điều phối chính, các máy chủ vùng và ZooKeeper để lưu trữ các bảng rất lớn và phục vụ các thao tác đọc và ghi ngẫu nhiên nhanh chóng.

HBase Archikiến trúc và các thành phần quan trọng của nó

Kiến trúc HBase bao gồm các thành phần chính sau:

  • HMaster
  • Máy chủ HRKhu vực
  • Khu vực nhân sự
  • Vườn bách thú
  • HDFS

Dưới đây là sơ đồ chi tiết về kiến ​​trúc của HBase cùng các thành phần của nó.

Sơ đồ kiến ​​trúc HBase thể hiện HMaster, Region Servers, ZooKeeper và HDFS.

HMaster

HMaster trong HBase là triển khai của 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 để theo dõi tất cả các phiên bản Region Server có trong cụm và đóng vai trò là 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ố luồng nền.

Sau đây là những vai trò quan trọng mà HMaster thực hiện trong HBase:

  • Đóng một vai trò quan trọng về 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ụ cho các máy chủ khu vực khác nhau.
  • HMaster chỉ định vùng cho máy chủ vùng.
  • HMaster điều khiển việc cân bằng tải và chuyển đổi dự phòng để xử lý tải trên các nút hiện có trong cụm.
  • Khi khách hàng muốn thay đổi bất kỳ lược đồ hoặc thao tác siêu dữ liệu nào, HMaster sẽ chịu trách nhiệm thực hiện các thao tác này.

Một số phương thức được giao diện HMaster cung cấp chủ yếu là các phương thức hướng đến siêu dữ liệu:

  • Bảng (createTable, RemoveTable, bật, tắt)
  • ColumnFamily (thêm cột, sửa cột)
  • Vùng (di chuyển, gán)

Ứng dụng khách giao tiếp hai chiều với cả HMaster và ZooKeeper. Đối với các thao tác đọc và ghi, nó liên hệ trực tiếp với các máy chủ HRegion. HMaster gán các vùng cho các máy chủ vùng và ngược lại, kiểm tra trạng thái hoạt động của các máy chủ vùng.

Trong toàn bộ kiến ​​trúc, chúng tôi có nhiều máy chủ vùng. Một HLog được đặt trên các máy chủ vùng, nơi lưu trữ tất cả các tệp nhật ký.

Máy chủ khu vực HBase

Khi máy chủ vùng HBase nhận được cá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 chứa họ cột thực tế. Máy khách có thể liên hệ trực tiếp với các máy chủ vùng HBase; không cần quyền HMaster bắt buộc để máy khách giao tiếp với các máy chủ vùng HBase. Máy khách chỉ cần sự trợ giúp của HMaster khi cần thực hiện các thao tác liên quan đến thay đổi siêu dữ liệu và lược đồ.

HRegionServer là triển khai của Region Server. Nó chịu trách nhiệm phục vụ và quản lý các vùng, hay dữ liệu có trong một cụm phân tán. Các Region Server chạy trên các Data Node có trong cụm Hadoop.

HMaster có thể liên lạ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ý khu vực
  • Tự động chia 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 thành phần cấu tạo cơ bản của một cụm HBase. Chúng bao gồm sự phân bố các bảng và được cấu thành từ các nhóm cột (column families). Một region chứa nhiều store, mỗi store dành cho một nhóm cột. Nó chủ yếu bao gồm hai thành phần: MemStore và HFile.

Vườn bách thú

HBase Vườn bách thú ZooKeeper là máy chủ giám sát tập trung duy trì thông tin cấu hình và cung cấp tính năng đồng bộ hóa phân tán. Đồng bộ hóa phân tán điều phối các ứng dụng phân tán đang chạy trên toàn cụ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 phải tiếp cận ZooKeeper trước.

Đây là một dự án mã nguồn mở và nó cung cấp nhiều dịch vụ quan trọng.

Các 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 liên lạc giữa máy khách và 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.
  • Cho phép máy chủ chính sử dụng các nút tạm thời này để phát hiện các máy chủ khả dụng trong cụm.
  • TracLỗi máy chủ ks và sự cố phân vùng mạng

Các máy chủ chính và máy chủ phụ HBase (máy chủ vùng) tự đăng ký với ZooKeeper. Máy khách cần truy cập vào cấu hình đồng thuận của ZooKeeper (ZK) để kết nối với máy chủ chính và máy chủ vùng.

Trong trường hợp xảy ra lỗi ở các node trong cụm HBase, cơ chế đồng thuận ZooKeeper sẽ kích hoạt các thông báo lỗi và bắt đầu sửa chữa các node bị lỗi.

HDFS

HDFS là hệ thống phân tán của Hadoop. Hệ thống tập tinNhư tên gọi cho thấy, nó cung cấp một môi trường phân tán để lưu trữ và là một hệ thống tập tin được thiết kế để chạy trên phần cứng thông thường. Nó lưu trữ mỗi tập tin trong nhiều khối và để duy trì khả năng chịu lỗi, các khối được sao chép trên toàn bộ cụm Hadoop.

HDFS cung cấp khả năng chịu lỗi cao và hoạt động trên phần cứng thông thường giá rẻ. Bằng cách thêm các nút vào cụm và thực hiện xử lý và lưu trữ bằng phần cứng thông thường giá rẻ, nó mang lại cho khách hàng kết quả tốt hơn so với thiết lập hiện có.

Ở đây, dữ liệu được lưu trữ trong mỗi khối được sao chép trên 3 nút, vì vậy nếu bất kỳ nút nào gặp sự cố thì sẽ không có dữ liệu bị mất; nó có cơ chế sao lưu và phục hồi thích hợp.

HDFS kết nối với các thành phần của HBase và lưu trữ một lượng lớn dữ liệu theo cách phân tán.

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, Nhóm cột, Ô, Cột và Phiên bản. Bảng HBase chứa các nhóm cột và hàng, với các phần tử được định nghĩa là khóa chính. Một cột trong bảng mô hình dữ liệu HBase đại diện cho một thuộc tính của các đối tượng.

Mô hình dữ liệu HBase bao gồm các thành phần 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 định nghĩa là khóa chính.
  • Khóa hàng đóng vai trò là khóa chính trong HBase.
  • Mọi truy cập vào các bảng HBase đều sử dụng khóa chính này.
  • Mỗi cột trong HBase biểu thị một thuộc tính tương ứng với một đối tượng.

Các trường hợp sử dụng HBase

Sau đây là một số ví dụ về các trường hợp sử dụng HBase, kèm theo giải thích chi tiết về giải pháp mà HBase cung cấp cho các vấn đề kỹ thuật khác nhau.

Báo cáo vấn đề Dung dịch
Ngành viễn thông đang đối mặt với những thách thức kỹ thuật sau: lưu trữ hàng tỷ bản ghi chi tiết cuộc gọi (CDR) được tạo ra bởi lĩnh vực viễn thông; cung cấp quyền truy cập theo thời gian thực vào nhật ký CDR và ​​thông tin thanh toán của khách hàng; và cung cấp một giải pháp tiết kiệm chi phí so với các hệ thống cơ sở dữ liệu truyền thống. 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 vào mỗi tháng vào cơ sở dữ liệu RDBMS hiện có, hiệu suất sẽ giảm. Để xử lý lượng dữ liệu lớn 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ị bản ghi.
Ngành ngân hàng tạo ra hàng triệu hồ sơ mỗi ngày. Ngoài ra, 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 gian lận trong các giao dịch tiền tệ. Để lưu trữ, xử lý và cập nhật khối lượng dữ liệu khổng lồ cũng như thực hiện phân tích, giải pháp lý tưởng là HBase được tích hợp với một số thành phần của hệ sinh thái Hadoop.

Ngoài ra, HBase cũng có thể được sử dụng:

  • Khi cần sử dụng các ứng dụng ghi dữ liệu nhiều.
  • Dù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ủ.

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 bên dưới, HBase có một RowId, là tập hợp của một số nhóm cột có trong bảng.

Các nhóm cột có trong lược đồ là các cặp khóa-giá trị. Nếu quan sát kỹ hơn, mỗi nhóm cột có nhiều cột. Giá trị của các cột được lưu trữ trong bộ nhớ đĩa. Mỗi ô của bảng có siêu dữ liệu riêng, chẳng hạn như dấu thời gian và các thông tin khác.

Sơ đồ bố trí lưu trữ theo cột, với các khóa hàng, nhóm cột và ô, được hiển thị bên dưới.

Cơ chế lưu trữ HBase hiển thị khóa hàng, nhóm cột, cột và ô.

Sau đây là các thuật ngữ chính đại diện cho lược đồ bảng HBase:

  • Bảng: Tập hợp các hàng hiện có.
  • Hàng: Tập hợp các họ cột.
  • Nhóm cột: 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 logicping của các bảng.
  • Ô: Một bộ ba {hàng, cột, phiên bản} xác định chính xác định nghĩa của một ô trong HBase.

Kho lưu trữ theo cột và theo hàng

Cơ chế lưu trữ của lưu trữ hướng cột và hướng hàng khác nhau. 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 hàng, tức là các hàng dữ liệu. Trong khi đó, lưu trữ hướng cột lưu trữ các bảng dữ liệu theo cột và các nhóm cột.

Bảng dưới đây nêu một số điểm khác biệt chính giữa hai loại kho lưu trữ này.

Cơ sở dữ liệu hướng cột Cơ sở dữ liệu hướng hàng
Được sử dụng khi tình huống liên quan đến xử lý và phân tích, chẳng hạn như Xử lý Phân tích Trực tuyến (Online Analytical Processing) và các ứng dụng của nó. Xử lý giao dịch trực tuyến, chẳng hạn như trong lĩnh vực ngân hàng và tài chính, sử dụng phương pháp này.
Lượng dữ liệu có thể lưu trữ trong mô hình này rất lớn, tính theo petabyte. Nó được thiết kế cho một số lượng nhỏ hàng và cột.

Giải thích về đọc và ghi dữ liệu HBase

Các thao tác đọc và ghi từ phía máy khách vào HFile được thể hiện trong sơ đồ bên dưới.

Luồng dữ liệu đọc và ghi của HBase giữa máy khách, máy chủ vùng, MemStore và HFile.

Bước 1) Máy khách muốn ghi dữ liệu và, do đó, trước tiên sẽ liên lạc với Máy chủ Vùng và sau đó là các vùng.

Bước 2) Vùng này liên hệ với MemStore để lưu trữ dữ liệu liên quan đến nhóm cột.

Bước 3) Đầu tiên, dữ liệu được lưu trữ trong MemStore, nơi dữ liệu được sắp xếp, và sau đó được ghi 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 khóa hàng. MemStore được đặt trong bộ nhớ chính của Region Server, trong khi HFiles được ghi vào HDFS.

Bước 4) Khách hàng muốn đọc dữ liệu từ các vùng.

Bước 5) Ngược lại, khách hàng có thể truy cập trực tiếp vào MemStore và yêu cầu dữ liệu.

Bước 6) Khách hàng truy cập HFiles để lấy dữ liệu. Dữ liệu được khách hàng tải về và truy xuất.

MemStore lưu giữ các thay đổi trong bộ nhớ đối với store. Thứ tự phân cấp các đối tượng trong các vùng HBase, từ trên xuống dưới, được thể hiện trong bảng bên dưới.

Bàn Bảng HBase có trong cụm HBase
Khu vực Vùng HR cho các bảng được trình bày
Cửa Hàng Lưu trữ một giá trị cho mỗi nhóm cột trong mỗi vùng của bảng.
Lưu trữ MemStore được sử dụng cho mỗi vùng lưu trữ trong mỗi bảng. Nó sắp xếp dữ liệu trước khi ghi vào HFiles. Hiệu suất ghi và đọc tăng lên nhờ việc sắp xếp này.
Lưu trữTệp StoreFiles cho mỗi cửa hàng cho từng khu vực cho bảng
Chặn Các khối hiện diện bên trong StoreFiles

HBase so với HDFS

HBase hoạt động trên nền tảng HDFS và Hadoop. Một số điểm khác biệt chính giữa HDFS và HBase nằm ở các thao tác và xử lý dữ liệu.

HBase HDFS
Hoạt động có độ trễ thấp Hoạt động có độ trễ cao
Đọc và ghi ngẫu nhiên Viết một lần, đọc nhiều lần.
Truy cập thông qua lệnh shell, một API phía máy khách trong Java, REST, Avro, hoặc Thrift Chủ yếu được truy cập thông qua MapReduce (MRviệc làm )
Cả việc lưu trữ và xử lý đều có thể được thực hiện. Nó chỉ dành cho khu vực lưu trữ.

Một số ứng dụng công nghiệp CNTT điển hình sử dụng các hoạt động của HBase cùng với Hadoop. Các ứng dụng này bao gồm dữ liệu sàn giao dịch chứng khoán và dữ liệu ngân hàng trực tuyến, trong đó HBase là giải pháp phù hợp nhất. Sau khi cụm máy chủ của bạn đã sẵn sàng, bạn có thể... Đọc và ghi dữ liệu trong HBase or cài đặt HBase trên một nút mới.

Câu Hỏi Thường Gặp

Đúng vậy. HBase là một cơ sở dữ liệu NoSQL phân tán, hướng cột, được mô phỏng theo... Google Bigtable được xây dựng trên nền tảng HDFS. Nó lưu trữ dữ liệu thưa thớt trong các bảng thuộc các nhóm cột và không sử dụng lược đồ cố định hoặc các phép nối SQL như cơ sở dữ liệu quan hệ.

WAL, còn được gọi là HLog, ghi lại mọi thao tác ghi trên Region Server trước khi dữ liệu được chuyển vào MemStore. Nó được lưu trữ trên HDFS, vì vậy nếu Region Server gặp sự cố trước khi dữ liệu được ghi vào flush, HBase sẽ phát lại WAL để khôi phục các chỉnh sửa chưa được lưu.

Quá trình nén (compaction) hợp nhất các HFile để giữ tốc độ đọc nhanh. Nén nhỏ (minor compaction) kết hợp một số HFile nhỏ liền kề thành một HFile duy nhất. Nén lớn (major compaction) ghi lại tất cả các HFile của một nhóm cột (column family) vào một tệp duy nhất và loại bỏ vật lý các ô đã bị xóa và hết hạn.

Cả hai đều là các kho lưu trữ NoSQL lấy cảm hứng từ Bigtable, nhưng HBase chạy trên HDFS với một HMaster hoạt động duy nhất và tính nhất quán mạnh mẽ, trong khi Cassandra HBase không cần máy chủ chính, có khả năng điều chỉnh và sao chép dữ liệu một cách nhất quán. HBase phù hợp với phân tích dữ liệu của Hadoop; Cassandra Bộ đồ luôn hoạt động và viết liên tục.

Thiết kế khóa hàng sao cho các thao tác đọc và ghi được phân bổ đều khắp các vùng. Tránh sử dụng các khóa tăng dần một cách đơn điệu, vì điều này sẽ tạo ra các điểm nóng trên một Máy chủ Vùng duy nhất. Sử dụng kỹ thuật mã hóa muối (salting), băm (hashing) hoặc đảo ngược trường (field reversal), và giữ cho khóa ngắn vì chúng lặp lại trong mỗi ô.

Một vùng sẽ tự động được chia tách khi dung lượng lưu trữ của nó vượt quá ngưỡng kích thước đã được cấu hình. Máy chủ vùng sẽ chia nó thành hai vùng con tại khóa hàng giữa, và HMaster có thể gán lại một trong số chúng cho máy chủ khác để cân bằng tải.

Các công cụ trí tuệ nhân tạo và học máy phân tích các mẫu truy vấn và truy cập để đề xuất thiết kế khóa hàng và nhóm cột nhằm tránh các điểm nghẽn. Chúng cũng quét các chỉ số và nhật ký của Máy chủ Vùng để phát hiện sớm các bất thường như vùng bị lệch hoặc các nút bị lỗi.

Vâng. Trợ lý GitHub bản nháp HBase Java Mã máy khách, lệnh shell và bộ lọc quét từ một bình luận ngắn. RevHãy xem kết quả đầu ra để đảm bảo tên bảng, nhóm cột và các lớp API như Connection và Table là chính xác trước khi chạy nó trên một cụm máy tính thực tế.

Tóm tắt bài viết này với: