NoSQL之HBase
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的更多相关文章
- 图解Nosql(hbase)与传统数据库的区别
图解Nosql(hbase)与传统数据库的区别http://www.aboutyun.com/thread-7804-1-1.html(出处: about云开发) 问题导读:1.nosql数据库能否删 ...
- NoSQL: Cassandra, HBase, RocksDB
转自: http://www.linkedin.com/pulse/nosql-cassandra-hbase-rocksdb-siddharth-anand I've had the pleasur ...
- BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览
一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...
- hbase实战——(1.1 nosql介绍)
什么是nosql NoSQL(NoSQL = Not Only SQL),意思是不仅仅是SQL的扩展,一般指的是非关系型的数据库. 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0 ...
- NoSQL生态系统——hash分片和范围分片两种分片
13.4 横向扩展带来性能提升 很多NoSQL系统都是基于键值模型的,因此其查询条件也基本上是基于键值的查询,基本不会有对整个数据进行查询的时候.由于基本上所有的查询操作都是基本键值形式的,因此分片通 ...
- Phoenix实现用SQL查询HBase
博客已转移,请借一步说话,http://www.weixuehao.com/archives/111 HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HBase shel ...
- 数据库SQL,NoSQL之小感悟
遇到1000万数据表 最近遇到一个问题,就是单表数据过的存储及查询问题.举个例子:1000万的数据存在一个表中,字段4-5个样子,日常 开发中难免要做过滤.排序.分页.如果把这几个放在一起即要过滤又要 ...
- HBase 笔记
参考资料:HBase权威指南 一行由若干列组成,若干列又构成一个列族一个列族的所有列存储在同一个底层的存储文件里,这个文件叫HFile列族的数量有限制:一个列族里列的数量没限制谓词删除:例如允许用户只 ...
- 【转】Redis学习---NoSQL和SQL的区别及使用场景
什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...
随机推荐
- line tension
<!DOCTYPE html> <html> <head> <title>tension</title> <script type=& ...
- Android-Android7.0-java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
某个AndroidProject项目在Android5.0系统运行是OK的,在Android7.0以上版本运行,报以下错误❌ 2019-01-02 15:33:39.996 17067-17067/? ...
- Activity-fragment-ListView展示
在上一篇博客,Android-fragment简介-fragment的简单使用,介绍了简单的使用: 这篇博客主要讲解,在fragment做处理事情(Activity的事情) Activity pack ...
- Android SQLiteOpenHelper Sqlite数据库的创建与打开
Android Sqlite数据库是一个怎样的数据库? 答:是一种嵌入式小型设备,移动设备,的数据库,应用在穿戴设备(例如:智能手表,计算手环 等等),移动设备(例如:Android系统类型的手机 等 ...
- C#判断本地文件,网络文件是否存在是否存在
File.Exists 方法 (String) 确定指定的文件是否存在. 命名空间: System.IO程序集: mscorlib(位于 mscorlib.dll) 参数 path Type: ...
- C# 二维码/条形码入门操作
效果图: 先给之前的群友道个歉,说声不好意思.QRCoder 只支持二维码,没有条形码. 以上demo生成条形码是用 BarcodeLib 这个库,识别是用 zxing,二维码生成用 QRCoder, ...
- Divide and Conquer-169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appear ...
- Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】
一.文件操作步骤 step1:打开文件,得到文件句柄并赋值给一个变量step2:通过句柄对文件进行操作step3:关闭文件 举例: a = open('hello world', 'r', encod ...
- 题解 P1731 【生日蛋糕】
题面传送门 如果不懂DFS,请自觉睡觉: 如果不懂剪枝,请自觉睡觉: 啊哈,大家的思路一定和我一样--DFS,找个数组存储半径和高,可是如单单使用DFS不加剪枝的话,10分--20分. 所以,我们来想 ...
- 【codeforces 623E】dp+FFT+快速幂
题目大意:用$[1,2^k-1]$之间的证书构造一个长度为$n$的序列$a_i$,令$b_i=a_1\ or\ a_2\ or\ ...\ or a_i$,问使得b序列严格递增的方案数,答案对$10^ ...