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、column Family:columu、version}によって一意に決定される単位。セル内のデータにはタイプがなく、バイトコード形式で格納されます。
4、タイムスタンプ
各セルには、同じデータの複数のバージョンが格納されます。バージョンはタイムスタンプでインデックス付けされます。
タイムスタンプのタイプは64ビット整数です。タイムスタンプはHBASEによって(データが書き込まれるときに自動的に)割り当てることができ、タイムスタンプはミリ秒単位で正確な現在のシステム時刻です。タイムスタンプは、クライアントが明示的に割り当てることもできます。アプリケーションがデータバージョンの競合を回避したい場合は、アプリケーション自体が一意のタイムスタンプを生成する必要があります。
各セルでは、異なるバージョンのデータが新しい順に並べ替えられます。つまり、最新のデータが最初にランク付けされます。
HBASEは、次の2つのデータバージョン回復方法を提供します。
1つは、データの最後のnバージョンを保存することです。
2つ目は、最新バージョン(過去7日間など)を保存することです。
5、NameSpace
1)テーブル:すべてのテーブルは名前空間のメンバーです。つまり、テーブルは特定の名前空間に属している必要があります。指定されていない場合は、デフォルトの名前空間にあります。
2)RegionServerグループ:名前空間にはデフォルトのRegionServerグループが含まれます。
3)アクセス許可:アクセス許可。名前空間を使用すると、アクセス制御リストACL(アクセス制御リスト)を定義できます。たとえば、テーブルの作成、テーブルの読み取り、削除、更新などです。
4)クォータ:名前空間に含めることができるリージョンの数を強制できるクォータ。