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

it2023-07-24  79

文章目录

一、hbase二、hbase的数据模型三、hbase的操作指令1)start-hbase.sh启动hbase集群2)hbase shell 进入hbase命令行3)创建一个表,指定一个列族,每个表中必须要有一个列族4)list查看当前命名空间下的表5)向表中插入数据6)查询数据7)describe 'test' 查看表结构8)删除列族和增加列族9)scan ‘test’ 扫描全表10)统计记录数11)禁用和启用表,删除表

一、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)负责发现regionServer4)负责regionServer的负载平衡5)负责将切分后的region分配给regionServer管理 regionServer的作用 1)管理region2)负责处理region的读写请求3)负责切分过大的region Region是HBase中分布式存储和负载均衡的最小单元。HRegion由一个或者多个Store组成,每个Strore又由一个memStore和0至多个StoreFile组成。HBase表中的每个列都归属于某个列族,每个“列族”都可以有多个列成员(column)

二、hbase的数据模型

将一个表开始的时候有一个region,region中的数据按rowkey值有序排列,没有startkey和endkey,region中又分为多个store,一个store代表一个列族,每个store中又分为memstore和filestore,memstore是指数据存放在内存中,一个memstore默认为128m,大小为时间存储尺寸,当时间达到一定值或者大小达到128m时会自动溢写到磁盘中,即storefile,也可以手动,flush ‘表名’ 触发溢写操作,storefile就是hbase中的hfile文件可在hbase查看,当region中的任意一个store超过10G的时候,region就会自动分成两个region,Hmaster负责将region分给regionServer,每个regionServer都对应一个Hlog,当有内存的数据memstore没有写入磁盘store时,regionServer挂了,Hlog中会记录这些数据,可以通过Hlog查看,Hlog也存放在hdfs上.


zookeeper 1.存储hbase的元数据 2.负责Hmaster的高可用

HMaster 1.管理regionServer 2.为regionServer分配region 3.负责regionServer的负责平衡 4.负责重新分配失效regionServer上的region给其他regionServer 5.负责处理对表的创建删除和修改的请求

HregionServer 一个HregionServer对应一个DataNode 一个HregionServer对用一个Hlog 1.负责处理客户端的读写请求 2.负责切分过大的region 3.负责管理region 三维有序 1.rowkey按字典升序 2.列名按字典手续 3.版本号按自然降序


三、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’ 删除表 必须先禁用后删除

java java入门基础学习(一) java入门基础学习(二) java入门基础学习(三) java入门基础学习(四) java入门基础学习(五) java入门基础学习(六) java入门基础学习(七) java入门基础学习(八) java入门基础学习(九) java入门基础学习(十) java入门基础学习(十一) java入门基础学习(十二) java入门基础学习(十三) java入门基础学习(十四)Maven Git java总结,题目+笔记 java进阶之常见对象(一) java进阶之常见对象(二) java进阶之冒泡排序 java进阶之选择排序 java进阶之面向对象(封装) java进阶之面向对象(代码块、继承) java进阶之面向对象(多态、抽象、接口) java进阶之匿名内部类、访问修饰符、包 java进阶之io流(字节流,字符流) java应用一(反射的应用) java应用二(配置文件、工具类) java应用三(数据库索引、spring) java应用四(连接池) Linux Linux基础一 Linux基础二 Linux基础三 Linux基础四 Linux基础五 Mysql mysql一 mysql二 mysql三 mysql四 java连接数据库 redis redis一(缓存,redis简介) redis二(单节点安装,桌面插件) redis三(指令的使用) redis四(java与redis的连接,基本指令在java中的操作) redis五(练习) redis七(持久化) redis九(集群安装) Hadoop hadoop学习一 hadoop学习二 hadoop学习三 hadoop学习四 hadoop学习五 hadoop学习六 hadoop学习七 hadoop学习八 hadoop异常处理 hadoop基础学习九 hadoop基础学习十 hadoop基础学习十一 hadoop基础学习十二 hadoop基础学习十三 hadoop基础学习十四 hadoop基础学习十五

最新回复(0)