Accumulo Clients in Other Programming Languages

Date:   16 Dec 2019

Apache Accumulo has an Accumulo Proxy that allows communication with Accumulo using clients written in languages other than Java. This blog post shows how to run the Accumulo Proxy process using Uno and communicate with Accumulo using a Python client.

First, clone the Accumulo Proxy repository.

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

Assuming you have Uno set up on your machine, configure uno.conf to start the Accumulo Proxy by setting the configuration below:

export POST_RUN_PLUGINS="accumulo-proxy"
export PROXY_REPO=/path/to/accumulo-proxy

Run the following command to set up Accumulo again. The Proxy will be started after Accumulo runs.

uno setup accumulo

After Accumulo is set up, you should see the following output from uno:

Executing post run plugin: accumulo-proxy
Installing Accumulo Proxy at /path/to/fluo-uno/install/accumulo-proxy-2.0.0-SNAPSHOT
Accumulo Proxy 2.0.0-SNAPSHOT is running
    * view logs at /path/to/fluo-uno/install/logs/accumulo-proxy/

Next, follow the instructions below to create a Python 2.7 client that creates an Accumulo table named pythontest and writes data to it:

mkdir accumulo-client/
cd accumulo-client/
pipenv --python 2.7
pipenv install thrift
pipenv install -e /path/to/accumulo-proxy/src/main/python
cp /path/to/accumulo-proxy/src/main/python/basic_client.py .
# Edit credentials if needed
vim basic_client.py
pipenv run python2 basic_client.py

Verify that the table was created or data was written using uno ashell or the Accumulo monitor.

View all posts in the news archive