文章目录

  • HBase简介
  • HBase优点
  • HBase应用
  • 数据库分类
    • 简单的理解:
      • HBase和RDBMS
  • 重要概念区分

HBase简介

Hadoop Database,是一个高可靠性高性能面向列可伸缩实时读写分布式数据库。

利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务主要用来存储非结构化和半结构化的松散数据(列存NoSQL数据库)

HBase优点

  • 容量大

    Hbase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性

  • 面向列
    面向列的存储和权限控制,并支持独立检索,可以动态增加列,即可单独对列进行各方面的操作列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数量

  • 多版本:
    Hbase的每一个列的数据存储有多个Version,比如住址列,可能有多个变更,所以该列可以有多个version

  • 稀疏性:
    为空的列并不占用存储空间,表可以设计的非常稀疏。

    不必像关系型数据库那样需要预先知道所有列名然后再进行null填充

  • 拓展性:
    底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加datanode节点服务(机器)就可以了

  • 高可靠性:
    WAL机制,保证数据写入的时候不会因为集群异常而导致写入数据丢失
    Replication机制,保证了在集群出现严重的问题时候,数据不会发生丢失或者损坏Hbase底层使用HDFS,本身也有备份。

  • 高性能:
    底层的LSM数据结构和RowKey有序排列等架构上的独特设计,使得Hbase写入性能非常高。
    Region切分、主键索引、缓存机制使得Hbase在海量数据下具备一定的随机读取性能,该性能针对Rowkey的查询能够到达毫秒级别,LSM树,树形结构,最末端的子节点是以内存的方式进行存储的,内存中的小树会flush到磁盘中(当子节点达到一定阈值以后,会放到磁盘中,且存入的过程会进行实时merge成一个主节点,然后磁盘中的树定期会做merge操作,合并成一棵大树,以优化读性能。)

HBase应用

Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型(没有int,string等类型),辅助索引,触发器,和高级查询语言等待。那Hbase有什么特性呢?如下:
什么时候用Hbase? Hbase不适合解决所有的问题:

  • 首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态
  • 其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。
  • 最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode。
  • Hbase在单机环境也能运行,但是请在开发环境的时候使用。

内部应用

  • 存储业务数据(结构化): 车辆GPs信息,司机点位信息,用户操作信息,设备访问信息。。。
  • 存储日志数据(半结构化): 架构监控数据(登录日志,中间件访问日志,推送日志,短信邮件发送记录。。。),业务操作日志信息
  • 存储业务附件(非结构化): UDFS系统存储图像,视频,文档等附件信息

不过在公司使用的时候,一般不使用原生的Hbase API,使用原生的API会导致访问不可监控,影响系统稳定性,以致于版本升级的不可控。

数据库分类

数据库类型 特性 优点 缺点
关系型数据库 Oracle、 Mysql 1、关系型数据库,是指采用了关系模型来组织数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型,而—个关系型数据库就是由二维表格及其之间的联系所组成的—个数据组织。 1、容易理解:二维表结构是非常贴近逻辑世界—个概念,关系模型相对网状、层次等其他模型来说更容易理解; 2、使用方便:通用的SQL语言使得操作关系型数据库非常方便; 3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不—致的概率; 4、支持SQL,可用于复杂的查询。 1、为了维护—致性所付出的巨大代价就是其读写性能比较差; 2、固定的表结构; 3、高并发读写需求; 4、海量数掘的高效率读写;
非关系型数据库 Redis、 HBase 1、使用键值对存储数据; 2、分布式; 3、—般不支持ACID特性; 4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 1、无需经过sql层的解析,读写性能很高; 2、基于键值对,数据没有耦合性,容易扩展; 3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 1、不提供sql支持 学习和使用成本较高 2、无事务处理,附力加功能b和报表等支持也不好;

简单的理解:

  • 关系型数据库

    • 通过表与表的字段管理描述对象与对象的关系。
    • 这种表都是基于行存储的 (插入数据的时候,即使没有数据也要插入null),获取数据的时候,即使只获取一个列,也要先查出一行,我们获取数据只需要两个维度即可( id,column)
  • 非关系型数据库

    • 半结构化–更加灵活
      user1={uname:“zs”,age:18}。

    • 非结构化

      图片,视频

HBase和RDBMS

属性 Hbase RDBMS
数据类型 只有字符串 丰富的数据类型
数据操作 增删改查,不支持join 各种各样的函数与表连接
存储模式 基于列式存储 基于表结构和行式存储
数据保护 更新后仍然保留旧版本 替换
可伸缩性 轻易增加节点 需要中间层,牺牲性能

