Apache Zeppelin is a fantastic open source web-based notebook. Zeppelin allows users to build and share great looking data visualizations using languages such as Scala, Python, SQL, etc.

Running Apache Zeppelin on Docker is a great way to get Zeppelin up and running quickly. Here are the basic steps:

Pick an OS

Zeppelin runs great on Centos and Ubuntu distros.

Install Java

Java is generally very easy to install on Unix/Linux systems. For example, the command apt-get install -y openjdk-7-jdk can be used to install Java 7 (OpenJDK) on Ubuntu.

Install Zeppelin

Installing Zeppelin can be done by downloading and extracting the binary package onto your machine. There are many mirrors from which this package can be downloaded. Here is an example of downloading from a specific mirror, and extracting Zeppelin into the /usr/local/ directory.

wget http://apache.cs.utah.edu/zeppelin/zeppelin-0.7.0/zeppelin-0.7.0-bin-all.tgz && \
tar -zxf zeppelin-0.7.0-bin-all.tgz -C /usr/local/

Make sure to update this URL with the version of Zeppelin you are interested in. In this example we use version 0.7.0. See http://zeppelin.apache.org/download.html for a list of available downloads.

Installing Zeppelin can also be done by building from source. To do this you need to download code from the Zeppelin GitHub repository, and build using a tool like Maven.

Starting Zeppelin

Once installed, Zeppelin can be started from the installation directory by running bin/zeppelin.sh. After starting, you should be able to see the Zeppelin UI on http://localhost:8080.

Sample Dockerfile

This Dockerfile shows an example of installing Zeppelin on Ubuntu 16.04 into /usr/local/zeppelin. Some additional packages such as npm and vim are also added.

FROM ubuntu:16.04

ENV ZEPPELIN_HOME /usr/local/zeppelin


#install java
RUN apt-get update && \
  apt-get install -y software-properties-common && \
  add-apt-repository ppa:openjdk-r/ppa && \     
  apt-get update && \
  apt-get install -y openjdk-7-jdk

#install other
RUN apt-get install -y \
  npm \
  vim \

#install Zeppelin
RUN wget http://apache.cs.utah.edu/zeppelin/zeppelin-0.7.0/zeppelin-0.7.0-bin-all.tgz && \
  tar -zxf zeppelin-0.7.0-bin-all.tgz -C /usr/local/ && \
  mv /usr/local/zeppelin* $ZEPPELIN_HOME

CMD bin/zeppelin.sh

Building the Docker Image

Running docker build -t zeppelin-simple:0.7.0 . from the directory containing your Dockerfile will create the docker zeppelin-simple image with a 0.7.0 tag (version of Zeppelin installed).

Creating & Running the Docker Container

The command docker run -p 8080:8080 zeppelin-simple:0.7.0 can now be used to create a Docker container from this image. The -p option in the command will map the port 8080 inside to the container to port 8080 on the host machine. The CMD instruction used in the Dockerfile will start Zeppelin by default when the container is created.

This means Apache Zeppelin is now up and running on your machine and can be accessed at http://localhost:8080 in your web browser.


Leave a Reply

Running Apache Zeppelin on Docker