http://www.cnblogs.com/LBSer/p/3330383.html

9月初淘宝飞芃做了一个关于HBase的分享,讲的激情飞扬,让听众收益匪浅,现做下简单总结。

HBase是一个NoSQL数据库,在国内外被广泛使用,是bitTable的开源实现,主要由FaceBook、Cloudera、Yahoo!和ebay等大公司贡献,国内贡献主要是华为和阿里系,其中淘宝还有一个代码commiter。飞芃首先对HBase做了简要介绍,着重强调它的一些特点。之后又讲了Hbase不好的地方,以及使用的注意点,最后介绍了HBase在淘宝的一些应用。

1. HBase的特点

a)强一致性:同一行数据读写在同一个regionserver上

b)水平伸缩:region的自动分裂以及master的balance

c)行事务:同一行的写入是原子的,这是由于同一行数据读写在同一个regionserver上决定的

d)支持范围查询

e)高性能随即写

上面的特点让我觉得HBase是Hash和树的这两种数据结构的结合体。首先HBase使用了Hash,比如根据rowkey获得value,还使用了树,正因为是棵树,所以具有分裂、支持范围查询等特性。

2.HBase不好的地方

a)没有二级索引,使用时需要将自己写索引表,这个索引表也存在HBase里

b)没有在线备份与还原策略

c)不稳定,使用有风险,比如NameNode单点,一旦挂了,整个HBase集群挂了,RegionServer挂掉后需要一些时间切换,Region分裂时服务不可用

3.HBase在淘宝的应用

个人感觉是最精华的部分,HBase在淘宝里用在三个地方:

a)实时推荐、实时报表、实时计费

这类应用的特点是大量数据的实时写入以及读取

b)大数据量类型项目

比如历史类或需要长期保存的数据

c)二次分析类型项目

Hadoop集群做粗粒度分析,在线做二次分析,比如数据魔方。

4.讨论

会后讨论的时候,飞芃着重强调了HBase的不稳定,需要专业团队维护,比如淘宝有一百多人的技术团队专门维护Hadoop和HBase集群,而且使用淘宝内部的HBase版本。针对一些同学提出的业务需求是否适合HBase的问题,飞芃建议要综合考虑应用规模等因素,但是如果选择了HBase,必须要有团队专门维护。

NoSQL之HBase的更多相关文章

  1. 图解Nosql(hbase)与传统数据库的区别

    图解Nosql(hbase)与传统数据库的区别http://www.aboutyun.com/thread-7804-1-1.html(出处: about云开发) 问题导读:1.nosql数据库能否删 ...

  2. NoSQL: Cassandra, HBase, RocksDB

    转自: http://www.linkedin.com/pulse/nosql-cassandra-hbase-rocksdb-siddharth-anand I've had the pleasur ...

  3. BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览

    一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...

  4. hbase实战——(1.1 nosql介绍)

    什么是nosql NoSQL(NoSQL = Not Only SQL),意思是不仅仅是SQL的扩展,一般指的是非关系型的数据库. 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0 ...

  5. NoSQL生态系统——hash分片和范围分片两种分片

    13.4 横向扩展带来性能提升 很多NoSQL系统都是基于键值模型的,因此其查询条件也基本上是基于键值的查询,基本不会有对整个数据进行查询的时候.由于基本上所有的查询操作都是基本键值形式的,因此分片通 ...

  6. Phoenix实现用SQL查询HBase

    博客已转移,请借一步说话,http://www.weixuehao.com/archives/111 HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HBase shel ...

  7. 数据库SQL,NoSQL之小感悟

    遇到1000万数据表 最近遇到一个问题,就是单表数据过的存储及查询问题.举个例子:1000万的数据存在一个表中,字段4-5个样子,日常 开发中难免要做过滤.排序.分页.如果把这几个放在一起即要过滤又要 ...

  8. HBase 笔记

    参考资料:HBase权威指南 一行由若干列组成,若干列又构成一个列族一个列族的所有列存储在同一个底层的存储文件里,这个文件叫HFile列族的数量有限制:一个列族里列的数量没限制谓词删除:例如允许用户只 ...

  9. 【转】Redis学习---NoSQL和SQL的区别及使用场景

    什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...

随机推荐

  1. Citrus Engine简单Demo

    Citrus Engine是一个的开源flash平台(platform,也可以说是卷轴类)游戏引擎,它基于Starling Framework添加了各种物理引擎,3D引擎,动画引擎. Citrus实现 ...

  2. Android-Activity跳转时动画

    Activity跳转时动画,是在跳转Activity,或者在Activity结束返回 等,用到的进入效果: 第一种效果展示: 第一个Activity的代码: package liudeli.activ ...

  3. Android App 退出整个应用

    在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作: ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束: pub ...

  4. MVC2 阻止公共方法被调用

    阻止公共方法被调用 using System.Web.Mvc; namespace MvcApplication1.Controllers { public class WorkController ...

  5. Day 11 函数名,闭包,装饰器. +作业

    '''一.函数名.def func(): print(5555)print(func)#输出结果 <function func at 0x026B5E88> 打印函数地址. # 1. 函数 ...

  6. TOJ2470

    #include <stdio.h> struct node{ int x; int y; int step; }first; int zx[4]={-1,0,1,0}; int zy[4 ...

  7. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  8. jzoj4724

    DJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列. 通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的: F(1)=1;F(2)=1;F(n)=F(n-1)+F( ...

  9. 2018年Android面试题含答案--适合中高级(下)

    这里是我整理出来的面试题,答案我花了很久的时间.加上我自己的理解整理出来的,作者不易,请谅解.有答案的的:https://xiaozhuanlan.com/topic/6132940875   1.A ...

  10. [Python]Threading.Thread之Daemon线程

    之前对Daemon线程理解有偏差,特记录说明: 一.什么是Daemon A thread can be flagged as a "daemon thread". The sign ...