第二章 Hbase
01 Hbase简介
什么是HBase
1 | HBase是一个开源的NoSQL数据库,参考google的BigTable建模,使用Java语言实现,运行于HDFS文件系统上,为Hadoop提供类似BigTable的服务,可以存储海量稀疏的数据,并具备一定的容错性、高可靠性及伸缩性。 |
HBase的发展历程
1 | Apache HBase最初是Powerset公司为了处理自然语言搜索产生的海量数据而开展的项目 |

HBase特性
1 | 容量巨大 |
容量巨大

列存储

稀疏性
1 | 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。 |
扩展性
1 | 纵向扩展:不断优化主服务器的性能,提高存储空间和性能 |
高可靠性
1 | 基于HDFS的多副本机制 |
Hbase安装
单机模式
1 | 以本地文件系统作为基础,所有进程运行在一个JVM上,一般用于测试 |
伪分布式
1 | 主从模式,以hdfs文件系统为基础,所有进程运行在一个JVM中 |
1 | 修改:hbase-env.sh,hbase-site.xml文件 |
分布式
1 | 主从模式,以hdfs文件系统为基础,守护进程运行在多个jvm上 |
02 HDFS原理
HDFS- 分布式文件系统
1 | HDFS即Hadoop分布式文件系统(Hadoop Distributed File System) |
HDFS基本架构
HDFS- 块
HDFS-NameNode
HDFS-SecondaryNameNode
1 | 定期的合并edits和fsimage文件 |

HDFS-DataNode
HDFS读文件流程

HDFS读写机制-读文件机制

HDFS读写机制-写文件机制

HDFS副本机制

HDFS容错

1 | 1、NameNode出错:用Secondary NameNode备份的fsimage恢复 |
03 Hbase组件和功能
HBase 架构


1 | Client |
1 | HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的HRegion server上。 |

