HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

Các vùng HBase hợp nhất

HBase ghi dữ liệu vào nhiều máy chủ, được gọi là Máy chủ vùng .

Mỗi máy chủ khu vực chứa một hoặc một số Khu vực , và dữ liệu được phân bổ trên các vùng này; Hbase sẽ kiểm soát máy chủ khu vực nào kiểm soát (các) khu vực nào.

Số vùng có thể được xác định ở cấp độ tạo bảng:

[hbase@gw vagrant]$ kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase
[hbase@gw vagrant]$ hbase shell
hbase(main):001:0> create 'table2', 'columnfamily1', {NUMREGIONS => 5, SPLITALGO => 'HexStringSplit'}

Trước đây, chúng tôi đã xác định rằng 5 khu vực sẽ chính xác, liên quan đến số lượng máy chủ khu vực và kích thước khu vực mong muốn và 2 thuật toán cơ bản được cung cấp, HexStringSplit và UniformSplit (nhưng bạn có thể thêm của bạn).

Bạn có thể cung cấp phần tách riêng của mình:

hbase(main):001:0> create 'table2', 'columnfamily1', {NUMREGIONS => 5, SPLITS=> ['a', 'b', 'c']}

Vì vậy, table2 này đã được tạo với 5 khu vực của chúng tôi, hãy vào webUI của HBase để xem nó trông như thế nào:

Chúng tôi có 5 khu vực, hãy xem phân vùng lại các khóa và chúng tôi có thể thấy tên các khu vực:table_name, start_key, end_key, timestamp.ENCODED_REGIONNAME.

Vì vậy, bây giờ, nếu chúng ta muốn hợp nhất các vùng, chúng ta có thể sử dụng merge_region trong hbase shell.
Các vùng phải liền nhau.

hbase(main):010:0> merge_region '234a12e83e203f2e3158c39e1da6b6e7', '89dd2d5a88e1b2b9787e3254b85b91d3'
0 row(s) in 0.0140 seconds

Vâng.

Lưu ý rằng ENCODED_REGIONNAME của vùng kết quả là một vùng mới.

hbase(main):012:0> merge_region 'bfad503057fca37bd60b5a83109f7dc6','e37d7ab5513e06268459c76d5e7335e4'
0 row(s) in 0.0040 seconds

Cuối cùng, hãy hợp nhất tất cả các vùng!

hbase(main):013:0> merge_region '0f5fc22bf0beacbf83c1ad562324c778','af6d7af861f577ba456cff88bf5e5e38','3f1e029afd907bc62f5e5fb8b6e1b5cf','3f1e029afd907bc62f5e5fb8b6e1b5cf'
0 row(s) in 0.0290 seconds

Sau đó, chúng ta có thể thấy rằng chỉ còn lại một vùng:

Đối với bản ghi, bạn có thể tạo bảng HBase được phân tách trước nếu bạn biết phân vùng lại các khóa của mình:bằng cách chuyển SPLITS hoặc bằng cách cung cấp SPLITS_FILE chứa các điểm phân tách (vì vậy số dòng =vùng -1)
Hãy lưu ý về đơn đặt hàng, SPLITS_FILE trước khi {…} sẽ không hoạt động.

[hbase@gw vagrant]$ echo "a\nb\nc" > /tmp/splits.txt;
[hbase@gw vagrant]$ kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase
[hbase@gw vagrant]$ hbase shell
hbase(main):011:0> create 'test_split', { NAME=> 'cf', VERSIONS => 1, TTL => 69200 }, SPLITS_FILE => '/tmp/splits.txt'

Và kết quả:


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apache Hadoop Ozone Security - Xác thực

  2. HBase trong CDP có thể tận dụng S3 của Amazon như thế nào

  3. Cặp giá trị chính của MapReduce trong Hadoop là gì?

  4. Khả năng truy cập cơ sở dữ liệu hoạt động

  5. Lập chỉ mục email bằng Tìm kiếm Cloudera và HBase