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

Reply via email to