重要概念区分

HDFS: 分布式文件系统

HBase : 分布式数据库

HIVE: 分布式数据仓库

RDBMS:传统数据库

1 HBase 介绍相关推荐

  1. 《MapReduce 2.0源码分析与编程实战》一第1章 HBase介绍

    本节书摘来异步社区<MapReduce 2.0源码分析与编程实战>一书中的第1章,作者: 王晓华 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  2. 一、Hbase介绍、数据模型、体系结构

    文章目录 HBase介绍 HBase数据模型 逻辑视图 逻辑视图 HBase体系结构 HBase系统特性 HBase的优点 HBase的缺点 HBase介绍 HBase数据模型 逻辑视图来看,HBas ...

  3. HBase介绍、搭建、环境、安装部署

    1.搭建环境 部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包.因为该目录用于安装hado ...

  4. HBase学习总结(2):HBase介绍及其基本操作

    (HBase是一种数据库:Hadoop数据库,它是一种NoSQL存储系统,专门设计用来快速随机读写大规模数据.在已成功安装并正常启动的前提下,本文介绍HBase的基本操作.) 一.HBase简介 什么 ...

  5. Welcome to Apache HBase 介绍一

    官网:http://hbase.apache.org/ 一:HBase的介绍 HBase认识 Hadoop database, a distributed, scalable, big data st ...

  6. 四十九、HBase介绍

    传统的RDBMS关系型数据库(例如SQL)存储一定量数据时进行数据检索没有问题,可当数据量上升到非常巨大规模的数据(TB或PB)级别时,传统的RDBMS已无法支撑,这时候就需要一种新型的数据库系统更好 ...

  7. Hadoop数据库:基于Hadoop的数据库Hbase介绍

    在大数据领域,Hadoop技术框架的重要性是已经得到大家认可的,而基于Hadoop框架系统之下的各个组件,也不断在更新完善.关于Hadoop数据库的问题,也是很多同学学习当中的难点,今天我们就主要来聊 ...

  8. 【博学谷学习记录】超强总结,用心分享|大数据之Hbase介绍

    HDFS: 分布式文件存储系统 特点: 吞吐量极高, 适合于进行批量数据处理的工作, 随机的读写能力比较差(压根不支持) 但是, 在实际生产环境中, 有时候的数据体量比较大, 但是希望能够对数据进行随 ...

  9. HBase shell 命令介绍

    HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...

最新文章

  1. 我们工作到底为了什么?
  2. 转向AIOps之前,你应该做好哪些准备?
  3. 十大经典排序算法之希尔排序及其优化
  4. java 7 发布,【UC浏览器】Java平台7.0正式版发布啦
  5. 文本框输入值文字消失常用的两种方法
  6. php数字取反,[转+自]关于PHP7的新特性(涉及取反和disabled_functions绕过)
  7. 漫谈MySQL权限安全,跳槽薪资翻倍
  8. Java跨域请求cooking共享,关于HTML5中的sessionStorage和localStorage
  9. java 漏洞挖掘_Java反序列化漏洞的挖掘、攻击与防御
  10. 如何切底卸载Oracle
  11. 【Linux】一个小故事让你秒懂shell外壳程序
  12. 亚信安全获得ISO14001和OHSAS18001双认证 提升管理软实力
  13. HTTP网络协议四:HTTP报文及报文字段说明
  14. PdgCntEditor一键生成PDF书签目录
  15. 使用Photoshop的总结
  16. SCC会员北京车展围拍超跑 却火了这款华为MateRS保时捷版手机
  17. 服务器硬盘能做ghost,用GHOST实现服务器系统RAID的迁移
  18. 如何使用maven给Java打包
  19. 信息过载的时代,程序员如何破局?
  20. fbx sdk的使用介绍

热门文章

  1. VC/MFC如何设置对话框背景颜色
  2. 用电梯服务器怎样解电梯显示E34,默纳克品牌电梯故障代码e41怎么处理
  3. julia(6)-循环与猜数字
  4. cuda-gpu计算随笔(1)
  5. 【机器学习】模型又线上线下不一致怎么办?
  6. 【Python】一个已经存在 10 年,却被严重低估的库
  7. 【深度学习】图文并茂!用Keras LSTM构建编码器-解码器模型
  8. 反光衣识别算法冠军方案总结(附源码)|极市打榜
  9. 推荐系统炼丹笔记:RecSys2020-SSE-PT解锁序列数据挖掘新姿势
  10. 娱乐社交,玩票大的!2021网易云信“融合通信开发者大赛”正式开赛!