Skip to content

wombach/docker-apache-atlas

 
 

Repository files navigation

Atlas version License: Apache 2.0 Docker Pulls

Apache Atlas Docker image

This Apache Atlas is built from the 2.2.0-release source tarball and patched to be run in a Docker container.

Atlas is built with embedded HBase + Solr and it is pre-initialized, so you can use it right after image download without additional steps.

If you want to use external Atlas backends, set them up according to the documentation.

Basic usage

  1. Pull the latest release image:
docker pull sburn/apache-atlas

https://jsta.github.io/r-docker-tutorial/04-Dockerhub.html

docker build -t apache-atlas-image .
docker image ls
docker login --username=wombach
docker tag fabf8e81e3c0 wombach/docker-apache-atlas:221
docker push wombach/docker-apache-atlas:221
docker save verse_gapminder > verse_gapminder.tar

run the docker container

docker run -d -p21000:21000 --name atlas2 wombach/docker-apache-atlas:221 /opt/apache-atlas-2.1.0/bin/atlas_start.py

you can add --no-cache in docker build to make sure you start from scratch

  1. Start Apache Atlas in a container exposing Web-UI port 21000:
docker run -d \
    -p 21000:21000 \
    --name atlas \
    wombach/docker-apache-atlas \
    /opt/apache-atlas-2.2.0/bin/atlas_start.py

Please, take into account that the first startup of Atlas may take up to few mins depending on host machine performance before web-interface become available at http://localhost:21000/

Web-UI default credentials: admin / admin

Usage options

Gracefully stop Atlas:

docker exec -ti atlas /opt/apache-atlas-2.1.0/bin/atlas_stop.py

Check Atlas startup script output:

docker logs atlas

Check interactively Atlas application.log (useful at the first run and for debugging during workload):

docker exec -ti atlas tail -f /opt/apache-atlas-2.1.0/logs/application.log

Run the example (this will add sample types and instances along with traits):

docker exec -ti atlas /opt/apache-atlas-2.1.0/bin/quick_start.py

Start Atlas overriding settings by environment variables (to support large number of metadata objects for example):

docker run --detach \
    -e "ATLAS_SERVER_OPTS=-server -XX:SoftRefLRUPolicyMSPerMB=0 \
    -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC \
    -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution \
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dumps/atlas_server.hprof \
    -Xloggc:logs/gc-worker.log -verbose:gc -XX:+UseGCLogFileRotation \
    -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1m -XX:+PrintGCDetails \
    -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps" \
    -p 21000:21000 \
    --name atlas \
    sburn/apache-atlas \
    /opt/apache-atlas-2.1.0/bin/atlas_start.py

Start Atlas exposing logs directory on the host to view them directly:

docker run --detach \
    -v ${PWD}/atlas-logs:/opt/apache-atlas-2.1.0/logs \
    -p 21000:21000 \
    --name atlas \
    sburn/apache-atlas \
    /opt/apache-atlas-2.1.0/bin/atlas_start.py

Start Atlas exposing conf directory on the host to place and edit configuration files directly:

docker run --detach \
    -v ${PWD}/pre-conf:/opt/apache-atlas-2.1.0/conf \
    -p 21000:21000 \
    --name atlas \
    sburn/apache-atlas \
    /opt/apache-atlas-2.1.0/bin/atlas_start.py

Start Atlas with data directory mounted on the host to provide its persistency:

docker run --detach \
    -v ${PWD}/data:/opt/apache-atlas-2.1.0/data \
    -p 21000:21000 \
    --name atlas \
    sburn/apache-atlas \
    /opt/apache-atlas-2.1.0/bin/atlas_start.py

Tinkerpop Gremlin support

Image contains build-in extras for those who want to play with Janusgraph, and Atlas artifacts using Apache Tinkerpop Gremlin Console (gremlin CLI).

  1. You need Atlas container up and running as shown above.

  2. Install gremlin-server and gremlin-console into the container by running included automation script:

docker exec -ti atlas /opt/gremlin/install-gremlin.sh
  1. Start gremlin-server in the same container:
docker exec -d atlas /opt/gremlin/start-gremlin-server.sh
  1. Finally, run gremlin-console interactively:
docker exec -ti atlas /opt/gremlin/run-gremlin-console.sh

Gremlin-console usage example:

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----

gremlin>:remote connect tinkerpop.server conf/remote.yaml session
==>Configured localhost/127.0.0.1:8182-[d1b2d9de-da1f-471f-be14-34d8ea769ae8]
gremlin> :remote console
==>All scripts will now be sent to Gremlin Server - [localhost/127.0.0.1:8182]-[d1b2d9de-da1f-471f-be14-34d8ea769ae8] - type ':remote console' to return to local mode
gremlin> g = graph.traversal()
==>graphtraversalsource[standardjanusgraph[hbase:[localhost]], standard]
gremlin> g.V().has('__typeName','hdfs_path').count()

Environment Variables

The following environment variables are available for configuration:

Name Default Description
JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
ATLAS_OPTS any additional java opts you want to set. This will apply to both client and server operations
ATLAS_CLIENT_OPTS any additional java opts that you want to set for client only
ATLAS_CLIENT_HEAP java heap size we want to set for the client. Default is 1024MB
ATLAS_SERVER_OPTS any additional opts you want to set for atlas service.
ATLAS_SERVER_HEAP java heap size we want to set for the atlas server. Default is 1024MB
ATLAS_HOME_DIR What is is considered as atlas home dir. Default is the base location of the installed software
ATLAS_LOG_DIR Where log files are stored. Defatult is logs directory under the base install location
ATLAS_PID_DIR Where pid files are stored. Defatult is logs directory under the base install location
ATLAS_EXPANDED_WEBAPP_DIR Where do you want to expand the war file. By Default it is in /server/webapp dir under the base install dir.

Building

docker build . -t docker-apache-atlas:2.2.0.4

docker images -> gives you the

docker tag wombach/docker-apache-atlas:2.2.0.4

docker run -d -p 21000:21000 --name atlas220 wombach/docker-apache-atlas:2.2.0 /opt/apache-atlas-2.2.0/bin/startup.sh

If you want to connect to the embedded Kafka, you will need the followign run command: docker run -d --network=host --name atlas220 wombach/docker-apache-atlas:2.2.0.2 /opt/apache-atlas-2.2.0/bin/startup.sh

docker ps provides you with the container Iid

for debugging check the log file docker exec -it /bin/bash

publish the image to docker hub docker push wombach/docker-apache-atlas:2.2.0.4

docker tag a1a6377f55bd wombach/docker-apache-atlas:latest docker push wombach/docker-apache-atlas:latest

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there to see if your issue has already been reported. If you spotted it first, help us smash it by providing detailed and welcomed feedback.

Maintainer

This image is maintained by Vadim Korchagin

Creating additional users in keycloak

examples of using the keycloak part https://github.com/marcospereirampj/python-keycloak/blob/master/README.md

About

This Apache Atlas is built from the latest release source tarball and patched to be run in a Docker container.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 86.2%
  • Shell 7.0%
  • Dockerfile 6.8%