ITPub博客

首页 > 大数据 > > 问题-HBase和Leveldb、Rocksdb有哪些异同,并做了哪些提升? 关注者 12 被浏览

问题-HBase和Leveldb、Rocksdb有哪些异同,并做了哪些提升? 关注者 12 被浏览

作者:浪花小雨滴 时间:2020-05-09 11:01:41 0 删除 编辑
作者:jameswhale
链接:https://www.zhihu.com/question/351366744/answer/862704911
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这两年在项目中分别用到了Leveldb、Rocksdb、HBase,可以详细介绍一下三者的区别和联系。

Leveldb和Rocksdb都属于嵌入式数据库,内部没有设计成C/S网络结构,必须和服务部署在同一台服务器。Levledb是Google的两位Fellow (Jeaf Dean和Sanjay Ghemawat)设计和开发的嵌入式K-V系统,读写性能非常彪悍,官方网站报道其写性能40万/s,读性能达到6万/s,写操作要远快于读操作。Rocksdb是Facebook公司在Leveldb基础之上开发的一个嵌入式K-V系统,在很多方面对Leveldb做了优化和增强,更像是一个完整的产品,比如:

1)Leveldb是单线程合并文件,Rocksdb可以支持多线程合并文件,充分利用多核的特性,加快文件合并的速度,避免文件合并期间引起系统停顿;

2)Leveldb只有一个Memtable,若Memtable满了还没有来得及持久化,则会引起系统停顿,Rocksdb可以根据需要开辟多个Memtable;

3)Leveldb只能获取单个K-V,Rocksdb支持一次获取多个K-V。

4)Levledb不支持备份,Rocksdb支持全量和备份。

虽然说Rocksdb底层支持HDFS,数据可以多副本存储,但是前端没有分片,仍然无法满足分布式系统的可扩展要求。

实际中,可以将Levledb或者Rocksdb作为数据存储系统引擎,在其上面实现分片和多副本,从而实现一个真正的分布式存储系统,例如微信开源的PaxosStore,默认就是以Rocksdb作为其某个副本的存储介质,上层通过Paxos协议来保证副本之间的数据一致性。

HBase是一个真正的分布式存储系统,既可提供在线K-V查询,也可提供离线的Scan批量查询(Levledb和Rocksdb也可以Scan)。上层使用HMaster、HRegionServer、Zookeeper来实现分片管理,包括容灾迁移、负载均衡、分片等,并提供Java Api来对外提供数据访问(C/S 模式,可跨网络),底层使用HDFS实现数据的多副本存放。

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

下一篇: Docker 容器连接
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40093