Hbaseの概要と基本的なコマンドの使用法

1。概要

HBaseは、信頼性が高く、パフォーマンスが高く、列指向でスケーラブルな分散ストレージシステムです。

クライアント開始コマンド

方法1:

分别启动
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

方法2:

//启动
bin/start-hbase.sh
//关闭
bin/stop-hbase.sh

2.Hbaseアーキテクチャ

1 クライアント

クライアントには、Hbaseにアクセスするためのインターフェースが含まれています。さらに、クライアントは、キャッシュの.META。メタデータの情報など、Hbaseアクセスを高速化するための対応するキャッシュも維持します。

2 動物園の飼育係

HBaseは、Zookeeperを使用して、高可用性マスター、RegionServerモニタリング、メタデータ入力、およびクラスター構成のメンテナンスを行います。具体的な作業は次のとおりです。

Zoopkeeperを使用して、クラスター内で1つのマスターのみが実行されていることを確認します。マスターが異常な場合は、競合メカニズムを介して新しいマスターが生成され、サービスが提供されます。

Zoopkeeperを介してRegionServerのステータスを監視します。RegionSevrerが異常な場合は、コールバックの形式でオンラインおよびオフラインの情報をマスターRegionServerに通知します。

Zoopkeeperを介してメタデータを保存するための統合エントリアドレス

3 Hmaster NameNode

マスターノードの主な役割は次のとおりです。
分散RegionServerRegionは

メタデータ情報クラスター維持するクラスター全体で負荷分散を維持することです。Regionの
障害、および
RegionSeverが対応する解体の調整に失敗した場合のRegionの割り当ての失敗Hlogポイント
4 HregionServer(DataNode)

HregionServerは、ユーザーの読み取り要求と書き込み要求を直接接続します。

:その機能は次のように要約されている
にマスタによって割り当てられた領域の管理
プロセス読み
クライアントからの書き込み要求を。HDFS内のデータ、保存、根底にあるHDFSとの相互作用を担う
地域が大きくなった後、スプリットの責任を、そして
責任Storefileのマージ。

5 HDFS

HDFSは、Hbaseの究極の基盤となるデータストレージサービスを提供すると同時に、HBaseの高可用性(HDFSに格納されたHlog)サポートを
提供します。具体的な機能は次のように要約されます。メタデータの基盤となる分散ストレージサービスの
複数のコピーを提供し、高い信頼性と高可用性確保するためのテーブルデータ

3.基本的な手順

1.クライアントを入力します

bin/hbase shell

2.現在の名前空間のテーブルを表示します

list

3.テーブルを作成します

テーブルを作成するときに列ファミリーを宣言する必要があります

create 'student','info'

4.データを挿入します

hbase(main):004:0> put 'student','1001','info:sex','male'
hbase(main):004:0> put 'student','1001','info:age','18'
hbase(main):005:0> put 'student','1002','info:name','Janna'
hbase(main):006:0> put 'student','1002','info:sex','female'
hbase(main):007:0> put 'student','1002','info:age','20'

5.スキャンしてデータを表示します

hbase(main):008:0> scan 'student'
hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW  => '1001'}
hbase(main):010:0> scan 'student',{STARTROW => '1001'}

6.テーブル構造を表示します

hbase(main):011:0> describe 'student'

7.指定されたフィールドのデータを更新します(実際、データは更新されませんが、データレコードが挿入され、Hbaseはタイムスタンプを通じてバージョンVERSIONを制御します)

hbase(main):012:0> put 'student','1001','info:name','Nick'

hbase(main):013:0> put 'student','1001','info:age','100'

8.「指定された行」または「指定された列ファミリー:列」のデータを表示します

hbase(main):014:0> get 'student','1001'
hbase(main):015:0> get 'student','1001','info:name'

9.統計テーブルのデータ行

hbase(main):021:0> count 'student'

10.データを削除します

行キーのすべてのデータを削除します

hbase(main):016:0> deleteall 'student','1001'

行キーのデータの列を削除します

hbase(main):017:0> delete 'student','1002','info:sex'

11.テーブルデータのクリア(テーブルをクリアする操作の順序は、最初に無効にされ、次に切り捨てられます)

hbase(main):018:0> truncate 'student'

12.テーブルデータを削除します

首先需要先让该表为disable状态:
hbase(main):019:0> disable 'student'
然后才可以drop这个表:
hbase(main):020:0> drop 'student'

13.テーブル情報を変更します

最新のタイムスタンプに従って、3つのバージョンの情報列ファミリーにデータを保存します。

hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}

14.その他のコマンド

//创建命名空间
create_namespace '_'
//向指定命名空间创建表
create '命名空间:表名','列族'

4.Hbaseデータ構造

1、RowKey

RowKeyは、レコードの取得に使用される主キーです。HBASEテーブルの行にアクセスするには、次の3つの方法があります。

1.単一のRowKeyを介したアクセス(get)

2. RowKeyの範囲を渡す(通常)(のように)

3.全表スキャン(スキャン)

RowKeyは任意の文字列にすることができます。HBASEでは、RowKeyはバイト配列として格納されます

保存する場合、データはRowKeyの辞書式順序(バイト順)で保存されます。RowKeyを設計するときは、ストレージ機能を完全にソートし、頻繁に一緒に読み取られる行を格納する必要があります。(位置相関)

2、列ファミリー

列ファミリー:HBASEテーブルの各列は、特定の列ファミリーに属しています。

列ファミリーはテーブルのスキーマの一部であり(列はそうではありません)、テーブルを使用する前に定義する必要があります。

3、セル

{rowkey、c​​olumn Family:columu、version}によって一意に決定される単位。セル内のデータにはタイプがなく、バイトコード形式で格納されます。

4、タイムスタンプ

各セルには、同じデータの複数のバージョンが格納されます。バージョンはタイムスタンプでインデックス付けされます。

タイムスタンプのタイプは64ビット整数です。タイムスタンプはHBASEによって(データが書き込まれるときに自動的に)割り当てることができ、タイムスタンプはミリ秒単位で正確な現在のシステム時刻です。タイムスタンプは、クライアントが明示的に割り当てることもできます。アプリケーションがデータバージョンの競合を回避したい場合は、アプリケーション自体が一意のタイムスタンプを生成する必要があります。

各セルでは、異なるバージョンのデータが新しい順に並べ替えられます。つまり、最新のデータが最初にランク付けされます。

HBASEは、次の2つのデータバージョン回復方法を提供します。

1つは、データの最後のnバージョンを保存することです。

2つ目は、最新バージョン(過去7日間など)を保存することです。

5、NameSpace

1)テーブル:すべてのテーブルは名前空間のメンバーです。つまり、テーブルは特定の名前空間に属している必要があります。指定されていない場合は、デフォルトの名前空間にあります。

2)RegionServerグループ名前空間にはデフォルトのRegionServerグループが含まれます。

3)アクセス許可アクセス許可名前空間を使用すると、アクセス制御リストACL(アクセス制御リストを定義できますたとえば、テーブルの作成、テーブルの読み取り、削除、更新などです。

4)クォータ名前空間に含めることができるリージョンの数を強制できるクォータ。

 

 

おすすめ

転載: blog.csdn.net/QJQJLOVE/article/details/107210293