tree: e318895d85abc8eaf8a2d445a5d75091776d941c [path history] [tgz]
  1. config/
  2. dist/
  3. downloads/
  4. patches/
  5. scripts/
  6. .dockerignore
  7. .env
  8. .gitignore
  9. docker-compose.ranger-build.yml
  10. docker-compose.ranger-db-mounted.yml
  11. docker-compose.ranger-db.yml
  12. docker-compose.ranger-hadoop.yml
  13. docker-compose.ranger-hbase.yml
  14. docker-compose.ranger-hive.yml
  15. docker-compose.ranger-kafka.yml
  16. docker-compose.ranger-kms.yml
  17. docker-compose.ranger-knox.yml
  18. docker-compose.ranger-ozone.yml
  19. docker-compose.ranger-tagsync.yml
  20. docker-compose.ranger-trino.yml
  21. docker-compose.ranger-usersync.yml
  22. docker-compose.ranger.yml
  23. Dockerfile.ranger
  24. Dockerfile.ranger-build
  25. Dockerfile.ranger-hadoop
  26. Dockerfile.ranger-hbase
  27. Dockerfile.ranger-hive
  28. Dockerfile.ranger-kafka
  29. Dockerfile.ranger-kms
  30. Dockerfile.ranger-knox
  31. Dockerfile.ranger-mysql
  32. Dockerfile.ranger-oracle
  33. Dockerfile.ranger-ozone
  34. Dockerfile.ranger-postgres
  35. Dockerfile.ranger-solr
  36. Dockerfile.ranger-sqlserver
  37. Dockerfile.ranger-tagsync
  38. Dockerfile.ranger-trino
  39. Dockerfile.ranger-usersync
  40. Dockerfile.ranger-zk
  41. download-archives.sh
  42. README.md
dev-support/ranger-docker/README.md

Overview

Use Dockerfiles in this directory to create docker images and run them to build Apache Ranger, deploy Apache Ranger and dependent services in containers.

Environment Setup

  • Ensure that you have recent version of Docker installed from docker.io (as of this writing: Engine v24.0.5, Compose v2.20.2). Make sure to configure docker with at least 6gb of memory.

  • Update environment variables in .env file, if necessary

  • Set dev-support/ranger-docker as your working directory.

  • Execute following command to download necessary archives to setup Ranger/HDFS/Hive/HBase/Kafka/Knox/Ozone services:

    chmod +x download-archives.sh
    # use a subset of the below to download specific services
    ./download-archives.sh hadoop hive hbase kafka knox ozone
    
  • Execute following commands to set environment variables to build Apache Ranger docker containers:

    export RANGER_DB_TYPE=postgres
    
    # valid values for RANGER_DB_TYPE: mysql/postgres/oracle
    

Apache Ranger Build

In containers using docker compose

Execute following command to build Apache Ranger:


chmod +x scripts/*.sh # optional step: a fresh build ensures that the correct jdk version is used docker compose -f docker-compose.ranger-build.yml build docker compose -f docker-compose.ranger-build.yml up -d

Time taken to complete the build might vary (upto an hour), depending on status of ${HOME}/.m2 directory cache.

OR

Regular build

cd ./../../
mvn clean package -DskipTests
cp target/ranger-* dev-support/ranger-docker/dist/
cp target/version dev-support/ranger-docker/dist/
cd dev-support/ranger-docker

Run Ranger Services in Containers

Bring up ranger-core services: ranger, usersync, tagsync and ranger-kms in containers

# To enable file based sync source for usersync do:
# export ENABLE_FILE_SYNC_SOURCE=true

# valid values for RANGER_DB_TYPE: mysql/postgres/oracle

docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml up -d

# Ranger Admin can be accessed at http://localhost:6080 (admin/rangerR0cks!)

Bring up hive container

docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hive.yml up -d

Bring up hbase container

docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml up -d

Bring up ozone containers

./scripts/ozone-plugin-docker-setup.sh
docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-ozone.yml up -d

Bring up trino container (requires docker build with jdk 11):

docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-trino.yml up -d

Similarly, check the depends section of the docker-compose.ranger-service.yaml file and add docker-compose files for these services when trying to bring up the service container.

Bring up all containers

./scripts/ozone-plugin-docker-setup.sh
docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hive.yml -f docker-compose.ranger-knox.yml -f docker-compose.ranger-ozone.yml up -d

To rebuild specific images and start containers with the new image:

docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hive.yml -f docker-compose.ranger-trino.yml -f docker-compose.ranger-knox.yml up -d --no-deps --force-recreate --build <service-1> <service-2>