简介:分布式数据库
mapreduce为hbase提供高性能的计算能力,zookeeper为hbase提供稳定的服务
client包含访问hbase的接口,维护了对应的cache来加速hbase的访问
zookeeper:做master的高可用,regionerver的监控,元数据的入口以及集群配置维护
Hmaster:为regionserver分配region,维护集群的负载均衡,维护集群的元数据
Hregionserver:直接对接用户的读写请求
管理master为其分配的region
处理客户端的读写请求
负责和底层HDFS交互
hbase常用的shell命令
1.进入hbase的console:进入hbase的根目录的bin目录中,./hbase shell
2.查看所有表: list
3.创建表:create 'tablename',{NAME=>'列族名‘,VERSION=>'2'}版本数可以有可以没有
4.删除表: 先disable ’表名‘ 然后 drop ’表名‘
注意如果删除表报表不存在,创建表又说表存在解决办法为
1. zkCli.sh
2.ls /hbase/table-lock
3.rmr /hbase/table-lock/表名
4.ls /hbase/table
5.rmr /hbase/table/表名
6.hbase shell直接创建表即可。可能表名还在list中现实但是不耽误直接创建
5.查看表的结构:describe ’表名‘
6.修改表结构;
第一步:disable '表名’
第二步:alter 'test1',{NAME=>'body',TTL=>'15552000'} TTL为180天
第三步:enable ‘表名'
7.分配权限:
grant <user> <permissions> <table> <column family> <column qualifier>
例子:grant 'test','RW','t1'
8.查看权限:user_permission 't1'
9.收回权限:
revoke <user> <table> <column family> <column qualifier>
例子:revoke 'test','t1'
10.添加数据:
put <table>,<rowkey>,<family:column>,<value>,<timestamp>
例子:put 't1','rowkey001','f1:col1','value01'
11.查询数据:
get <table>,<rowkey>,[<family:column>,....]
例子:get 't1','rowkey001', 'f1:col1'
或者:get 't1','rowkey001', {COLUMN=>'f1:col1'} get 't1','rowkey001'
12.扫描表:
scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
例子: scan 't1',{LIMIT=>5}
13.查询表中数据行数:
count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
例子:count 't1', {INTERVAL => 100, CACHE => 500}
14.删除数据:
delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名
例子:delete 't1','rowkey001','f1:col1'
hbase根据rowkey批量删除数据
1.找到所有的rowkey输出到一个文件
hive -e 'select f28 from tmp_fjs_dba' >> /tmp/dbasql.txt