title: Apache Accumulo 3.0.0 sortableversion: ‘03.00.00’
About
Apache Accumulo 3.0.0 is a non-LTM major version release. While it primarily contains the 2.1 codebase, including all patches through 2.1.2, it has also removed a substantial number of deprecated features and code, in an attempt to clean up several years of accrued technical debt, and lower the maintenance burden to make way for future improvements. It also contains a few other minor improvements.
Notable Removals
- {% ghi 1328 %} The FileSystem monitor has been removed and will no longer watch for problems with local file systems and self-terminate. System administrators are encouraged to use whatever systems health monitoring is appropriate for their deployments, rather than depend on Accumulo to monitor these.
- {% ghi 2443 %} The MapReduce APIs embedded in the accumulo-core module were removed. The separate
accumulo-hadoop-mapreduce
jar is their replacement. - {% ghi 3073 %} The legacy Connector and Instance client classes were removed. The AccumuloClient is their replacement.
- {% ghi 3080 %} The cross-data center replication feature was removed without replacement due to lack of being maintained, having numerous outstanding unfixed issues with no volunteer to maintain it since it was deprecated, and substantial code complexity. The built-in replication table it used for tracking replication metadata will be removed on upgrade.
- {% ghi 3114 %}, {% ghi 3115 %}, {% ghi 3116 %}, {% ghi 3117 %} Removed deprecated VolumeChooser, TabletBalancer, Constraint, and other APIs, in favor of their SPI replacements.
- {% ghi 3106 %} Remove deprecated configuration properties (see 2.1 property documentation for which ones were deprecated)
- {% ghi 3112 %} Remove CompactionStrategy class in favor of CompactionSelector and CompactionConfigurer.
- {% ghi 3160 %} Remove upgrade code for versions prior to 2.1 (minimum version to upgrade from is now 2.1.
- {% ghi 3192 %} Remove arguments to server processes, such as (
-a
, -g
, -q
, etc.) were removed in favor of configuration properties that can be specified in the Accumulo configuration files or supplied on a per-process basis using the -o
argument. The provided cluster management reference scripts were updated in {% ghi 3197 %} to use the -o
method. - {% ghi 3136 %} Remove the built-in VFS classloader support. To use a custom classloader, users must now set the ContextClassLoaderFactory implementation in the properties. The default is now the URLContextClassLoaderFactory.
- {% ghi 3318 %} Remove the old bulk import implementation, replaced by the new bulk import API added in 2.0.0.
- {% ghi 3265 %} Remove scan interpreter and scan formatter from the shell
- {% ghi 3361 %} Remove all remaining references to the old “master” service (renamed to “manager”).
- {% ghi 3360 %} Remove checks and code related to the old password hashing mechanism in Accumulo. This will discontinue warnings about users passwords that are still out of date. Instead, those outdated passwords will simply become invalid. If the user authenticated to Accumulo at any time prior to upgrading, their password will have been converted. So this only affects accounts that were never used with 2.1 at all. As mitigation, such users will be able to have their password reset by the root user. If the root user never authenticated (and neither had another admin user) while on 2.1 (very very unlikely), an administrator can reset the entire user database through the normal init step to reset security.
- {% ghi 3378 %} Remove broken support for old map files. (RFiles have been in use for a long time, so this should not impact any users; if users had been trying to use map files, they would have found that they were broken anyway)
Notable Additions
- {% ghi 3088 %} New methods were added to compaction-related APIs to share information about the current tablet being compacted to user code
- {% ghi 3107 %} Decompose internal thrift services by function to make RPC functionality more modular by server instances
- {% ghi 3189 %} Standardized server lock data structure in ZooKeeper
- {% ghi 3206 %} Internal caches now use Caffeine instead of Guava's Cache
- {% ghi 3161 %}, {% ghi 3288 %} The internal service (renamed from GarbageCollectionLogger to LowMemoryDetector) that was previously used only to report low memory in servers, was made configurable to allow pausing certain operations like scanning, minor compactions, or major compactions, when memory is low. See the server properties for
general.low.mem.*
.
Upgrading
View the Upgrading Accumulo documentation for guidance.
Useful Links
This release also includes bug fixes from 2.1.2 and earlier.