本系统解决的问题
Hadoop文件系统不适合存储大量小文件,但如果我们的业务还是需要存储大量小文件,就需要另一种解决方案
1.HBase简介
HBase是一个分布式的,面向列的开源数据库,适合非结构化存储
HBase是基于Hadoop的核心HDFS系统进行数据存储
HBase可以存储超大数据并适合用来进行大数据的实时查询
HBase是解决大数据领域内实时查询问题的
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