Sedona Docker images are available on Sedona official DockerHub repo.
We provide a Docker image for Apache Sedona with Python JupyterLab, Apache Zeppelin and 1 master node and 1 worker node.
Format:
docker pull apache/sedona:<sedona_version>
Example 1: Pull the latest image of Sedona master branch
docker pull apache/sedona:latest
Example 2: Pull the image of a specific Sedona release
docker pull apache/sedona:{{ sedona.current_version }}
Format:
docker run -d -e DRIVER_MEM=<driver_mem> -e EXECUTOR_MEM=<executor_mem> -p 8888:8888 -p 8080:8080 -p 8081:8081 -p 4040:4040 -p 8085:8085 apache/sedona:<sedona_version>
Driver memory and executor memory are optional. If their values are not given, the container will take 4GB RAM for the driver and 4GB RAM for the executor. The -d (or --detach) flag ensures the container runs in detached mode, allowing it to run in the background.
Example 1:
docker run -d -e DRIVER_MEM=6g -e EXECUTOR_MEM=8g -p 8888:8888 -p 8080:8080 -p 8081:8081 -p 4040:4040 -p 8085:8085 apache/sedona:latest
This command will start a container with 6GB RAM for the driver and 8GB RAM for the executor and use the latest Sedona image. The container will run in detached mode.
This command will bind the container‘s ports 8888, 8080, 8081, 4040, 8085 to the host’s ports 8888, 8080, 8081, 4040, 8085 respectively.
Example 2:
docker run -d -e -p 8888:8888 -p 8080:8080 -p 8081:8081 -p 4040:4040 -p 8085:8085 apache/sedona:{{ sedona.current_version }}
This command will start a container with 4GB RAM for the driver and 4GB RAM for the executor and use Sedona {{ sedona.current_version }} image.
This command will bind the container‘s ports 8888, 8080, 8081, 4040, 8085 to the host’s ports 8888, 8080, 8081, 4040, 8085 respectively.
Example 3: Persisting /opt (Jupyter & Zeppelin Data) with Docker Volume
To ensure that Jupyter workspace, Zeppelin notebooks, and configurations persist, mount /opt as a Docker volume:
docker run -d -e DRIVER_MEM=6g -e EXECUTOR_MEM=8g \ -p 8888:8888 -p 8080:8080 -p 8081:8081 -p 4040:4040 -p 8085:8085 \ -v sedona_opt:/opt \ apache/sedona:latest
-v sedona_opt:/opt flag creates (if not existing) and mounts a Docker volume named sedona_opt to the /opt directory inside the container.Open your browser and go to http://localhost:8888/ to start coding with Sedona in Jupyter Notebook. You can also access Apache Zeppelin at http://localhost:8085/classic/ using your browser.
Clone the Sedona GitHub repository
Requirements: docker (How?)
Format:
./docker/build.sh <spark_version> <sedona_version> <build_mode>
Example:
./docker/build.sh 3.4.1 {{ sedona.current_version }}
build_mode is optional. If its value is not given or is local, the script will build the image locally. Otherwise, it will start a cross-platform compilation and push images directly to DockerHub.
Requirements: docker (How?), JDK <= 19, maven3
Format:
./docker/build.sh <spark_version> latest <build_mode>
Example:
./docker/build.sh 3.4.1 latest
build_mode is optional. If its value is not given or is local, the script will build the image locally. Otherwise, it will start a cross-platform compilation and push images directly to DockerHub.
This docker image can only be built against Sedona 1.7.0+ and Spark 3.3+
A Zeppelin tutorial notebook is bundled with Sedona tutorials. See Sedona-Zeppelin tutorial for details.
Format:
docker login ./docker/build.sh <spark_version> <sedona_version> release
Example:
docker login ./docker/build.sh 3.4.1 {{ sedona.current_version }} release