系统: Ubuntu-16-Serveer

JDK: 1.8

HBase: 2.2.5

安装步骤照这两篇: https://blog.csdn.net/hhy1107786871/article/details/88551234

https://www.jianshu.com/p/a0463f31637d

 

重点:配置hbase-env.sh

#true为单机版,false为集群版
export HBASE_MANAGES_ZK=true
#jdk目录
export JAVA_HOME=/Java/jdk1.8/
#hadoop 目录
export HADOOP_HOME=/Hadoop
#hbase目录
export HBASE_HOME=/HBase

指令:

启动: bin/start-hbase.sh

WebUi : http://master:60010

1.启动HBase Shell: bin/hbase shell

2.建表 create 'table_name', 'col_fam_name'
3.查看所有表 list
4.查看属性 describe 'table_name'
5.增加列族 alter 'table_name','cf2'
alter 'table_name', {NAME=>'cf1',attribute_name1=>attribute_value1, a_n2=>a_v2},{}
'删除列族' alter 'table_name', 'delete' => 'cf'
6.插入数据 put 'table_name','row_key', 'cf:col_name', 'value'
7.调整hbase-version alter 'table_name',{NAME=>'cf',VERSIONS=>5}
8.获取数据 get 'table_name', 'row_key', 'cf:name'
get 'table_name','row_key', {COLUMN=>'cf:name',VERSIONS=>5}
9.用scan查看数据 scan 'table_name'
scan 'table_name',{VERSIONS=>5}
10.删除数据 delete 'test','row_key', 'cf:name' [,ts //根据时间戳删除]
这是因为HBase删除记录并不是真的删除了数据,而是放置了一个 墓碑标记(tombstone marker),把这个版本连同之前的版本都标记为 不可见了。
这是为了性能着想,这样HBase就可以定期去清理这些已经 被删除的记录,而不用每次都进行删除操作。
“定期”的时间点是在 HBase做自动合并(compaction,HBase整理存储文件时的一个操作,会把多个文件块合并成一个文件)的时候。
这样删除操作对于HBase的性 能影响被降到了最低,就算在很高的并发负载下大量删除记录也不怕了!
'删除整行' deleteall 'table_name', 'row_key'
11.停用表 disable 'table_name'
12.删除表 drop 'table_name'

 *其他操作 

1.flushRegion 强制刷新该Region的数据到HDFS。
2.compactRegion:触发该Region的合并(compact)操作, compact会将该Region中的HFile(HBase存储数据的格式)以一定的规则合并,以加速读取速度。
3.majorCompactRegion:触发该Region的majorCompact操作。
4.mergeRegions:合并(merge)多个Region。注意此处的合并 (merge)跟之前我写的合并(compact)并不一样,我把这两种 行为都翻译为合并,这是因为我找不到别的更合适的中文词汇 能形容他们了。merge指的是把多个Region合并起来,而compact 指的是对某个Region中的所有HFile执行合并操作。
5.Snapshot. 快照备份

//java代码
//snapshot 
snapshotName tablename void sapshot(String snapshotName, TableName tableName)-> admin.snapshot("test_snapshot_1",TableName.valueOf("test_snapshot")); //restore_snapshot
snapshotName admin.restoreSnapshot(
"name"); //****要先disable table admin.disable(Tablename.valueOf("name"));