ITPub博客

首页 > 大数据 > > 问答-hbase为什么要搭建集群?我不能在hadoop集群里做做一个hbase吗?

问答-hbase为什么要搭建集群?我不能在hadoop集群里做做一个hbase吗?

作者:浪花小雨滴 时间:2020-05-12 16:00:20 0 删除 编辑
作者:mc幻刺
链接:https://www.zhihu.com/question/314747597/answer/622689171
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第一,hbase本来就是k-v类型列式存储的非关系型数据库,基于hadoop的hdfs文件系统是为分布式而设计。因此hbase肯定依赖于hadoop的,不能脱离hadoop而存在。

第二,hbase应用在Phoenix中去做OLTP功能的实现,其实hbase也可以当成类似redis一样数据去用的,单节点其实也没有太大关系,借助于hbase的缓存,响应速度也挺快的,restful api也挺好用的。

那么回到你的问题本质上来,为什么要建hbase集群!根据以上两点,我们知道hbase依存于hadoop的hdfs文件系统。而hadoop是干嘛的,专门为大数据而设计的,大数据当然要大,姑且PB算是门槛吧,这么多数据,哪怕是k-v数据库也吃不消。PB级数据看列的数目,我见过设计好的表,60多列采用parquet存储,可以存储5到6千亿行左右数据。而传统数据库MySQL基本单一节点的话千万级别都需要一个精通B+树,懂行的DBA才能有点路子。MySQL面试咋问的?表行数太多咋办?横向切割呗,按照region(举个例子,每个公司不一样),分布式MySQL分表分库呗,这就解决了。同样的道理,hdfs也是基于B+树实现的分布式文件系统,为了索引查询更快,hbase分布式集群当然也是必然的选择。hbase专门为此设计二级索引。

最关键一点在于,hbase基于hadoop,你不充分利用集群分布式高可用、鲁棒性,你一个节点挂了可咋办?你可是存储大数据的工具,挂了那一会儿,多少数据没了?数据涌来的时候,你要compact,一台节点这个时候只能等文件处理完毕继续工作,因为IO cpu可能时不时就警报一下,一台节点的线程和进程数目有天然限制。集群可以轻松打破这些限制,让查询并行化,更快速度的响应,更加高可用稳定,所以集群是一定要的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3119435/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40029