Hbase là gì? Hướng dẫn cài đặt và sử dụng Hbase

ITNavi 27 Jul 2020 13423

Hbase là giải pháp lưu trữ dữ liệu lớn (Big Data), linh hoạt và hoàn toàn miễn phí được rất nhiều tập đoàn công nghệ ưa chuộng. Vậy Hbase là gì? Các tính năng đặc biệt nhất của HbaseĐể giúp các bạn trẻ mới bắt đầu tìm hiểu về Big Data có thể hiểu hơn về công nghệ Hbase, hãy cùng tham khảo qua bài viết sau của ITNavi. Cùng bắt đầu nhé!

Giới thiệu về Hbase là gì

hbase-la-gi

Tổng quan về Hbase là gì

Hbase là hệ quản trị cơ sở dữ liệu dựa trên Hadoop, đây là mã nguồn mở nằm trong dự án của Apache, phát triển và mở rộng từ dự án lưu trữ Bigdata của google. (được xây dựng dựa trên Google Big Table). Hbase được viết bằng ngôn ngữ Java, có thể lưu trữ dữ liệu cực lớn từ terabytes đến petabytes.

Hbase thực chất là một NoSQL điển hình nên vì thế các table của Hbase không có một schemas cố định nào và cũng không mối quan hệ giữa các bảng. Hiện nay, có rất nhiều công ty và tập đoàn công nghệ lớn trên thế giới sử dụng Hbase, có thể kể đến: Facebook, Twitter, Yahoo, Adobe….

Các tính năng của Hbase

  • Thời gian lọc dữ liệu nhanh
  • Lưu trữ dữ liệu Big-Data, có thể lưu trữ hàng tỷ rows và columns
  • Có độ ổn định và giảm thiểu rủi ro (failover) khi lưu một lượng lớn dữ liệu.
  • Truy vấn dữ liệu theo thời gian thực
  • Cung cấp giao thức REST, giúp trả về dữ liệu theo các định dạng khác nhau như plain test, json, xml. Nhờ đó chúng ta có thể khai thác dữ liệu không cần qua API từ phần mềm thứ 3.
  • Nhất quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop
  • Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như Java, PHP, Python
  • Lưu trữ dữ liệu đáng tin cậy, được các hãng công nghệ trên thế giới sử dụng trên quy mô lớn.

Mô hình của Hbase là gì

mo-hinh-hbase
Mô hình của Hbase


Data model

Hbase có nhiều điểm tương đồng với Big Table do được xây dựng dựa trên thiết kế chuẩn của Google Big Table. Dữ liệu sẽ được lưu trong một bảng được xác định bởi các khóa: “Table, Rowkey, Column Families, Column, Timestamp”. Mỗi bảng (table) lại chứa rất nhiều dòng (row), có thể lưu trữ tới hàng chục tỷ dòng trong một bảng của Hbase.

Các dòng này được xác định bởi một khóa chính duy nhất, được gọi là rowkey. Nó khá giống với Primary ket trong các cơ sở dữ liệu SQL thông thường mà chúng ta được biết.

Mỗi row lại bao gồm nhiều cột (column) khác nhau, các cột này gộp lại thành column families. Gía trị của mỗi column được gọi là cell, và mỗi cell chứa rất nhiều cặp “version (timestamp) value”.

Và không giống như các hệ cơ sở dữ liệu quan hệ , thì các cột trong Hbase có thể tạo mới ngay trong quá trình hệ thống đang hoạt động. Một điểm khác biệt nữa của Hbase đó là giá trị “null” (rỗng) sẽ không được lưu trữ trong cơ sở dữ liệu Hbase.

Top những công việc hot nhất hiện nay


Việc làm PHP lương cao chế độ hấp dẫn

Việc làm Python lương cao chế độ hấp dẫn


Auto-sharding

Region chính là đơn vị lưu trữ cơ bản của Hbase, mỗi region sẽ chứa một dải các dòng xếp liền nhau và chúng tự động chia làm hai nếu như dữ liệu bên trong trở nên quá lớn. Và mỗi region sẽ được chứa trong một RegionServer duy nhất.

HFile: lưu trữ dữ liệu của HBase.

HLog: lưu trữ các Log để có thể recovery lại quá trình ghi dữ liệu nếu gặp sự cố.

HDFS: distributed file system mà HBase sử dụng.

Kiến trúc HBase

cau-truc-HBase

Cấu trúc HBase

