hadoop基础学习十五(hbase的介绍和使用)
文章目录
一、hbase
- hbase是一个实时分布式的高维数据库
- 基于hdfs文件存储系统,通过MapReduce计算,通过zookeeper监控协调,元数据存储在zookeeper中
- 主要用来存储结构化和非结构化的数据,查询的效率比较高,建立多个索引内部有序,按字典升序
- 是一个主从架构,主节点Hmaster和从节点RegionServer都是jvm进程,里面的数据,例如RegionServer的storefile都是进程的对象、
- region:HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据;每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region(裂变)。当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。
- 同一个region的数据存储在同一节点上
- Hmaster的作用
- 1)管理hbase集群
- 2)负责region分配
- 3)负责发现regionServer
- 4)负责regionServer的负载平衡
- 5)负责将切分后的region分配给regionServer管理
- regionServer的作用
- 1)管理region
- 2)负责处理region的读写请求
- 3)负责切分过大的region
- Region是HBase中分布式存储和负载均衡的最小单元。
- HRegion由一个或者多个Store组成,每个Strore又由一个memStore和0至多个StoreFile组成。
- HBase表中的每个列都归属于某个列族,每个“列族”都可以有多个列成员(column)
二、hbase的操作指令
1)start-hbase.sh启动hbase集群
2)hbase shell 进入hbase命令行
3)创建一个表,指定一个列族,每个表中必须要有一个列族
创建一个test表,列族为info
4)list查看当前命名空间下的表
默认有一个table
5)向表中插入数据
-
只能一条一条的插入
test为要插入的表,001为自定义的rowkey,唯一标识一行数据,name为列,info为他所属的列族,值为zhangsan
6)查询数据
指明表名和rowkey
获取列族中列的数据
7)describe ‘test’ 查看表结构
8)删除列族和增加列族
由于当前只有一个列族,不能删除,需要再增加一个
alter ‘test’,NAME => ‘info1’ NAME必须大写
删除列族alter ‘test’,‘delete’ => 'info1’
9)scan ‘test’ 扫描全表
指定扫描范围,包左不包右
10)统计记录数
count ‘test’
11)禁用和启用表,删除表
要删除表首先要禁用表,禁用的表不能使用
disable ‘test’ 禁用表
enable ‘test’ 启用表
exists ‘test’ 测试表是否存在
drop ‘test’ 删除表
必须先禁用后删除