Hbase是什么
hbase的历史
Hbase开始于谷歌发表的一片论文《大表:一个半结构化数据的分布式存储系统》,最初的开发人员是MichaelStack和JimKellerman,他们看了谷歌的论文写了hbase程序,2007年4月,HBase做为一个模块提交到Hadoop的代码库中,代码量~8000行,2010年5月HBase成为Apache的顶级项目。
hbase加入hadoop生态为hbase社区发展带来了巨大的便利,但是依赖于hdfs和MapReduce使得hbase不太适合处理小数据。
hbase特点和使用场景
高可靠性 : hdfs存储副本
高性能 : mr程序 利用多台机器的计算能力
可伸缩性 : 扩展存储资源和运算资源都很容易(hadoop特性)
列式存储 :按key value 存储的字节数据
单维度查询较快,支持高并发,稀疏表但不会占用空间
适合使用 : 单一维度查询
单表数据千万,并发量高
不够灵活,处理时间较长
不适合使用:需要数据分析,数据不超过千万
原理
使用前准备
1 zookeeper正常运行 hbase借助zk维护集群
2 hdfs正常 hbase接触hdfs存储数据
3所有节点的时间同步
client
提供访问接口
zookeeper
1通过选举保证集群中只有一个leader
2master 和regionserver启动时会向zk注册
3存储所有region的寻址入口 存储hbase元数据 索引表 —meta—具体的机器
4监控 regionserver的上下线
hmaster
1分配数据存储在哪个regionserver上
2为regionserver 分配数据
3负责负载均衡
4发现失效的regionserver 重新分配上面的region
5管理用户操作
regionserver
1管理master为期分配的region
2处理客户端的读写请求
3负责和底层的hdfs交互,存储到hdfs上
4负责region的拆分
5storefile的合并
6负载均衡