Cyan Blog Cyan Blog
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
  • MySQL
  • NoSQL.md

    • md
    • Redis
    • HBase
      • HBase基础
  • 数据库
  • NoSQL.md
2025-06-10
0
0
目录

HBase

# HBase基础

# HBase产生的背景介绍

从1970年开始,大多数的公司数据存储和维护使用的是关系型数据库

  • 大数据技术出现后,很多拥有海量数据的公司开始选择像Hadoop的方式来存储海量数据
  • Hadoop使用分布式文件系统HDFS来存储海量数据,并使用MapReduce来处理。Hadoop擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化的处理

但是Hadoop存在的局限:

  • Hadoop主要是实现批量数据的处理,并且通过顺序方式访问数据
  • 要查找数据必须搜索整个数据集,如果要进行随机读取数据,效率较低(压根就不支持)

总结:HADOOP仅适合存储大批量的数据,进行顺序化读取数据,并不支持随机读取数据操作

HDFS:吞吐量极高,适合于批量数据的处理、不支持随机读写 kudu:折中 HBase:随机读写能力极高,适合于对接实时业务、吞吐量比较低

# Hbasel的基本介绍

NoSQL是一个通用术语,泛指一个数据库并不是使用SQL作为主要语言的非关系型数据库

HBase是BigTablet的开源java版本。是建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写NoSQL的数据库系统

HBase仅能通过

  • 主键(row key)
  • 主键的range
  • 全表扫描

来检索数据,仅支持单行事务

主要用来存储结构化和半结构化的松散数据

Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务),从技术上来说,HBase更像是一个「数据存储」而不是「数据库」,因为HBase缺少RDBMS中的许多特性,例如带类型的列、二级索引以及高级查询语言等

Hbase中支持的数据类型:byte[](nosql型数据库:都是字节(redis))

与Hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加存储和处理能力,例如,把集群从10个节点扩展到20个节点,存储能力和处理能力都会加倍

HBase中的表一般有这样的特点

  • 大:一个表可以有上十亿行,上百万列
  • 面向列:面向列(族)的存储和权限控制,列(族)独立检索
  • 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏

# Hbase的应用场景

适用于数据量大,需要随机读写操作

对象存储 (数据量大,需要进行随机的读写操作。保证数据不容易丢失)

  • 不少的头条类、新闻类的新闻、网页、图片存储在Hbase之中,一些病毒公司的病毒库也是存储在Hbase中

时序数据

  • HBase2之上有openTSDB摸块,可以满足时序类场景的需求

推荐画像(数据量很大数据比较稀疏随机读写操作)

  • 用户画像是一个比较大的稀疏矩阵,蚂蚁金服的风控就是构建在Hbase之上

时空数据

  • 主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在Hbase之中,另外在所有大一点的数据量的车联网企业,数据也是存储在HBase

CubeDb OLAP

  • kyin一个cube分析工具,底层的数据就是存储在Hbase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求

消息/订单

  • 在电信领域、银行领域不少的订单查询底层的存储,另外不少通信、消息同步的应用构建HBase之上

Feeds流

  • 典型的应用就是XX朋友圈类型的应用,用户可以随时发布新内容,评论、点赞

NewSQL

  • 之上有Phoenix的插件,可以满足二级索引,SQL的查询,对接传统数据需要SQL非事务的需求

其他

  • 存储爬虫数据
  • 海量数据备份
  • 短网址

# HBase的特点

  1. 强一致性的读写操作

  2. 自动分块:region划分

  3. 自动的故障转移

  4. hbasei可以和HDFS进行集成本身基于HDFS

  5. hbasei可以和MR进行集成:

  6. 支持普通的java API

  7. 支持Thrift接口API:可以通过此API实现和HUE的集成工作

  8. 块缓存和布隆过滤器

  9. hbase提供管理界面

上次更新: 2025/6/10 17:21:17
Redis

← Redis

最近更新
01
md
06-10
02
Redis
06-10
03
01应用介绍
06-10
更多文章>
Theme by Vdoing | Copyright © 2025-2025 Cyan Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式