Search code examples
pythonproxyaccumulo

How does one use the Accumulo proxy with python bindings?


Looking for some help to set up the Accumulo proxy. The proxy readme points to ../readme for building and installing with the proxy server but ../readme doesn't say anything about the proxy :)

my goal is to prototype a small python app that calls the accumulo api using the proxy. if anyone has done this I would appreciate a brief list of steps prereqs :)


Solution

  • As it turns out when you build Accumulo, the proxy is also built.

    • Configure the $ACCUMULO_HOME/proxy/proxy.properties file ( instance and zookeepers )
    • You can then start the server daemon like this:

    ${ACCUMULO_HOME}/bin/accumulo proxy -p ${ACCUMULO_HOME}/proxy/proxy.properties

    • Install the correct version of python.
    • On some node you need to install thrift and have access to its libraries.
    • Also you need to install the python thrift packages ( sudo pythonx.x setup.py install )
    • Make sure your thrift and python versions match for the required version of Accumulo you are using. thrift 0.9.0 and python 2.6+ for Accumulo 1.5.0
    • Generate the python bindings ( thrift --gen py $ACCUMULO_HOME/proxy/thrift/proxy.thrift ) -Run the example client
    $PYTHONPATH=path/to/generated/api:path/to/thrift/libs python TestClient.py
    

    [ I put the generated bindings and thrift libs in /usr/local so it would look something like this, also note that I needed the thrift module in site-packages on the path ]

    $PYTHONPATH=/usr/local/include/gen-py/:/usr/local/lib/:/usr/lib/python2.4/site-packages/ python2.7 proxy/examples/python/TestClient.py 
    

    Hope that helps people new to thrift that hope to do stuff in python :)