layout: page title: “Manual Zeppelin version upgrade procedure” description: “This document will guide you through a procedure of manual upgrade your Apache Zeppelin instance to a newer version. Apache Zeppelin keeps backward compatibility for the notebook file format.” group: setup/operation

{% include JB/setup %}

Manual upgrade procedure for Zeppelin

Basically, newer version of Zeppelin works with previous version notebook directory and configurations. So, copying notebook and conf directory should be enough.

Instructions

  1. Stop Zeppelin: bin/zeppelin-daemon.sh stop
  2. Copy your notebook and conf directory into a backup directory
  3. Download newer version of Zeppelin and Install. See Install Guide.
  4. Copy backup notebook and conf directory into newer version of Zeppelin notebook and conf directory
  5. Start Zeppelin: bin/zeppelin-daemon.sh start

Migration Guide

Upgrading from Zeppelin 0.8 to 0.9

  • From 0.9, we change the notes file name structure (ZEPPELIN-2619) and move permissions info from notebook-authorization.json into note file itself ZEPPELIN-3985. So when you upgrading zeppelin to 0.9, you need to upgrade note file. Here's steps you need to follow:
    1. Backup your notes file in case the upgrade fails
    2. Call bin/upgrade-note.sh -d to upgrade note, -d option means to delete the old note file, missing this option will keep the old file.
  • From 0.9, Zeppelin server bind 127.0.0.1 by default instead of 0.0.0.0. Configure zeppelin.server.addr property or ZEPPELIN_ADDR env variable to change.
  • From 0.9, we have removed zeppelin.anonymous.allowed (ZEPPELIN-4489). So, when you upgrade Zeppelin to 0.9 and if shiro.ini file does not exists in conf path then all the Zeppelin-Users runs as anonymous.

Upgrading from Zeppelin 0.8.1 (and before) to 0.8.2 (and later)

  • From 0.8.2, Zeppelin server bind 127.0.0.1 by default instead of 0.0.0.0. Configure zeppelin.server.addr property or ZEPPELIN_ADDR env variable to change.

Upgrading from Zeppelin 0.7 to 0.8

  • From 0.8, we recommend to use PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON instead of zeppelin.pyspark.python as zeppelin.pyspark.python only effects driver. You can use PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON as using them in spark.
  • From 0.8, depending on your device, the keyboard shortcut Ctrl-L or Command-L which goes to the line somewhere user wants is not supported.

Upgrading from Zeppelin 0.6 to 0.7

  • From 0.7, we don‘t use ZEPPELIN_JAVA_OPTS as default value of ZEPPELIN_INTP_JAVA_OPTS and also the same for ZEPPELIN_MEM/ZEPPELIN_INTP_MEM. If user want to configure the jvm opts of interpreter process, please set ZEPPELIN_INTP_JAVA_OPTS and ZEPPELIN_INTP_MEM explicitly. If you don’t set ZEPPELIN_INTP_MEM, Zeppelin will set it to -Xms1024m -Xmx1024m -XX:MaxPermSize=512m by default.
  • Mapping from %jdbc(prefix) to %prefix is no longer available. Instead, you can use %[interpreter alias] with multiple interpreter setttings on GUI.
  • Usage of ZEPPELIN_PORT is not supported in ssl mode. Instead use ZEPPELIN_SSL_PORT to configure the ssl port. Value from ZEPPELIN_PORT is used only when ZEPPELIN_SSL is set to false.
  • The support on Spark 1.1.x to 1.3.x is deprecated.
  • From 0.7, we uses pegdown as the markdown.parser.type option for the %md interpreter. Rendered markdown might be different from what you expected
  • From 0.7 note.json format has been changed to support multiple outputs in a paragraph. Zeppelin will automatically convert old format to new format. 0.6 or lower version can read new note.json format but output will not be displayed. For the detail, see ZEPPELIN-212 and pull request.
  • From 0.7 note storage layer will utilize GitNotebookRepo by default instead of VFSNotebookRepo storage layer, which is an extension of latter one with versioning capabilities on top of it.