Hbase学习日记:一、HBase概述 及 基本概念

Hbase官网传送门

概述

  1. HBase原本是由Yahoo公司开发,后来贡献给了Apache的一套基于Hadoop的、分布式的、可扩展的、非关系型数据库
  2. 如果需要对大量数据进行随机且实时读写,那么可以考虑使用Hbase
  3. HBase能够管理非常大的表:billions of row * millions columns,十亿行 * 百万列
  4. Hbase是仿照Google的Big Table来进行实现的。因此,Hbase和BigTable的原理几乎一致,只是实现语言不同。Hbase是使用Java语言实现的,BigTable使用的是C语言实现的。Hbase最终的数据保存在HDFS上。
  5. Hbase提供了3个大版本,Hbase1、Hbase2为稳定版,Hbase3为测试版,这3个版本都在同时更新。HBase的版本跟JDK和Hadoop都有映射关系,具体看下面的补充
  6. Hbase作为非关系型数据库,不支持标准的SQL语法,它本身提供了一套全新的命令。
  7. Hbase允许存储稀疏的数据,也因此HBase能够存储结构化和半结构化的数据。
  8. Hbase本体作为数据库,提供了完整的增删改查的功能。HBase基于HDFS来进行存储,HDFS的特点是一次写入多次读取,不允许修改但允许追加写入,但是HBase提供了“改”功能,HBase如何实现“改”功能的? ——HBase实际上并没有去修改写入的数据,而是在文件末尾去追加数据。HBase会对写入的每条数据自动添加一个时间戳,当用户获取数据的时候,HBase自动回返回最新的数据,那么从用户的角度来看,就是发生了数据的修改。
  9. 在HBase中,数据的每一个时间戳称之为一个版本
  10. 10.如果要锁定唯一的一条数据,那么需要通过行键+列族+列+时间戳这四个维度来锁定,这种结果称之为一个Cell(单元格)
  11. 11.HBase中的表在创建的时候,如果不指定,那么只对外提供一个版本的数据
  12. 如果建好表之后再修改可以获取的版本,那么已经历史数据会不可用。
  13. 即使表允许对外获取多个版本的数据,在获取的时候如果不指定获取的版本数量,依然只获取一个版本的数据

补充:实时读写很容易理解,那么什么是随机读写呢?
首先要理解随机读写,要引入几个概念:随机读、随机写、顺序读、顺序写


比如读一篇文章,我们都是从头到尾读下去的,这个叫顺序读
如果我们写一篇文章,我们也是从头到尾,从文章的尾部不断追加内容的,这个叫顺序写
如果一篇文章很长,我们要的内容在其中的某一页,那我们直接翻开那一页去读,这个叫随机读
如果我们可以在文章中间部分随意插入一些文字,那么这个叫随机写


随机读和随机写仔细琢磨,其实是分成两步
第一步先定位要读取或写入的位置
第二步在执行读取或写入的操作


类比sql操作
顺序读:select * from table
随机读:select * from table where name = ‘xxx’
顺序写:insert table values xxx
随机写:update table set xxx=xxx

补充
Hbase和jdk版本的对应关系
https://hbase.apache.org/book.html#basic.prerequisites


Hbase和hadoop的对应关系
https://hbase.apache.org/book.html#hadoop

补充
什么是结构化数据和半结构数据

基本概念

  • RowKey:行键
    在Hbase中,没有主键的概念,取而代之的是行键
    不同于传统的关系型数据库,在Hbase中,定义表的时候不需要指定RowKey,而是在添加数据的时候手动添加RowKey
  • column Family:列族
    在Hbase中,没有表关联的概念,取而代之的是用列族来进行设计。
    在Hbase中,一个表至少要包含一个列族,可以包含多个列族,理论上不限制列族的数量。
    在Hbase中,在定义表的时候必须要定义列族,但是列可以动态增删。一个列族中可以包含0到多个列。
  • namespace:名称空间
    在HBase中没有database的概念,取而代之的是namespace
    在HBase启动的时候,自带了两个空间:default和hbase。hbase空间下放的是HBase的基本信息;在建表的时候如果不指定,则表默认是放在default空间下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值