Hbase--的介绍及应用场景

1、介绍

起源

  • 21世纪的前3架马车的三篇论文
    • GFS→HDFS
    • MapReduce→MapReduce
    • Bigtable→Hbase

实时和离线的区别

  • 大数据本质:对数据进行处理,从数据中获取价值
    • 数据的价值会随着时间的流逝而逐渐降低
  • 离线:数据已经产生了一段时间,然后再对数据进行处理
    • T+1:今天处理昨天的数据
    • 年度账单:一年处理一次
    • 时效性:小时级别以上
  • 实时:数据只要一产生就立即进行处理
    • 实时风控
    • 实时推荐
    • 时效性:秒级别以内
      • 上一秒数据刚产生,下一秒立即对数据处理完成进行应用
  • 如何构建实时?
    • 数据实时产生
    • 数据实时采集:Flume
    • 数据实时存储:Hbase、Kafka
    • 数据实时处理:Flink、SparkStreaming
    • 数据实时应用

Bigtable/Hbase设计思想

  • 需求:如何快速的读写大数据?
  • 分布式解决方案:存储大数据
    • 分布式数据库
    • 通过数据库、表等结构来管理存储的大数据
    • Hive
      • 通过数据库与表的形式来管理大数据
      • 底层还是HDFS
      • 基于文件实现行和列的数据管理
        • 读取某行或者读取某一列必须读文件
    • HDFS
      • 应用场景:一次写入,多次读取
      • 基于磁盘的分布式存储:随机读写磁盘

问题1:在计算机中,如何能实现数据的快速的读写访问?

  • 计算机中数据的存储:硬盘、内存
  • 读写速度:由快到慢
    • 顺序读写内存
    • 顺序读写磁盘
    • 随机读写内存
    • 随机读写磁盘
  • 数据必须在内存中,才能提高读写的性能
  • Hbase是优先读写内存
    • 写入:先写内存
    • 读取:先读内存

问题2:内存比较小,如何能存储大数据?

  • 分布式的设计
    • 构建分布式的内存存储
      • 写入Hbase的数据会被分区,写入不同的机器的内存
      • 100GB的数据,10台机器【32GB*10 = 320GB】
      • 每台机器的内存中写入10GB

问题3:内存的容量永远满足不了数据的存储?

  • 数据不可能永远存储在内存中
  • 数据处理的规律中:新数据被处理的概率要远大于老的数据
  • 解决
    • 新的数据存储在内存中
      • 新的数据和经常被使用的数据
    • 老的数据进行持久化在硬盘上
    • 问题:如果我想读老的数据怎么办?
      • 第一次从硬盘中读,读完以后,会把这个数据放入缓存【内存】
        • 后面再读取这个数据,直接从缓存中读取即可
      • 排序:将所有写入硬盘的数据构建有序
        • 从有序的数据中查找数据是非常快的

问题4:硬盘容易损坏,如果硬盘中的数据丢失了怎么办?

  • 如何能保证硬盘坏了数据依旧可以读取?
    • 将数据存储在HDFS
      • HDFS的数据存储在硬盘中
      • 通过副本来保证数据不会丢失

总结

  • 通过构建分布式内存来优先读写数据
    • 写:内存
      • 定期将内存中的老的数据写入HDFS
      • 将内存腾出空间存储新的数据
      • 先读内存
      • 如果没有就读缓存【内存】
      • 如果没有就读HDFS
      • 读完以后,将数据放入缓存
  • 底层用HDFS来实现数据的持久化
  • 既实现了数据的快速读写,又保证了数据的安全
  • 与Hive的底层主要的区别
    • Hive -> 读写 -> HDFS
      • 基于文件的行
    • Hbase -> 优先读写内存 -> 读写HDFS
      • 基于文件的列
  • 官网:hbase.apache.org
    在这里插入图片描述
  • Apache HBase™ is the Hadoop database, a distributed, scalable, big data store.
  • hbase是hadoop的数据库,一个分布式可扩展大数据的存储框架
  • Use Apache HBase™ when you need random, realtime read/write access to your Big Data.
  • 当你需要随机实时的读写访问你的大数据可以使用hbase

2、功能

  • 实现快速的随机的实时读写大数据

3、应用场景

  • 电商
    • 大量的商品和订单信息都存储在后台的数据库中
    • MySQL存储近半年的订单
    • Hbase可以存储所有商品的信息
  • 游戏
    • 订单、操作、升级
  • 金融
    • 每一笔消费
  • 电信
    • 短信、电话
    • 打印通话记录
  • 交通
    • 马路上的探头
  • 实时的高性能的随机大数据量的读写

猜你喜欢

转载自blog.csdn.net/qq_46893497/article/details/114181210