Hbase入门

简介

Apache 开源分布式,非关系列式数据库,位于Hadoop生态的存储层,数据存储于HDFS文件系统,ZooKeeper作为协调服务;

  • 大数据,一个表有上亿行,上百万列
  • 列式存储和权限控制
  • 为空的列不占用空间

Hbase与关系型数据对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JEVSRw7K-1687411377633)(C:\Users\务本\AppData\Roaming\Typora\typora-user-images\image-20230603230008858.png)]

Hbase数据结构
  • 表:数据存于表中,表名为字符串;
  • 行:行键(rowkey)和多个列组成,行键没有数据类型,视为byte[];
  • 列族:多个列组成,相当于对列分组;
  • 列限定符:即为列,

在这里插入图片描述

Hbase集群架构

在这里插入图片描述

HMaster
  • 主节点,本身不存数据,管理HRegionServer节点;
  • HRegionServer节点宕机时,HMaster会将HRegion迁移到其他HRegionServer
  • 管理用户对表的增删改查
  • 管理表的元数据
  • 权限控制
HRegion和HRegionServer

Hbase使用rowkey自动将表水平切分成多个区域,这个区域称为HRegion;

HRegionServer用来管理对应相应的HRegion和处理客户端请求

在这里插入图片描述

Store

存储一个列族的数据,一个HRegion中包含一个或多个Store;

Store中包含一个MemStore和多个HFile文件,MemStore相当于内存缓存,达到一定值会生成Hfile文件,Hbase数据最终以HFile格式存于HDFS中;

HLog

Hbase日志文件,记录数据的更新操作;写入数据流程,先日志,再MemStore,再HFile;HLog可用于故障修复;

分布式安装
HBase安装包
  • 下载地址 https://www.apache.org/dyn/closer.lua/hbase/2.4.17/hbase-2.4.17-bin.tar.gz

  • 解压

         $ tar -zxf hbase-2.4.17-bin.tar.gz -C /home/
    
配制文件
  • conf/hbase-env.sh,加入以下配置

         export JAVA_HOME=/opt/modules/jdk1.8.0_144
         #禁用HBase自带的ZooKeeper,使用外部独立ZooKeeper
         export HBASE_MANAGES_ZK=false
    
  • hbase-site.xml

         <configuration>
           <!—Hbase数据存储目录。需要与HDFS NameNode端口一致-->
           <property>
             <name>hbase.rootdir</name>
             <value>hdfs://linux00:8020/hbase</value>
           </property>
           <!--开启分布式-->
           <property>
             <name>hbase.cluster.distributed</name>
             <value>true</value>
           </property>
           <!--ZooKeeper节点列表 -->
           <property>
             <name>hbase.zookeeper.quorum</name>
             <value>linux00:2181,linux01:2181,linux02:2181</value>
           </property>
           <!—ZooKeeper配置、日志等数据存放目录-->
           <property>
             <name>hbase.zookeeper.property.dataDir</name>
             <value>/opt/hbase-2.4.17/zkData</value>
           </property>
           <!--在分布式环境下设置为false,为解决启动HMaster无法初始化WAL的问题-->
          <property>
             <name>hbase.unsafe.stream.capability.enforce</name>
             <value>false</value>
           </property>
           <property>
             <name>hbase.wal.provider</name>
             <value>filesystem</value>
           </property>
         </configuration>
    

    hbase.rootdir:注意地址hdfs://centos01:9000应与Hadoop的fs.defaultFS一致。若HDFS使用的HA模式,还需要将HDFS HA集群的core-site.xml和hdfs-site.xml复制到HBase的conf目录中(初学者不建议将HBase与HDFS HA结合,使用单一NameNode即可)。

regionservers
linux00
linux01
linux02
文件分发
scp -r hbase-2.4.17 linux01:/home
scp -r hbase-2.4.17 linux02:/home
启动&停止
bin/start-hbase.sh
bin/stop-hbase.sh
bin/hbase-daemons.sh stop master
bin/hbase-daemons.sh stop reginserver
HBase shell 命令
#启动
bin/hbase shell
#建表
create 't1','f1'
#添加数据
put 't1','row1','f1:name','hangsan'
#全表扫描
scan 't1'
#查一行数据
get 't1','row1'
#修改表
put 't1','row1','f1:name','lisi'
#删除特定单元格
delete 't1','row1','f1:name'
#删除行
deleteall 't1','row1'
#删除表
disable 't1'
drop 't1'
#列出所有表
list
#查询行数
count 't1'
#表是否存在
exists 't1'
# 批量执行命令,commands.txt放安装目录下
bin/hbase shell ./commands.txt
     
数据备份
  • 启动yarn 集群
  • 执行备份命令
bin/hadoop distcp \
hdfs://linux00:8020/hbase \
hdfs://linux00:8020/hbase_backup
  • 数据恢复
bin/hadoop distcp \
hdfs://linux00:8020/hbase_backup \
hdfs://linux00:8020/hbase
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值