HBase的启动方式:
在主节点执行
/usr/local/sbin/ntp_update,启动时间同步服务
执行命令service mysqld start,启动MySQL服务
执行命令zk_cluster start,启动ZooKeeper集群
执行命令/usr/local/sbin/hadoop_cluster start,启动Hadoop集群
执行命令/usr/local/hbase-1.3.6/bin/start-hbase.sh,启动HBase
通过命令
hbase shell
进入hbase命令窗口
注意:在HBase命令窗口中输入命令,如果输入出错,直接使用删除键【delete】是无法删除输入字符的,必须使用【ctrl+delete】组合键才能删除。
HBase的关闭方式:HBase使用完成后必须关闭,释放相关资源。
输入【exit】退出命令窗口
在主节点执行命令/usr/local/hbase-1.3.6/bin/stop-hbase.sh,关闭HBase
执行命令/usr/local/sbin/hadoop_cluster stop,关闭Hadoop集群
执行命令zk_cluster stop,关闭ZooKeeper集群
重点:HBase没有数据库的概念,只有命名空间的概念namespace,相当于库,HBase的表就是组织在命名空间里。
1、命名空间相关的命令
list_namespace:列举所以命名空间
create_namespace:创建命名空间
describe_namespace:查看指定命名空间配置
list_namespace_tables:列举指定命名空间中的表
alter_namespace:修改命名空间
alter_namespace 'test', {METHOD => 'set', 'hbase.namespace.quota.maxregion' => '10'}
alter_namespace 'test', {METHOD => 'set', 'hbase.namespace.quota.maxtables' => '10'}
新建表
创建表时如果没有指明命名空间,则默认该表创建在HBase的默认命名空间‘default’中
create '命名空间:表名','列族名1',… '列族名n'
create '命名空间:表名',{语法参数}
参数 |
功能 |
调用示例 |
NAME |
设置列族名 |
NAME => 'c1' |
VERSIONS |
设置最大版本数量 |
VERSIONS => 1 |
TTL |
设置列族可以设置生存时间(以秒为单位),HBase将在到达到期时间后自动删除该列族 |
TTL => 1000 |
BLOCKCACHE |
设置读缓存状态 |
BLOCKCACHE => Ture\False |
SPLITS |
设置建表region预分区 |
SPLITS=>['10','20','30','40'] |
查看表
desc ‘命名空间:表名’:查看制定表的结构
describe ‘命名空间:表名’:与desc命令相同
list‘命名空间:正则表达式’:查看表名
exists ‘命名空间:表名’:判断制定表是否存在
修改表
修改(添加)列族(列族存在就是修改,不存在就是添加)
alter '命名空间:表名',{语法参数}
删除列族
alter '命名空间:表名',{NAME => 'f1', METHOD => 'delete'}
alter '命名空间:表名', 'delete' => 'f1'
修改表属性
alter ‘命名空间:表名’, MAX_FILESIZE => ‘134217728’(设置表属性)
alter ‘命名空间:表名’, METHOD => ‘table_att_unset’, NAME => ‘MAX_FILESIZE’(删除表属性)
删除表
disable '命名空间:表名‘
重点:表必须首先disabled(禁用),然后才能删除
drop '命名空间:表名'删除表
表数据增加
put '命名空间:表名','行键','列族:列标识符','插入值’
put '命名空间:表名','行键','列族:列标识符','插入值',
表数据获取
get '命名空间:表名','行键',{其他参数}
参数 |
功能 |
调用示例 |
COLUMN |
设置查询数据的列簇名 |
get 'Student',r1,{COLUMN=>'c1'/['c1','c2','c3']} |
TIMESTAMP |
设置查询数据的时间戳 |
get 'Student',r1,{COLUMN =>'c1',TIMESTAMP => ts1} |
TIMERANGE |
设置查询数据的时间戳区间 |
get 'Student',r1,{COLUMN => 'c1',TIMERANGE => [ts1, ts2]} |
VERSIONS |
设置查询数据的最大版本数 |
get 'Student',r1,{COLUMN =>'c1',VERSIONS => 4} |
FILTER |
设置查询数据的过滤条件 |
get 'Student',r1,{COLUMN => 'c1',FILTER=> "ValueFilter(=,'binary:abc')"} |
表数据扫描
scan '表名',{其他参数}
表数据删除
delete '表名','行键','列簇’(删除指定列族中的数据)
deleteall '表名', '行键'(删除所有列族中的数据)
HBase的删除,只是在数据上加上'delete'标签,数据没有真正删除
2、表数据清空
truncate '表名'(删除表中所有数据,不管原来定义有多少个Region,清空后只保留一个Region)
truncate_preserve '表名'(删除表中所有数据,并且保留原来定义的Region个数)