Great!
zhou_shuaif...@sina.com From: Enis Söztutar Date: 2015-02-24 16:28 To: hbase-user; dev@hbase.apache.org Subject: [ANNOUNCE] Apache HBase 1.0.0 is now available for download The HBase Team is pleased to announce the immediate release of HBase 1.0.0. Download it from your favorite Apache mirror [1] or maven repository. HBase 1.0.0 is the next stable release, and the start of "semantic versioned" releases (See [2]). The 1.0.0 release has three goals: 1) to lay a stable foundation for future 1.x releases; 2) to stabilize running HBase cluster and its clients; and 3) make versioning and compatibility dimensions explicit Including previous (developer preview) 0.99.x releases, 1.0.0 contains over 1500 jiras resolved on top of 0.98.0. Some of the major changes are: API reorganization and changes HBase’s client level API has evolved over the years. To simplify the semantics and to support and make it extensible and easier to use in the future, we revisited the API before 1.0. To that end, 1.0.0 introduces new APIs, and deprecates some of the commonly-used client side APIs (HTableInterface, HTable and HBaseAdmin). We advise to update your application to use the new style of APIs, since deprecated APIs will be removed in future releases (2.x). See [3] and [4] for an overview of changes. All Client side API's are marked with InterfaceAudience.Public class, indicating that the class/method is an official "client API" for HBase (See “11.1.1. HBase API Surface” in the HBase Refguide[2] for more details on the Audience annotations) Going forward, all 1.x releases are planned to be API compatible for classes annotated as client public. Read availability using timeline consistent region replicas This release contains Phase 1 items for experimental "Read availability using timeline consistent region replicas" feature. A region can be hosted in multiple region servers in read-only mode. One of the replicas for the region will be primary, accepting writes, and other replicas will be sharing the same data files. Read requests can be done against any replica for the region with backup RPCs for high availability with timeline consistency guarantees. More information can be found at HBASE-10070. Online config change and other forward ports from 0.89-fb branch HBASE-12147 forward ported online config change which enables some of the configuration from the server to be reloaded without restarting the region servers. Master runs a Region Server as well Starting with 1.0.0, the HBase master server and backup master servers will also act as a region server. RPC port and info port for web UI is shared for the master and region server roles. Active master can host regions of defined tables if configured (disabled by default). Backup masters will not host regions. Other notable improvements in 1.0.0 are listed (but not limited to) below: - A new web skin in time for 1.0 (http://hbase.apache.org) - [HBASE-5349] - Automatic tuning of global memstore and block cache sizes - Various security, tags and visibility labels improvements - Bucket cache improvements (usability and compressed data blocks) - [HBASE-11367] - A new pluggable replication endpoint to plug in to HBase's inter-cluster replication to replicate to a custom data store - [HBASE-11885] - A Dockerfile to easily build and run HBase from source - [HBASE-8332] - Truncate table command - [HBASE-11059] - Region assignment to use hbase:meta table instead of zookeeper for faster region assignment (disabled by default) - Extensive documentation improvements - [HBASE-12511] - namespace permissions - add support from table creation privilege in a namespace 'C' - [HBASE-12568] - Adopt Semantic Versioning and document it in the book - [HBASE-12640] - Add Thrift-over-HTTPS and doAs support for Thrift Server - [HBASE-12651] - Backport HBASE-12559 'Provide LoadBalancer with online configuration capability' to branch-1 - [HBASE-10560] - Per cell TTLs - [HBASE-11997] - CopyTable with bulkload - [HBASE-11990] - Make setting the start and stop row for a specific prefix easier - [HBASE-12220] - Add hedgedReads and hedgedReadWins metrics - [HBASE-12032] - Script to stop regionservers via RPC - [HBASE-11907] - Use the joni byte[] regex engine in place of j.u.regex in RegexStringComparator - [HBASE-11796] - Add client support for atomic checkAndMutate - [HBASE-11804] - Raise default heap size if unspecified - [HBASE-12126] - Region server coprocessor endpoint - [HBASE-12075] - Preemptive Fast Fail - [HBASE-12363] - Improve how KEEP_DELETED_CELLS works with MIN_VERSIONS - [HBASE-12434] - Add a command to compact all the regions in a regionserver - [HBASE-8707] - Add LongComparator for filter - [HBASE-12286] - [shell] Add server/cluster online load of configuration changes - [HBASE-12361] - Show data locality of region in table page - [HBASE-12496] - A blockedRequestsCount metric - [HBASE-12730] - Backport HBASE-5162 (Basic client pushback mechanism) to branch-1 - [HBASE-12731] - Heap occupancy based client pushback - [HBASE-12728] - buffered writes substantially less useful after removal of HTablePool - [HBASE-5699] - Run with > 1 WAL in HRegionServer - Various fixes to REST server - Internal refactoring for abstracting away zookeeper usage - Better support for Cell interface internally in read and write paths for better performance and flexibility - Combining internal mvcc and seqId infrastructure - [HBASE-10156][HBASE-8755] - Ring buffer based WAL improvements - [HBASE-9117] - Switch to using new style of client APIs internally - Perf improvements - Numerous improvements in other areas and bug fixes. 1.0.0 release has these changes in default behavior (see [4]) - [HBASE-12241] - Zookeeper 3.4.x is required - [HBASE-10781] - Hadoop-2.x is required - [HBASE-11666] - JDK-1.7 is required - Default ports have changed from 600XX range into out of ephemeral 160XX range. - Hfile version 3 has been enabled by default. - Slab cache has been removed (use bucket cache instead) - [HBASE-11804] - Default heap for region servers (and master) is changed from 1GB to the jdk's default. On most platforms, it will default to 1/4 of physical memory - [HBASE-10602] - Some client facing APIs (HTableInterface, etc) has been deprecated and replaced. - Custom Filter implementations should switch to using the new recommended APIs. - Some authorization permissions (especially regarding namespaces) have been changed (HBASE-12511, HBASE-8015) - [HBASE-11178] - Mapred package and classes under there has been un-deprecated. - Two new modules (jar files): hbase-annotations and hbase-rest. - HTrace dependency is moved to the Apache artifacts [7] - Various updates to dependency versions Full list of the issues can be found at: - 1.0.0 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12325852 - 0.99.2 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12325675 - 0.99.1 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12328551 - 0.99.0 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12328822 Compatibility ----------------- Source Compatibility: Client side code in HBase-1.0.0 is (mostly) source compatible with earlier versions. Some minor API changes might be needed from the client side. Wire Compatibility: HBase-1.0.0 release is wire compatible with 0.98.x releases. Clients and servers running in different versions as long as new features are not used should be possible. A rolling upgrade from 0.98.x clusters to 1.0.0 is supported as well. 1.0.0 introduces a new file format (hfile v3) that is enabled by default that 0.96.x code cannot read. Thus, rolling upgrade from 0.96 directly to 1.0.0 is not supported. 1.0.0 is NOT wire compatible with earlier releases (0.94, etc). Binary Compatibility: Binary compatibility at the Java API layer with earlier versions (0.98.x, 0.96.x and 0.94.x) is NOT supported. You may have to recompile your client code and any server side code (coprocessors, filters etc) referring to hbase jars. Upgrading -------------- See [5] for upgrade instructions and extended discussion on the changes. From 0.98.x : Upgrade from 0.98.x in regular upgrade or rolling upgrade fashion is supported. From 0.96.x : Upgrade from 0.96.x is supported with a shutdown and restart of the cluster. From 0.94.x : Upgrade from 0.94.x is supported similar to upgrade from 0.94 -> 0.96. The upgrade script should be run to rewrite cluster level metadata. See [6] for details. Supported Hadoop versions -------------------------------------- 1.0.0 release drops support for Hadoop-1.x releases. Only Hadoop-2.x releases are supported. Hadoop-2.4.x, Hadoop-2.5.x and Hadoop-2.6.x releases are the most tested hadoop releases and we recommend running with those or later versions. Earlier Hadoop-2 based releases, hadoop-2.2.x and 2.3.x are not tested to the full extend. More information can be found at [8] Supported Java versions ---------------------------------- 1.0.0 release drops support for JDK6. Only JDK7 is supported. JDK8 support is experimental. More information can be found at [9]. HBase-1.0.0 is marked as the current stable version, and we encourage all users to start using this version. Thanks to everybody who contributed to this release! Cheers, The HBase Team 1. http://www.apache.org/dyn/closer.cgi/hbase/ 2. https://hbase.apache.org/book/upgrading.html#hbase.versioning 3. http://www.slideshare.net/xefyr/apache-hbase-10-release 4. http://s.apache.org/hbase-1.0-api 5. https://hbase.apache.org/book/upgrade1.0.html#upgrade1.0.changes 6. https://hbase.apache.org/book/upgrade1.0.html#upgrade1.0.from.0.94 7. https://htrace.incubator.apache.org/ 8. https://hbase.apache.org/book/configuration.html#hadoop 9. https://hbase.apache.org/book/configuration.html#java