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.
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 Master, ZooKeepers, NameNode, and the DataNodes. A proxy client only needs the ability to communicate with 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
The following examples show proxy clients written in Java, Ruby, and Python.
The Accumulo Proxy repo has an example ruby client along with instructions on how to run it.
The Accumulo Proxy repo has two example Python scripts that can be run using these instructions:
Users may want to write a Java client to the proxy to restrict access to the cluster.
[AccumuloClient]: {% jurl org.apache.accumulo.core.client.AccumuloClient %} [tutorial]: https://thrift.apache.org/tutorial/