zoukankan      html  css  js  c++  java
  • 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版本。

  • 相关阅读:
    初识函数
    文件操作
    set集合,深浅拷⻉以及部分知识点补充
    is和==的区别以及编码、解码
    python数据类型三(字典)
    python数据类型二(列表和元组)
    python数据类型一(重点是字符串的各种操作)
    python基础二
    python基础一
    【1】 肿瘤医学研究前言进展
  • 原文地址:https://www.cnblogs.com/yyy-blog/p/11846738.html
Copyright © 2011-2022 走看看