Mirror of Apache Accumulo
Java C++ Python Ruby JavaScript Shell Other
Latest commit 9b0d9e8 Aug 23, 2016 @dlmarion dlmarion Merge branch '1.8'
Permalink
Failed to load latest commit information.
assemble Merge branch '1.8' Aug 16, 2016
contrib ACCUMULO-4313 - Updated README text May 26, 2016
core Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016
docs Merge branch '1.8' Jul 22, 2016
examples/simple Merge branch '1.8' Jul 21, 2016
fate Merge branch '1.8' Jul 22, 2016
iterator-test-harness Merge branch '1.8' May 27, 2016
maven-plugin Merge branch '1.8' Jul 1, 2016
minicluster Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016
proxy Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016
server Merge branch '1.8' Aug 23, 2016
shell Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016
src/site Merge branch '1.4.5-SNAPSHOT' into 1.5.1-SNAPSHOT Jan 24, 2014
start ACCUMULO-4128: Use setiter instead of setscaniter as it does not exis… Jul 19, 2016
test Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016
.gitignore Merge branch '1.6' into 1.7 Jan 29, 2016
.travis.yml ACCUMULO-4182 Improve travis-ci notifications Jun 9, 2016
DEPENDENCIES ACCUMULO-3800 Add DEPENDENCIES file May 12, 2015
INSTALL.md ACCUMULO-3409 Move fixed ports out of ephemeral range Jul 8, 2015
LICENSE ACCUMULO-4382 Clean up license/notice files Jul 21, 2016
NOTICE ACCUMULO-4382 Clean up license/notice files Jul 21, 2016
README.md Merge branch '1.8' Jul 22, 2016
TESTING.md ACCUMULO-3936 First pass of documentation improvements for performanc… Jul 7, 2015
UPGRADING.md ACCUMULO-3551 1.7 upgrade instructions. May 12, 2015
pom.xml Revert "ACCUMULO-2589 Drop deprecated code from 1.x" Aug 22, 2016

README.md

Apache Accumulo

Build Status Maven Central Javadoc Apache License

Apache Accumulo is a sorted, distributed key/value store that provides robust, scalable data storage and retrieval.

Apache Accumulo is based on Google's BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift. It has several novel features such as cell-based access control and a server-side programming mechanism that can modify key/value pairs at various points in the data management process.

Installation

Follow these instructions to install and run an Accumulo binary distribution.

Documentation

Accumulo has the following documentation which is viewable on the Accumulo website using the links below:

  • User Manual - In-depth developer and administrator documentation.
  • Examples - Code with corresponding README files that give step by step instructions for running the example.

This documentation can also be found in Accumulo distributions:

  • Binary distribution - The User Manual can be found in the docs directory. The Examples Readmes can be found in docs/examples. While the source for the Examples is not included, the distribution has a jar with the compiled examples. This makes it easy to run them after following the install instructions.

  • Source distribution - The Example Source, Example Readmes, and User Manual Source are available.

Building

Accumulo uses Maven to compile, test, and package its source. The following command will build the binary tar.gz from source. Note, these instructions will not work for the Accumulo binary distribution as it does not include source. If you just want to build without waiting for the tests to run, add -DskipTests.

mvn package

This command produces a file at the following location.

assemble/target/accumulo-<version>-bin.tar.gz

API

The public Accumulo API is composed of :

All public types in the following packages and their subpackages excluding those named impl, thrift, or crypto.

  • org.apache.accumulo.core.client
  • org.apache.accumulo.core.data
  • org.apache.accumulo.core.security
  • org.apache.accumulo.minicluster

A type is a class, interface, or enum. Anything with public or protected acccess in an API type is in the API. This includes, but is not limited to: methods, members classes, interfaces, and enums. Package-private types in the above packages are not considered public API.

The following regex matches imports that are not Accumulo public API. This regex can be used with RegexpSingleline to automatically find suspicious imports in a project using Accumulo.

import\s+org\.apache\.accumulo\.(.*\.(impl|thrift|crypto)\..*|(?!core|minicluster).*|core\.(?!client|data|security).*)

The Accumulo project maintains binary compatibility across this API within a major release, as defined in the Java Language Specification 3rd ed. Starting with Accumulo 1.6.2 and 1.7.0 all API changes will follow semver 2.0

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

Apache Accumulo uses the built-in java cryptography libraries in its RFile encryption implementation. See oracle's export-regulations doc for more details for on Java's cryptography features. Apache Accumulo also uses the bouncycastle library for some crypographic technology as well. See the BouncyCastle FAQ for more details on bouncycastle's cryptography features.