Skip to content
Permalink
Browse files
#10 - Created instructions for using proxy with python (#11)
  • Loading branch information
mikewalch committed Nov 26, 2019
1 parent 7a74561 commit 435d845fdf98ed68198f2598feef97ee8235d161
Showing 10 changed files with 100 additions and 1 deletion.
@@ -41,8 +41,35 @@ Thrift language binding).
./bin/accumulo-proxy -p conf/proxy.properties -c $ACCUMULO_HOME/conf/accumulo-client.properties
```

# Build language specific bindings

Bindings have been built in `src/main/` for Java, python, and ruby.

Bindings for other languages can be built using the Thrift compiler. Follow the [Thrift tutorial]
to install a Thrift compiler and use the following command to generate language bindings.

```
thrift -r --gen <language> <Thrift filename>
```

# Create an Accumulo client using Python

Run the commands below to install the Python bindings and create an example client:

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

[accumulo]: https://accumulo.apache.org
[Thrift]: https://thrift.apache.org
[Thrift tutorial]: https://thrift.apache.org/tutorial/
[li]: https://img.shields.io/badge/license-ASL-blue.svg
[ll]: https://www.apache.org/licenses/LICENSE-2.0
[mi]: https://maven-badges.herokuapp.com/maven-central/org.apache.accumulo/accumulo-proxy/badge.svg
@@ -51,4 +78,3 @@ Thrift language binding).
[jl]: https://www.javadoc.io/doc/org.apache.accumulo/accumulo-proxy
[ti]: https://travis-ci.org/apache/accumulo-proxy.svg?branch=master
[tl]: https://travis-ci.org/apache/accumulo-proxy

@@ -0,0 +1 @@
AccumuloProxy.egg-info/
@@ -0,0 +1 @@
AccumuloProxy.egg-info/
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,47 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#! /usr/bin/env python

import sys

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TCompactProtocol

from accumulo import AccumuloProxy
from accumulo.ttypes import *

transport = TSocket.TSocket('localhost', 42424)
transport = TTransport.TFramedTransport(transport)
protocol = TCompactProtocol.TCompactProtocol(transport)
client = AccumuloProxy.Client(protocol)
transport.open()

login = client.login('root', {'password':'secret'})

print client.listTables(login)

testtable = "pythontest"
if not client.tableExists(login, testtable):
client.createTable(login, testtable, True, TimeType.MILLIS)

row1 = {'a':[ColumnUpdate('a','a',value='value1'), ColumnUpdate('b','b',value='value2')]}
client.updateAndFlush(login, testtable, row1)

cookie = client.createScanner(login, testtable, None)
for entry in client.nextK(cookie, 10).results:
print entry
@@ -0,0 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from distutils.core import setup

setup(
name='AccumuloProxy',
version='2.0.0',
packages=['accumulo',],
license='Apache License, Version 2.0',
long_description=open('../../../README.md').read(),
)

0 comments on commit 435d845

Please sign in to comment.