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集群

hadoop基础学习十五(hbase的介绍和使用)

2)hbase shell 进入hbase命令行

hadoop基础学习十五(hbase的介绍和使用)

3)创建一个表,指定一个列族,每个表中必须要有一个列族

创建一个test表,列族为info
hadoop基础学习十五(hbase的介绍和使用)

4)list查看当前命名空间下的表

默认有一个table
hadoop基础学习十五(hbase的介绍和使用)

5)向表中插入数据

  • 只能一条一条的插入
    test为要插入的表,001为自定义的rowkey,唯一标识一行数据,name为列,info为他所属的列族,值为zhangsan
    hadoop基础学习十五(hbase的介绍和使用)

6)查询数据

指明表名和rowkey
hadoop基础学习十五(hbase的介绍和使用)
获取列族中列的数据
hadoop基础学习十五(hbase的介绍和使用)

7)describe ‘test’ 查看表结构

hadoop基础学习十五(hbase的介绍和使用)

8)删除列族和增加列族

由于当前只有一个列族,不能删除,需要再增加一个

hadoop基础学习十五(hbase的介绍和使用)
alter ‘test’,NAME => ‘info1’ NAME必须大写
hadoop基础学习十五(hbase的介绍和使用)
hadoop基础学习十五(hbase的介绍和使用)
删除列族alter ‘test’,‘delete’ => 'info1’
hadoop基础学习十五(hbase的介绍和使用)

9)scan ‘test’ 扫描全表

hadoop基础学习十五(hbase的介绍和使用)
指定扫描范围,包左不包右
hadoop基础学习十五(hbase的介绍和使用)

10)统计记录数

count ‘test’
hadoop基础学习十五(hbase的介绍和使用)

11)禁用和启用表,删除表

要删除表首先要禁用表,禁用的表不能使用

disable ‘test’ 禁用表
hadoop基础学习十五(hbase的介绍和使用)
enable ‘test’ 启用表
hadoop基础学习十五(hbase的介绍和使用)
exists ‘test’ 测试表是否存在
hadoop基础学习十五(hbase的介绍和使用)
drop ‘test’ 删除表
hadoop基础学习十五(hbase的介绍和使用)
必须先禁用后删除
hadoop基础学习十五(hbase的介绍和使用)