HBase版本进化史及大版本特性
HBase 2.0 新特性介绍
2018年4月30日HBase发布了2.0的Release版本。HBase的2.0版本承载了太多的Features,共包含4551个Issues,可以说是迄今最大的一个版本。
- A new Region assignment manager
AssignmentManager V2("AMv2")基于Procedure V2实现,能够更快速的分配Region,维护的region状态机存储不再依赖于ZooKeeper,能够更好的应对Region长时间RIT问题。
- Offheaping of Read/Write
减少对Heap内存的使用,改用Offheap区的内存,有效减少GC压力
- In-Memory Compaction
重新设计了CompactingMemStore 替代 DefaultMemStore,CompactingMemStore中的数据达到一定大小以后,不是直接Flush成HDFS中的HFile文件,而是先Flush到内存中的一个不可改写的Segment,这样,内存中的多个Segments可以预先合并,当达到一定的大小以后,才Flush成HDFS中的HFile文件,这样做的好处是希望有效降低Compaction所带来的写IO放大问题。
- NettyRpcServer
HBase2.0 开始默认使用NettyRpcServer
使用Netty替代HBase原生的RPC server,大大提升了HBaseRPC的吞吐能力,降低了延迟
- Async RPC Client
HBase2.0 Client不在是原来同步等待,而是利用异步RPC机制,大大提高Client端请求并发度,有效提高资源利用率,扩大吞吐。
- RegionServer Group
在HBase 2.0中我们可以将RegionServer划分到多个逻辑Group中,这样可以提供多租户的能力。
- Support for MOB
MOB特性使得HBase支持存储小于10MB 的中等媒体对象数据,这些小对象文件采用独立的HFile文件进行存储,相比原来直接存储大对象插入hbase,其读写效率更高;Mob数据存储还是以hfile格式存储,兼容HBase现有特性,如snapshot、bulkload、replication等。MOB数据文件有独立的compaction和expire clean机制,稳定性更可控。
- 与1.x版本的兼容性
1.x版本的Client可以访问2.0版本的集群,进行正常的数据读写操作。但从1.x版本不停服务的情况下滚动升级到2.0版本是没法做到的,1.x版本的coprocessor/Endpoint不做改动的情况下也无法在2.0版本中正常使用。
HBase1.0 新特性介绍
- API的变化,比如放弃了客户端几个重要的API:( HTableInterface, HTable,HBaseAdmin),建议程序升级到新的API,老的PAI会在2.X中删除。
- 不重启regionserver的情况下读取配置文件。
- master节点也运行regionserver。master与regionserver共享RPC端口。
- global memstore和block cache大小的自动调整。
- Bucket cache改进(data blocks的可用性和压缩方面)
- 集群中一个新的可插拔式的终端来复制成自定义存储。(A new pluggable replication endpoint to plug in to HBase's inter-cluster replication to replicate to a custom data store)
- 新增truncate table 命令
- 新增meta table来替代zk来进行更快的region分配(此功能默认是关闭都)
- 广泛的文档改进
- [HBASE-12511] - namespace permissions - add support from table creation privilege in a namespace 'C'
- 位Thrift Server添加Thrift-over-HTTPS 和 doAs支持(?)
- bulkload复制表
- 使用前缀设置一个行的开始和结束更加easy了。
- 脚本停止regionserver使用RPC
- 客户端的原子性检查和变化的支持。
- 自动增加heap size的值如果开始没有指定大小的话。
- regionserver协处理器终端。
- 添加了在一个regionserver上压缩所有region的命令。
- 添加LongComparator过滤器
- [shell]在线加载配置文件的改变。
- REST server的一些修复。
- 需要zk3.4.X的支持。
- 需要hadoop2.x的支持
- jdk1.7,不再支持1.6
- 默认的端口号已经由600xx改成了160XX
- 默认使用hfile version3
- Slab cache已经被移除,使用bucket cache
- 默认的regionserver堆内存由1G改为jdk默认的数值,一般为物理内存的四分之一。
- mapred包和类已经被废除。
- 加入两个新的模块:hbase-annotations 和 hbase-rest
HBase 0.98 新特性介绍
HBase 0.98新版本中包含了一些新的安全特性:
- cell可见性标签
- cell ACL以及透明化的服务器端加密等
- 预写日志线程模型在高负载情况下可提供了更高的吞吐量
- 反向扫描器
- 快照文件MapReduce
- Stripe Compaction
HBase版本进化史
2006年至今,HBase经历了10多年的演化迭代:
- 2006年12月,Google发布了论文《Bigtable: A Distributed Storage System for Structured Data》,基于该文论的设计思想,HBase原型实现后来才得以诞生。
- 2007年02月,作为Hadoop项目的分支,第一版HBase诞生。
- 2007年10月,第一个可用的HBase版(Hadoop0.15.0)诞生。
- 2008年01月,Hadoop成为Apache的顶级项目,HBase为其子项目。
- 2008年10月,HBase 0.18.0版本发布。
- 2009年01月,HBase 0.19.0版本发布。
- 2009年10月,HBase 0.20.0版本发布。
- 2010年05月,HBase晋升为Apache的顶级项目。
- 2010年06月,HBase 首个开发者版本(0.89.20100621)发布。
- 2011年01月,Hbase 首个可持续的,稳定版(0.90.0)版本发布。
- 2012年01月,Hbase 0.92.0版本发布,支持事物(coprocessor)和安全(security)作为其版本标签。
- 2012年05月,HBase 0.94.0版本发布,性能作为其版本标签。
- 2013年01月,HBase 0.96.0版本发布。
- 2014年02月,0.98.0版本发布,该版本也是很多国内公司最早使用的版本。
- 2015年02月,HBase 1.0.0版本发布。
- 2016年02月,HBase 1.2.0版本发布。
- 2017年05月,HBase 1.2.6版本发布,作为其1.2版本的稳定版标签。
- 2018年04月,HBase 期待已久的2.0.0版本正式发布。
- 2018年06月,Hbase Hbase2.0.1版本发布。
HBase0.98.0、HBase1.2.6版本、HBase1.4+版本是目前很多互联网公司主流版本,系统稳定性、可靠性等都经受了很多考验。另外,对于想紧跟社区步伐,体验新功能的同学,可以使用最新的2.0版本。
HBase版本进化史及大版本特性的更多相关文章
- 【RMAN】RMAN跨版本恢复(下)--大版本异机恢复
[RMAN]RMAN跨版本恢复(下)--大版本异机恢复 BLOG文档结构图 ORACLE_SID=ORA1024G 关于10g的跨小版本恢复参考:http://blog.chinaunix.net/u ...
- 滴滴HBase大版本滚动升级之旅
桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知.新版本为我们带来了丰富的新特性,在性能.稳定性与易用性方便也均有很大提升.我们将整个升级过程中面临的 ...
- Go 语言的下一个大版本:Go 2.0 被安排上了(全面兼容1.X,改进错误处理和泛型这两大主题)
今年 8 月 Go 开发团队公布了 Go 2.0 的设计草案,包括错误处理和泛型这两大主题.现在备受瞩目的 Go 2.0 又有了新动向 —— 昨日 Go 开发团队在其官方博客表示,Go 2 已经被安排 ...
- Elasticsearch 6.x版本全文检索学习之分布式特性介绍
1.Elasticsearch 6.x版本全文检索学习之分布式特性介绍. 1).Elasticsearch支持集群默认,是一个分布式系统,其好处主要有两个. a.增大系统容量,如内存.磁盘.使得es集 ...
- cocos3.2版本中的一些新特性
1.设置屏幕分辨率的大小,需要手动添加: 2.去掉了所有CC开头的命名: 3.所有的单例(以前是采用shared开头方法),全部改为getInstance(); 4.cocos3.x以上的版本支持C+ ...
- xmake v2.1.5版本正式发布,大量新特性更新
此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍. 更多使用说明,请阅读:文档手册. 项目源码:Github, Gitee. 新特性 #83: 添加 add_csnippe ...
- CAP 2.4版本发布,支持版本隔离特性
前言 自从上次 CAP 2.3 版本发布 以来,已经过去了几个月的时间,这几个月比较忙,所以也没有怎么写博客,趁着2019年到来之际(现在应该是2019年开始的时候),CAP也发布了2018年的最后一 ...
- [51CTO]给您介绍Windows10各大版本之间区别
给您介绍Windows10各大版本之间区别 随着win10的不断普及和推广,越来越多的朋友想安装win10系统了,但是很多朋友不知道win10哪个版本好用,为了让大家能够更好的选择win10系统版本, ...
- 各大版本idea永久破解激活方法
文章转载自:https://www.jiweichengzhu.com/article/a45902a1d7284c6291fe32a4a199e65c 如果还有问题,加群交流:686430774(就 ...
随机推荐
- urllib爬取实例
#汉字转码.多个参数拼接 from urllib import request base_url = "http://www.baidu.com/s?" content = inp ...
- 01、python的基础-->while循环应用
1.简单的输出小程序 name = input('请输入你的名字:') age = input('请输入你的年龄:') print('我的名字叫'+name,'我今年'+ age + '岁') 2.w ...
- samba 添加新用户
添加samba新用户需要有root权限 1. 在Linux服务器根目录下(黄色背景部分是需替换部分:换成你自己的用户名) sudo smbpasswd -a username 2. 修改samba配置 ...
- #Ubuntu16.0.4 LTS 安装RabbitMQ
1.ubuntu下安装配置rabbitmq-server服务器环境:ubuntu16.0.4(向下兼容14.0.4)软件版本:RabbitMQ 3.7.5 .Erlang 20.1.7参考文档:htt ...
- JDBC中如何进行事务处理?
Connection提供了事务处理的方法,通过调用setAutoCommit(false)可以设置手动提交事务:当事务完成后用commit()显式提交事务:如果在事务处理过程中发生异常则通过rollb ...
- Codeforces 961E - Tufurama 树状数组
转自:https://blog.csdn.net/my_sunshine26/article/details/79831362 题目大意: i从1开始 基本思路: 完全没思路,所以上来就二分,果不其然 ...
- AcWing 233. 换教室 (期望DP+floyd)打卡
题目:https://www.acwing.com/problem/content/235/ 题意:有n个时间段,这个时间段有两个地方授课ci,di,最开始是在ci,可以申请去di,但是是几率的,然后 ...
- kvm无人值守安装centos6
nginx配置 server { listen default_server; server_name _; root /home/iso; # Load configuration files fo ...
- JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十一章. 迄 ...
- 团队冲刺DAY6
团队冲刺DAY6 今天的内容是无图形界面的客户端和服务器的加密解密系统. 通信时用的socket方法,内置的密钥,端口,ip地址. 客户端: import java.io.*; import java ...