Hbase概述及基本命令

本文详细介绍了HBase,一个基于Google Big Table的分布式NoSQL数据库。HBase适用于高容量、高速读写场景,如时间序列数据和消息传递。文章涵盖HBase的物理和逻辑架构,包括HMaster、RegionServer、Region和Table,并探讨了其在Apache HBase生态圈中的位置,如与其他工具的整合。此外,还讲解了HBase的数据管理、特点、Shell命令及批量导入文件的方法。
摘要由CSDN通过智能技术生成

一、HBase概述

  1. HBase是一个领先的NoSQL数据库
    a)是一个面向列存储的数据库
    b)是一个分布式hash map
    c)基于Google Big Table论文
    d)使用HDFS作为存储并利用其可靠性

  2. HBase特点
    a)数据访问速度快,响应时间约2-20毫秒
    b)支持随机读写,每个节点20k~100k+ ops/s
    c)可扩展性,可扩展到20,000+节点

二、应用场景

  1. 增量数据-时间序列数据
     高容量,高速写入
  2. 信息交换-消息传递
     高容量,高速读写
  3. 内容服务-Web后端应用程序
     高容量,高速读写

三、Apache HBase生态圈

  • HBase生态圈技术
    1. Lily – 基于HBase的CRM
    2. penTSDB – HBase面向时间序列数据管理
    3. Kylin – HBase上的OLAP
    4. Phoenix – SQL操作HBase工具
    5. Splice Machine – 基于HBase的OLTP
    6. Apache Tephra – HBase事务支持
    7. TiDB – 分布式SQL DB
    8. Apache Omid - 优化事务管理
    9. Yarn application timeline server v.2 迁移到HBase
    10. Hive metadata存储可以迁移到HBase
    11. Ambari Metrics Server将使用HBase做数据存储

四、HBase物理架构 - 概述

  • HBase采用Master/Slave架构
       1. HMaster
       2. RegionServer
       3. Zookeeper
       4. HBase Client
       5. Region

五、HBase物理架构 - HMaster

  • HMaster的作用
    1. 是HBase集群的主节点,可以配置多个,用来实现HA
    2. 管理和分配Region
    3. 负责RegionServer的负载均衡
    4. 发现失效的RegionServer并重新分配其上的Region

六、HBase物理架构 - RegionServer

  • RegionServer负责管理维护Region
    1. 一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region
    2. 一个Region包含多个存储区,每个存储区对应一个列簇
    3. 一个存储区由多个StoreFile和MemStore组成
    4. 一个StoreFile对应于一个HFile和一个列簇
    5. HFile和WAL作为序列文件保存在HDFS上
    6. Client与RegionServer交互

七、HBase物理架构 - Region和Table

  1. 单个Table(表)被分区成大小大致相同的Region
  2. Region是HBase集群分布数据的最小单位
  3. Region被分配给集群中的RegionServer
  4. 一个Region只能分配给一个RegionServer

八、HBase逻辑架构 - Row

  1. Rowkey(行键)是唯一的并已排序
  2. Schema可以定义何时插入记录
  3. 每个Row都可以定义自己的列,即使其他Row不使用
    相关列定义为列簇
  4. 使用唯一时间戳维护多个Row版本
    在不同版本中值类型可以不同
  5. HBase数据全部以字节存储

九、HBase数据管理

  1. 数据管理目录
    a)系统目录表hbase:meta
    作用:存储元数据等
    b)HDFS目录中的文件
    c)Servers上的region实例
  2. HBase数据在HDFS上
    a)可以通过HDFS进行修复File
    b)修复路径
    RegionServer->Table->Region->RowKey->列簇

十、HBase架构特点

  • 强一致性
  • 自动扩展
    a)当Region变大会自动分割
    b)使用HDFS扩展数据并管理空间
  • 写恢复
    使用WAL(Write Ahead Log)
  • 与Hadoop集成

十一、HBase Shell

hbase安装教程:link
启动hbase:
hbase-deamon.sh start master
hbase shell

  • HBase Shell是一种操作HBase的交互模式
     支持完整的HBase命令集
    在这里插入图片描述

十二、Hbase基本命令

  1. 用户权限:
    user_permission [‘表名’…]
    赋权:
    grant ‘用户名’,‘RWXCA’

  2. 创建表:
    create ‘表名’,{NAME=>‘列簇名’},{NAME=>‘列簇名’}…

  3. 删除表:
    disable ‘表名’ ----->drop ‘表名’

  4. 清空表数据:
    truncate ‘表名’

  5. 修改表名:
    snapshot ‘表名’,‘镜像名’
    clone_snapshot ‘镜像名’,‘新表名’
    delete_snapshot ‘镜像名’

  6. 查表名:list
    描述表:desc ‘表名’
    查看表内容:scan ‘表名’
    查看表中的记录总数:count ‘表名’

  7. 行操作:
    put:put ‘表名’,‘行键’,‘列簇:列名’,‘值’[,时间戳]
    可以单独删除行,行内的数据全部删除 delete ‘表名’,‘行键(rowkey)’,‘列簇名:列名’
    删除整行 deleteall ‘表名’,‘rowkey’

  8. 列簇操作:
    增 alter ‘表名’,NAME=>‘列簇名’
    删 alter ‘表名’,NAME=>‘列簇名’,METHOD=>‘delete’
    改 先加后删
    查 :
    获取某个列簇 get ‘表名’,‘行键(rowkey)’,‘列簇名’
    获取某个列簇的某个列 get ‘表名’,‘行键(rowkey)’,'列簇:列名’

十三、批量导入文件

添加配置hbase-site.xml:
确认superuser
在hbase中输入:whoami查看

<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.superuser</name>
<value>root</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>

1.文件传入hdfs
2.在hbase中创建表结构
3.在linux中上传文件到hbase

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv
-Dimporttsv.separator=","
-Dimporttsv.columns="HBASE_ROW_KEY,
emp:name,emp:job_title,emp:company,time:sDate,time:eDate"
"emp_basic" /root/emp_basic.csv   //表名   hdfs中文件路径

4.查看表

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值