Kiến trúc HBase bao gồm 4 thành phần cơ bản:

  • HMaster: chính là thành phần trung tâm trong kiến trúc của Hbase, nó giám sát tất cả các RegionServer. Những thay đổi liên quan đến metadata đều được thực hiện thông quan HMaster.
  • HRegionserver: chịu trách nhiệm quản lý trực tiếp các region
  • Hregions: là thành phần kiến trúc cơ sở của Hbase cluster, nó bao gồm 2 thành phần chính là Memstore và Hfile
  • Zookeeper: là trung tâm giám sát và lưu trữ thông tin các cấu hình.
Bài viết có liên quan



Cách thức lưu trữ và tìm kiếm của Hbase

Cách thức lưu trữ

Hbase lưu trữ các row nằm trong các table, mỗi table có thể định nghĩa nhiều column families (cf). Mỗi row phải được quản lý bởi một khóa chính duy nhất.Có thể xem lịch sử lưu dữ liệu trên mỗi row, được quản lý bởi các timestamp

Chúng ta có thể giới hạn history lưu tối đa là bao nhiêu lần (giúp tiết kiệm dung lượng dữ liệu sau một thời gian sử dụng, mỗi lần update dữ liệu thì history cũ hơn sẽ bị xóa)

Cách thức tìm kiếm

Phương pháp phổ biến nhất để tìm kiếm dữ liệu trong Hbase là dùng thrift, bình thường thrift không được khởi động khi chạy Hbase nên sẽ cần khởi động bằng lệnh “./bin/hbase thrift start” .Thrift cung cấp 4 comparator để lọc dữ liệu đó là: “binary, binary prefix, regexstring, substring”

Một cách khác để dễ dàng sử dụng truy vấn dữ liệu trong Hbase hơn là dùng câu lệnh sql để truy vấn, để làm được điều này, bạn cần phải cài đặt thêm Hive. Sau khi cài đặt xong, thì mọi thao tác xử lý dữ liệu đều có thể dùng thông qua câu lệnh sql, trong đó hỗ trợ cả join.

Hướng dẫn cài đặt Hbase ở chế độ Distributed

Bạn có thể download bộ cài Hbase tại đây: http://www-us.apache.org/dist/hbase/.Hoặc bạn có thể vào google, gõ Hbase free để tìm kiếm nhiều nguồn khác nhau.

Tiến hành giải nén Hbase vào thư mục /opt/: $ tar -xzf hbase-0.98.18-hadoop2-bin.tar.gz

Thêm biến môi trường vào tập tin ~/.bash_profile với nội dung sau:

export HBASE_HOME="/opt/hbase"

export PATH="$HBASE_HOME/bin:$PATH"

Kiểm tra xem đã cài đặt thành công chưa bằng lệnh: hbase version

Sửa nội dung tập tin /opt/hbase/conf/hbase-env.sh với nội dung sau:

export JAVA_HOME=/usr/java/default

export HBASE_MANAGES_ZK=true

export HBASE_PID_DIR=/opt/hbase/var

Tiếp tục sửa nội dung tập tin /opt/hbase/conf/hbase-site.xml và thêm vào nội dung sau;

                hbase.master

                sglamp.edumall.co.th:60000               

                hbase.master.info.port

                60010             

                hbase.rootdir

                hdfs://sglamp.edumall.co.th:9000/hbase    

                hbase.cluster.distributed

                true     

hbase.zookeeper.property.dataDir               

                hdfs://sglamp.edumall.co.th:9000/zookeeper   

                hbase.zookeeper.quorum

                sglamp2.edumall.co.th

                hbase.zookeeper.property.clientPort

                2181

                hbase.zookeeper.property.maxClientCnxns

                1000

Để khởi động Hbase ta chạy lệnh sau: /opt/hbase/bin/shServer.sh start

Để tắt Hbase ta chạy lệnh sau: /opt/hbase/bin/shServer.sh stop

Hbase là giải pháp lưu trữ dữ liệu lớn (Big Data), linh hoạt và hoàn toàn miễn phí. Điều quan trọng là dự án của bạn có thực sử đủ lớn để dùng Hbase hay không mà thôi. Và một khi đã dùng Hbase, bạn phải xác định trước cấu trúc dữ liệu, xác định các column family và primary key cho các row ở các table một cách thích hợp. Chúc các bạn thành công với quyết định của mình nhé !

ITNavi - Nền tảng kết nối việc làm IT

Nguồn: Hbase là gì? Hướng dẫn cài đặt và sử dụng Hbase

Bài viết liên quan

NEWSLETTER

Nhập địa chỉ email của bạn dưới đây để đăng ký nhận tin mới nhất

KẾT NỐI VÀ THEO DÕI