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:
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:
export POST_RUN_PLUGINS="accumulo-proxy"
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:
- basic client - creates a table, writes data to it, and then reads it
- namespace client - shows how to manage Accumulo namespaces.
Java
Users may want to write a Java client to the proxy to restrict access to the cluster.