本系统解决的问题

Hadoop文件系统不适合存储大量小文件,但如果我们的业务还是需要存储大量小文件,就需要另一种解决方案

 

1.HBase简介

HBase是一个分布式的,面向列的开源数据库,适合非结构化存储

HBase是基于Hadoop的核心HDFS系统进行数据存储

HBase可以存储超大数据并适合用来进行大数据的实时查询

HBase是解决大数据领域内实时查询问题的

图片 存hbase hbase存文件合适吗_Hadoop

 

 

2.HBase与HDFS

  • HBase建立在Hadoop文件系统上,利用了Hadoop文件系统的容错能力
  • HBase提供对数据的随机实时读写访问功能
  • HBase内部使用哈希表,并存储索引,可将在HDFS文件中的数据进行快速查找

3.HBase 使用场景

  • 瞬间写入量很大,常用数据库不好支撑或需要很高成本支撑的场景
  • 数据需要长久保存,且量会持久增长到比较大的场景
  • HBase不适用于有join,多级索引,表关系复杂的数据类型

 

4.HBase概念

  • NameSpace 可以把NameSpace理解为关系型数据库的"数据库"
  • Table 表名必须是能用在文件路径里的合法名字(HBase里的表会映射成HDFS里的文件)
  • ROW 在表里面,每一行代表着一个数据对象,每一行都是以一个行键(RowKey)来进行唯一标识。行键并没有什么特定的数据类型,行键以二进制的字节存储
  • Column Hbase的列有CloumnFamily和ColumnQuailfier组成,由冒号(:)进行间隔。比如family:quailfier
  • ColumnFamily 列族 在定义HBase表的时候需要提前设置好列族,表中所有的列都需要组织在列族里面
  • ColumnQualifier 列限定词 列族中的数据通过列标识来进行映射,可以理解为一个键值对,ColumnQuailfier就是key
  • Cell 每一个 行键,列族,列标识共同组成的一个单元
  • Timestamp 每个值都会有一个timestamp,作为该值特定版本的标识符

 

看到了2-5