Apache Accumulo 2.0.0
05 Sep 2017
These are draft release notes for a future release of Accumulo!
Please view the latest release notes.
Apache Accumulo 2.0.0 is a significant release.
New API for creating connections to Accumulo
A fluent API for clients to build
Connector objects was introduced in ACCUMULO-4784.
The new API deprecates
ClientConfiguration and introduces its own properties
accumulo-client.properties that ships with the Accumulo tarball.
See the client documentation for more information on how to use the new API.
Simplified Accumulo scripts and configuration files
Accumulo’s scripts and configuration were refactored in ACCUMULO-4490 to make Accumulo
easier to use. The number of scripts in the
bin directory of the Accumulo release tarball
has been reduced from 20 scripts to the four scripts below:
accumulo- mostly left alone except for improved usage
accumulo-service- manage Accumulo processes as servcies
accumulo-cluster- manage Accumulo on cluster. Replaces
accumulo-util- combines many utility scripts into one script.
Read this blog post for more information on this change.
Scan executors were added to support prioritizing and dedicating scan resources. Each executor has a configurable number of threads and an optional custom prioritizer. Tables can be configured in a flexible way to dispatch scans to different executors.
Official Accumulo docker image was created
--upload-accumulo-siteoption was added to
accumulo initto set properties in accumulo-site.xml to Zookeeper during initialization.
-o <key>=<value>option was added to the
accumulocommand to override configuration that could not be set in Zookeeper.
Updated and improved Accumulo documentation
Accumulo’s documentation has been refactored with the following improvements:
- Documentation source now lives in accumulo-website repo so changes are now immediately viewable.
- Improved navigation using a new sidebar
- Better linking to Javadocs, between documentation pages, and to configuration properties.
Accumulo’s documentation was also reviewed and changes were made to improve accuracy and remove out of date documentation.
Moved Accumulo Examples to its own repo
The Accumulo examples were moved out the accumulo repo to the accumulo-examples repo which has the following benefits:
- The Accumulo examples are no longer released with Accumulo and can be continuously improved.
- The Accumulo API version used by the examples can be updated right before Accumulo is released to test for any changes to the API that break semver.
Simplified Accumulo logging configuration
The log4j configuration of Accumulo services was improved in ACCUMULO-4588 with the following changes:
- Logging is now configured using standard log4j JVM property ‘log4j.configuration’ in accumulo-env.sh.
- Tarball ships with fewer log4j config files (3 rather than 6) which are all log4j properties files.
- Log4j XML can still be used by editing accumulo-env.sh
- Removed auditLog.xml and added audit log configuration to log4j-service properties files
- Accumulo conf/ directory no longer has an examples/ directory. Configuration files ship in conf/ and are used by default.
- Accumulo monitor by default will bind to 0.0.0.0 but will advertise hostname looked up in Java for log forwarding
- Switched to use full hostnames rather than short hostnames for logging
Removed comparison of Value with byte in Value.equals()
Replaced the ability to use
Value.equals(byte) to check if the contents of a
Value object was equal to a given byte array in ACCUMULO-4726. To perform
that check, you must now use the newly added
method. This corrects the behavior of the
equals method so that it conforms
to the API contract documented in the javadoc inherited from its superclass.
However, it will break any code that was relying on the undocumented and broken
behavior to compare
Value objects with byte arrays. Such comparisons will now
false instead of
true, even if the contents are equal.
Other Notable Changes
- ACCUMULO-3652 - Replaced string concatenation in log statements with slf4j where applicable. Removed tserver TLevel logging class.
- ACCUMULO-4733 - Introduced a new configuration option, crypto.security.provider, to allow for a configurable security provider for crypto. If unset, it will default to the system level Provider list.
- ACCUMULO-4737 - Renamed configuration option crypto.cipher.algorithm.name to crypto.cipher.key.algorithm.name. The option now functions as described in the user manual. Introduced a new configuration option, crypto.wal.cipher.suite, to allow for a separate configuration for WAL files. If unset, this will default to the value for crypto.cipher.suite.
- ACCUMULO-4449 - Removed ‘slave’ terminology and replaced with ‘tserver’ in most cases. The former ‘slaves’ config file is now named ‘tservers’. Added checks to scripts to fail if ‘slaves’ file is present.
View the Upgrading Accumulo documentation for guidance.
View all releases in the archive