hbaseコマンドコーミング

次のコマンドは、hbaseバージョンに基づいています。

hbase(main):041:0> version
1.2.0-cdh5.7.1, rUnknown, Wed Jun  1 16:30:06 PDT 2016
  •  

一般

ステータス:hbaseステータスを表示

hbase(main):002:0> status
1 active master, 1 backup masters, 4 servers, 0 dead, 0.5000 average load

table_help:テーブル操作への簡単なエントリ

t = create 't','cf'  
t = get_table 't'
t.put 'r1','cf:q','v'
t.scan
t.disable
t.enable
t.flush
t.disable
t.drop

whoami:現在のユーザーとグループを表示する

hbase(main):252:0* whoami
chengguoqiang (auth:SIMPLE)
    groups: chengguoqiang, wheel

ddl操作

  • リストテーブルのリストを表示する
  • 作成テーブルの作成
  • 存在するテーブルが存在するかどうかを確認します
  • 記述/記述ビューテーブル構造
  • enable / enable_all / is_enabledテーブルが本番環境で使用可能です。本番環境が利用可能かどうかを判断してください
  • disable / disable_all / is_disabledテーブルを無効にし、無効にするかどうかを決定します
  • ドロップ/ drop_allテーブルを削除
  • get_tableインスタンスを取得します
  • Locate_regionはリージョンを返します。新しいhbaseコマンド
  • show_filtersは当分の間役に立たない
  • alterはテーブル構造を変更し、hbase.online.schema.update.enableパラメーターはそれが本番環境で変更できるかどうかを決定します
  • alter_asyncはテーブル構造を非同期的に変更します
hbase(main):088:0* exists 't'
hbase(main):089:0> desc 't'
hbase(main):090:0> alter 't',{NAME=>'cf', VERSIONS=>'5'}, {NAME=>'cf1', VERSIONS=>'3', COMPRESSION=>'GZ',TTL=>'86400',IN_MEMORY=>'true'}
hbase(main):092:0> alter_status 't'

テーブルを作成するとき、hbaseはデフォルトで領域をテーブルに割り当てます。すべての読み取りおよび書き込み要求はregionServerの同じ領域にアクセスします。現時点では、負荷分散の効果を達成できず、クラスター内の他のregionServerが比較的アイドル状態になっている可能性があります。状態。この問題を解決するには、複数の領域を生成するためにテーブルを作成するときに構成される事前分割を使用できます。Hbaseには、HexStringSplit とUniformSplitの2つの事前分割アルゴリズムが 付属しています 行キーがプレフィックスとしての16進文字列である場合、事前分割アルゴリズムとしてHexStringSplitを使用する方が適していますたとえば、行キーのプレフィックスとしてHexHash(prefix)を使用します。ここで、Hexhashは、最終的に16進文字列を取得するハッシュアルゴリズムです。独自の分割アルゴリズムを使用することもできます。

create 'profile:test','data',{NUMREGIONS => 4, SPLITALGO => 'HexStringSplit', REGION_REPLICATION => 1}
  •  

名前空間

  • list_namespaceネームスペースリスト
  • create_namespace名前を作成します
  • describe_namespace名前空間の説明
  • list_namespace_tables指定された名前空間のテーブルを表示します
  • alter_namespace名前空間属性を変更または追加する
  • drop_namespaceは名前名を削除します、それは空の名前名でなければなりません
hbase(main):028:0> create_namespace 'profile'
hbase(main):029:0> list_namespace 'profile'
hbase(main):036:0* alter_namespace 'profile',{METHOD=>'set', 'TEST_PROPERTY'=>'TEST_VALUE'}
hbase(main):030:0> describe_namespace 'profile'

dml

  • レコードを挿入する
  • 追加レコードが存在しない場合はPut、存在する場合は値を追加
  • 記録を取得
  • スキャンスキャンレコード
  • カウント数を取得します
  • 削除削除行キー、列を指定する必要があります
  • deleteall行キー全体を削除します
  • カウンターを増やし、レコードを挿入し、存在する場合は1を追加します
  • get_counterはカウンター値を返します
  • 空のテーブルを切り捨てます
  • truncate_preserveはテーブルをクリアしますが、パーティション情報を保存します
  • get_splitsはパーティションのリストを返します
hbase(main):005:0> put 't','r1','cf1:q1','v1',{ATTRIBUTES=>{'att1'=>'val1'}}
hbase(main):006:0> scan 't'
hbase(main):007:0> get 't','r1',{COLUMN => 'cf1'}
hbase(main):042:0* put 't','r2','cf1:q2','v2',{ATTRIBUTES=>{'att1'=>'val1'}}

hbase(main):043:0> put 't','r3','cf1:q2','v3',{ATTRIBUTES=>{'att1'=>'val1'}}

hbase(main):044:0> put 't','r5','cf1:q5','v5',{ATTRIBUTES=>{'att1'=>'val1'}}`
hbase(main):045:0> put 't','r11','cf1:q11','v11',{ATTRIBUTES=>{'att1'=>'val1'}}
hbase(main):046:0> put 't','r8','cf1:q8','v8',{ATTRIBUTES=>{'att1'=>'val1'}}
scan 't',{COLUMN=>'cf1',LIMIT=>5, STARTROW=>'r2', ENDROW=>'r5'}
hbase(main):059:0* delete 't','r5','cf1:q5'
hbase(main):076:0* count 't'
hbase(main):051:0> incr 't','r2','cf1:q5'
hbase(main):053:0> get_counter 't','r2','cf1:q5'

hbase(main):105:0> create 'profile:t1','cf1',{SPLITS=>['a','b','c']}
hbase(main):105:0> get_split 'profile:t1'

セキュリティ

  • 許可を付与し、列に絞り込むことができます
  • キャンセル承認を取り消す
  • user_permissionテーブルを開く権限を表示する

    READ( 'R')、WRITE( 'W')、EXEC( 'X')、CREATE( 'C')、ADMIN( 'A')

// Syntax : grant <user> <permissions> [<@namespace> [<table> [<column family> [<column qualifier>]]]
grant 'chengguoqiang','RW', 'profile:yingyun'

// Syntax : user_permission <table>
user_permission 'profile:yingyun'


// Syntax : revoke <user> [<table> [<column family> [<column qualifier>]]
revoke 'chengguoqiang','profile:yingyun'

転載元:https//blog.csdn.net/baidu_35482842/article/details/51803639

おすすめ

転載: blog.csdn.net/xiezhen_zheng/article/details/82458237