设为首页 加入收藏

TOP

关于hbase应用的一些看法
2019-03-05 01:43:07 】 浏览:70
Tags:关于 hbase 应用 一些 看法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ITlyng/article/details/56012357

在现在很多大型互联网的分布式应用中,针对于高并发和海量数据的存储问题,一种常见的解决方案就是针对mysql/oracle等关系型数据库的,业务拆分,分库分表,这样做虽然能够提高应用的并发处理能力和查询性能,但是也会带来一系列新的问题:

1.单表的事务上升为跨表,跨库甚至分布式的事务;

2.由于数据被切分到不同的表,不同的库中去,多表之间的关联与连接查询变得困难;

3.在查询相关数据时,需要指定路由字段找到对应的库或者对应的表进行查询,较于以往的查询,变得复杂;

4.如果对于系统进行更进一步的扩容和扩展,会变得非常复杂;

基于以上问题的出现,许多应用开始寻找其他比较好的替代方案,hbase和搜索引擎便是其中的两种:

hbase是apache hadoop项目下的一个子项目,能够很好的支持海量数据的存储,能够以更友好,更方便的方式支持表的分区,能够较为方便地扩展系统的并发写入能力.而诸如solr,lucene等搜索引擎技术,则可以解决mysql/oracle分库分表之后产生的多表关联查询问题,以及查询时必须带路由字段的问题.

hbase是一种实时读/写的列存储数据库,本质上就是一张稀疏的大表,用来存储粗粒度的结构化数据(相对于关系型数据库来说),可以通过增加节点来实现系统的扩展,

hbase运行在分布式文件系统hdfs之上,利用它可以在廉价的pc server上搭建大规模的结构化数据存储引擎,

在hbase的组织形式中,每个列属于一个特定的列族,通过行和列来确定一个存储单元,而每个存储单元又可以通过时间戳来区分,

hbase集群中通常包含两种角色,hmaster和hregionserver,当表随着记录的增加而不断变大时,就会分裂成一个一个的region,一个hregionserver可以管理多个region,而hmaster来负责hregionserver的调度及集群状态的监管,使得hbase能够同时在多个节点同时写入,提高了并发写入的性能,

但是,hbase难以支持诸如group by,order by,join等方式的复杂查询,所以在一些特定的应用场景下并不适用;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python 连接 Hbase happybase 下一篇HBase-压缩和分割原理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目