Riak学习(3):Riak对比HBase(转)

简介: 文章转自:http://blog.nosqlfan.com/html/4081.html 文章来自Riak官方wiki,是一篇Riak与HBase的对比文章。Riak官方的对比通常都做得很中肯,并不刻意偏向自家产品。本文也是一样。 对比的Riak版本是1.1.x,HBase是0.94.x。 大方面对比 Riak 与 HBase 都是基于 Apache

对比的Riak版本是1.1.x,HBase是0.94.x。

大方面对比

  • Riak 与 HBase 都是基于 Apache 2.0 licensed 发布
  • Riak 的实现是基于 Amazon 的 Dynamo 论文,HBase 是基于 Google 的 BigTable
  • Riak 主要用 Erlang 写成,包括一部分的C,而 HBase 是用 Java 写的。

功能性对比

功能点 Riak HBase
数据模型 Riak 通过bucket作为命名空间,存储 Key-Value 信息

HBase 按预先定义好的 column family 结构来存储数据(每一条数据有一个key以及若干个列属性值组成,每列的数据都有自己的版本信息)。HBase 中的数据是按列进行有序存储的(不像关系型数据库中按行存储)。

存储引擎 Riak 采用模块化的思想,将存储层作为引擎挂到系统上。你可以根据自己的需要选择不同的存储引擎。

你也可以甚至 Riak 的 backend API实现你自己的存储引擎。

HBase 是存在于 HDFS之上的,其数据文件存在HDFS中。与BigTable 类似,数据存储分为内存中的 MemStore 和落地存储的 StoreFiles。其数据文件称为HFile,基于BigTable 的SSTable。可以直接使用JVM的 文件系统IO操作来对数据文件进行操作。

数据访问接口 除了直接使用 Erlang 之外,Riak 还提供了两种数据访问接口,REST方式和 Protocol Buffer :

Riak 的客户端都是基于上面的API来实现,目前对主流的语言支持很好。

HBase 的操作主要通过在JVM中直接执行代码。HBase 也提供了外部数据访问方式,包括REST方式以及Thrift协议的访问。

数据操作方式 Riak中支持下面四种方式的操作

HBase 有两种方式的数据操作,通过对有序key值进行扫描查询,获取value值,或者借助强大的Hadoop来进行MapReduce查询

数据一致性问题 Riak 通过 vector clock的方式来维护数据版本,处理不一致的情况。同时你也可以不使用vector clock,而是采用基于时间戳的 “last-write-wins” 策略

HBase 采用了强一致性的读写保证。数据会在多个不同的region中进行保存。Column families 可以包含无限多个数据版本,每个版本可以有自己的TTL

并发 Riak 集群中的所有节点都能同时进行读写操作,Riak只负责进行数据的写入操作(基于vector clock进行带版本控制的保存),在数据读取的时候再来定义数据冲突的处理逻辑。 HBase 通过行级锁来保证写操作的原子性,但是不支持多行写操作的事务性。数据扫描操作不保证一致性。

复制 Riak 的数据复制系统的理论来源主要是Dynamo 的论文和 Eric Brewer 博士的 CAP 理论。Riak 采用一致性hash对数据进行分片,同一份数据会在多个节点中保存备份。在一致性hash的理论支持下,Riak采用的是虚拟节点的方式来实现数据的复制并进行数据平衡分配的保证。引入虚拟节点使得数据与实际节点间能够保持松耦合

Riak 的API 提供在一致性和可用性之间的自由选择,你可以根据自己的应用场景选择不同策略。在最初存储数据到Riak中时,可以按bucket为单位进行复制方式的配置。在后续的读写操作中,每次都能够再进行复制份数的设置。

HBase 是典型的最终一致性实现,数据复制通过 master向slave的推送来实现。最近HBase也添加了master-master 的实现。

扩展性 Riak 支持动态添加我删除节点,所有节点都对等,不存在主从的区别。当向Riak 中添加一个节点后,集群会通过gossiping 发现节点并分配对应的数据范围并进行数据迁移。移除节点的过程相反。Riak提供了一系列工具来完成节点的增删操作。

HBase 以regions为单位进行分片,region会分裂和合并,并自动在多个节点间分配。Regions

多数据中心的数据同步 只有Riak的企业版才支持多数据中心的部署方案,通常用户仅支持单数据中心的部署。

HBase通过region来进行分片,天然就支持多数据中心的部署。

图形化的监控管理工具 从Riak 1.1.x 开始,Riak 发布了 Riak Control,这是一个针对Riak的开源的图形化管理工具。

HBase 有一些开源社区开发的图形化工具,同时也有一个命令行的控制终端能用。

来源:wiki.basho.com

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
9月前
|
SQL 缓存 Java
【大数据】HBase入门学习 3
【大数据】HBase入门学习
87 0
|
9月前
|
存储 大数据 分布式数据库
【大数据】HBase入门学习 2
【大数据】HBase入门学习
83 0
|
9月前
|
存储 分布式计算 Hadoop
【大数据】HBase入门学习 1
【大数据】HBase入门学习
84 0
|
存储 NoSQL 关系型数据库
每日积累【Day 3】Hbase架构深入学习
每日积累【Day 3】Hbase架构深入学习
每日积累【Day 3】Hbase架构深入学习
|
大数据 Shell 分布式数据库
基于mac构建大数据伪分布式学习环境(六)-部署HBase
本文主要讲解列式数据库HBase的单机部署方式与配置
109 0
|
Java 分布式数据库 Ruby
HBase Filter 过滤器之 Comparator 原理及源码学习
HBase所有的比较器实现类都继承于父类ByteArrayComparable,而ByteArrayComparable又实现了Comparable接口;不同功能的比较器差别在于对父类compareTo()方法的重写逻辑不同。 下面分别对HBase Filter默认实现的七大比较器一一进行介绍。 1. BinaryComparator 介绍:二进制比较器,用于按字典顺序比较指定字节数组。 先看一个小例子: public class BinaryComparatorDemo { public static void main(String[] args) {
433 0
|
Hbase 分布式数据库 Serverless
1元包年,阿里云HBase Serverless开启大数据学习与测试的新时代
阿里云HBase Serverless 版是基于HBase,使用Serverless架构构建的一套新型的HBase 服务。 阿里云HBase Serverless版真正把HBase变成了一个服务,用户无需提前规划资源,选择CPU,内存资源数量,购买集群。在应对业务高峰,业务空间增长时,也无需进行扩容
4667 0
1元包年,阿里云HBase Serverless开启大数据学习与测试的新时代
|
存储 监控 物联网
HBase全网最佳学习资料汇总
前言 HBase这几年在国内使用的越来越广泛,在一定规模的企业中几乎是必备存储引擎,互联网企业阿里巴巴、京东、小米都有数千台的HBase集群,中国电信的话单、中国人寿的保单都是存储在HBase中。注意大公司有数十个数百个HBase集群,此点跟Hadoop集群很不相同。
5700 0
|
关系型数据库 分布式数据库 Hbase
hive_学习_02_hive整合hbase(失败)
一、前言 本文承接上一篇:hive_学习_01_hive环境搭建(单机) ,主要是记录 hive 整合hbase的流程 二、环境准备 1.环境准备 操作系统 : linux CentOS 6.
1830 0
|
分布式数据库 Apache Hbase
hbase_学习_00_资源帖
一、官方资料 1.官网:http://hbase.apache.org/ 2.官方文档:HBase 官方文档中文版   二、apache软件下载基地 1. Apache Software Foundation Distribution Directory archive.
1088 0