https://github.com/apache/accumulo-proxy
Apache Accumulo Proxy
https://github.com/apache/accumulo-proxy
accumulo big-data hacktoberfest thrift
Last synced: 5 months ago
JSON representation
Apache Accumulo Proxy
- Host: GitHub
- URL: https://github.com/apache/accumulo-proxy
- Owner: apache
- License: apache-2.0
- Created: 2018-10-12T16:11:04.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-12-02T20:50:58.000Z (5 months ago)
- Last Synced: 2024-12-02T21:35:22.932Z (5 months ago)
- Topics: accumulo, big-data, hacktoberfest, thrift
- Language: Java
- Homepage: https://accumulo.apache.org
- Size: 5.01 MB
- Stars: 9
- Watchers: 15
- Forks: 20
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[Apache Accumulo][accumulo] Proxy
--
[![Build Status][ti]][tl] [![Maven Central][mi]][ml] [![Javadoc][ji]][jl] [![Apache License][li]][ll]This application acts as an Apache Accumulo Java client, and exposes its API as
an Apache [Thrift] service so that users can use their preferred programming
language to communicate with Accumulo (provided that language has a supported
Thrift language binding).# Running the Accumulo proxy
1. Build the proxy tarball and install it.
```
cd /path/to/accumulo-proxy
mvn clean package -Ptarball
tar xzvf ./target/accumulo-proxy-2.0.0-SNAPSHOT-bin.tar.gz -C /path/to/install
```2. Edit `proxy.properties` and run the proxy.
```
cd /path/to/install/accumulo-proxy-2.0.0-SNAPSHOT
./bin/accumulo-proxy -p conf/proxy.properties
```# Docker Environment
The Accumulo Proxy can also now be packaged and started in a Docker container, see the [DOCKER.md](DOCKER.md) for full details.
# 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
```# Create an Accumulo client using Python
Run the commands below to install the Python bindings and create an example Python client:
```bash
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
```# Create an Accumulo client using Ruby
Run the command below to create an example Ruby client:
```bash
mkdir accumulo-client/
cd accumulo-client/
cp /path/to/accumulo-proxy/src/main/ruby/Gemfile .
vim Gemfile # Set correct path
cp /path/to/accumulo-proxy/src/main/ruby/client.rb .
gem install bundler
bundle install
bundle exec ruby client.rb
```# Java clients to Proxy
[Java clients] to the Proxy can be written to limit access to the cluster. The proxy can be placed
on a server in the cluster and clients can communicate with proxy from outside of the cluster.[Java clients]: docs/java_client.md
[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
[ml]: https://maven-badges.herokuapp.com/maven-central/org.apache.accumulo/accumulo-proxy/
[ji]: https://www.javadoc.io/badge/org.apache.accumulo/accumulo-proxy.svg
[jl]: https://www.javadoc.io/doc/org.apache.accumulo/accumulo-proxy
[ti]: https://github.com/apache/accumulo-proxy/workflows/QA/badge.svg
[tl]: https://github.com/apache/accumulo-proxy/actions