HBaseの基礎知識(1):HBaseの概要、HBaseのデータモデル、基本アーキテクチャ

第 1 章 HBase の概要

1.1HBaseの定義

HBase は、大規模なデータ ストレージをサポートする分散型のスケーラブルな NoSQL データベースです。

1.2HBase データモデル

論理的には、HBase のデータ モデルはリレーショナル データベースに非常に似ており、データは行と列からなるテーブルに格納されます。しかし、HBase の基礎となる物理ストレージ構造 (KV) の観点から見ると、HBase はむしろ多次元マップに似ています。

1.2.1HBaseの論理構造

辞書順: ビットごとの比較。

下の写真はテーブルですが、テーブルが分割され、さまざまな領域に割り当てられていることがよくあります。

1.2.2HBaseの物理ストレージ構造

このデータ構造は、上の図のストアを詳しく説明したものです。

1.2.3 データモデル

1)ネームスペース

ネームスペースは、リレーショナル データベースの DataBase (データベース) の概念に似ており、各ネームスペースの下に複数のテーブルがあります。HBase には、 hbase と defaultという 2 つの組み込み名前空間があります。 hbase には HBase の組み込みテーブルが格納され、default テーブルはユーザーがデフォルトで使用する名前空間です。

2)地域

リレーショナル データベースのテーブルの概念に似ています。違いは、HBase でテーブルを定義する場合、列ファミリーを宣言するだけで済み、特定の列を宣言する必要がないことです。これは、HBase にデータを書き込むときに、フィールドを動的かつオンデマンドで指定できることを意味します。したがって、リレーショナル データベースと比較して、HBase はフィールドの変更に容易に対応できます。

3)行

HBase テーブルのデータの各行は、RowKey と複数の Column (列) で構成され、データはRowKey の辞書順に格納され、データをクエリするときは RowKey に基づいてのみ取得できるため、RowKey の設計は非常に複雑です。重要。

4)コラム

HBase の各列は、 info: name、info: age など、 ColumnFamily (列ファミリー) および ColumnQualifier (列修飾子)によって修飾されます。テーブルを作成するときは、列ファミリーを指定するだけでよく、列修飾子を事前に定義する必要はありません。

5)タイムスタンプ

データのさまざまなバージョンを識別するために使用されます。各データが書き込まれるとき、タイムスタンプが指定されていない場合、システムは自動的にこのフィールドをデータに追加し、その値は HBase に書き込まれた時刻になります。

6)セル

{rowkey、c​​olumnFamily:columnQualifier、timeStamp}によって一意に決定される単位。セル内のデータには型がなく、すべてバイトコード形式で保存されます。

1.3HBaseの基本アーキテクチャ

不完全版

アーキテクチャの役割:

1)リージョンサーバー

RegionServerはRegionの管理者であり、その実装クラスはHRegionServerであり、主な機能はデータ操作:get、put、delete、リージョン操作:splitRegion、compactRegionです。

2)マスター

Master はすべてのリージョンサーバーのマネージャーです。その実装クラスは HMaster です。その主な機能は次のとおりです: テーブル操作の場合: 作成、削除、変更。リージョンサーバー操作の場合: 各リージョンサーバーへのリージョンの割り当て、各リージョンサーバーのステータスの監視、負荷分散そしてフェイルオーバー。

3)飼育員

HBase は Zookeeper を使用して、マスターの高可用性、RegionServer の監視、メタデータの入力、クラスター構成のメンテナンスなどのタスクを実行します。

4)HDFS

HDFS は、HBase に究極の基盤となるデータ ストレージ サービスと HBase の高可用性サポートを提供します。

おすすめ

転載: blog.csdn.net/zuodingquan666/article/details/135133076