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. hdu 5039 线段树+dfs序

    http://acm.hdu.edu.cn/showproblem.php?pid=5039 给定一棵树,边权为0/1.m个操作支持翻转一条边的权值或者询问树上有多少条路径的边权和为奇数. 用树形df ...

  2. 设计模式--Singleton_(1)(C#版)

    今天我们来探索一下Singleton设计模式的实现及应用场景. Singleton模式属于Creational Type(创建型)设计模式的一种.该模式一般用于确保在应用中仅创建一个某类的instan ...

  3. 零开始:NetCore项目权限管理系统:登录授权

    喜欢NetCore的朋友,欢迎加群QQ:86594082 源码地址:https://github.com/feiyit/SoaProJect 管理员的模型 namespace FytSoa.Core. ...

  4. 构建NetCore应用框架之实战篇(三):BitAdminCore框架功能规划选择

    本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性. 构建NetCore应用框架之实战篇系列 一.BitAdminCore功能规划 如何选择框架的落地功能,前篇文章 ...

  5. Chrome浏览器插件开发-淘宝自动登录

    浏览器插件的介绍 Chrome浏览器插件开发的准备工作 manifest.json配置介绍 页面如何注入scripts文件 一. 浏览器插件的介绍 浏览器插件是一种遵循一定规范的应用程序接口编写出来的 ...

  6. Django 定时任务实现(django-crontab+command)

    一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...

  7. module.export与export的区别?

    对于大多数node初学者而言, module.exports应该都是理解的, 但多出来一个exports获取就有些疑问了 疑问一: 既然有module.exports了为什么还要有exports? 疑 ...

  8. class字节码结构(一)(字节码结构和字节常量池的结构)

    <Java虚拟机原理图解> 1.1.class文件基本组织结构 关于变量的几个叫法: 局部变量/全局变量:很好区分根据所在位置. 类变量:静态的全局变量. 类常量:全局的final修饰的变 ...

  9. request.getParameter("name")获取参数为null和空字符串的区别

    1.获取到的值为空字符串 当url里有name属性,但是没有值的时候,后台用request.getParameter("name")获取到的是空字符串 2.获取到的值为null 当 ...

  10. 在Ubuntu中增加root用户登录

    一:增加root用户登录 1.打开终端,输入:sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 2.在弹出的编辑框里输入:gree ...