The Accumulo Proxy allows the interaction with Accumulo with languages other than Java. A proxy server is provided in the codebase and a client can further be generated. The proxy API can also be used instead of the traditional AccumuloClient class to provide a single TCP port in which clients can be securely routed through a firewall, without requiring access to all tablet servers in the cluster.

Prerequisites

The proxy server can live on any node in which the basic client API would work. That means it must be able to communicate with the Manager, ZooKeepers, NameNode, and the DataNodes. A proxy client only needs the ability to communicate with the proxy server.

Running the Proxy Server

To run Accumulo Proxy server, first clone the repository:

  1. git clone https://github.com/apache/accumulo-proxy

Next, follow the instructions in the Proxy README.md or use Uno to run the proxy.

To run the Proxy using Uno, configure uno.conf to start the Proxy by setting the configuration below:

  1. export POST_RUN_PLUGINS="accumulo-proxy"
  2. export PROXY_REPO=/path/to/accumulo-proxy

Proxy Client Examples

The following examples show proxy clients written in Java, Ruby, and Python.

Ruby

The Accumulo Proxy repo has an example ruby client along with instructions on how to run it.

Python

The Accumulo Proxy repo has two example Python scripts that can be run using these instructions:

Java

Users may want to write a Java client to the proxy to restrict access to the cluster.