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
- Stop Zeppelin: bin/zeppelin-daemon.sh stop
- Copy your notebookandconfdirectory into a backup directory
- Download newer version of Zeppelin and Install. See Install Guide.
- Copy backup notebookandconfdirectory into newer version of Zeppelinnotebookandconfdirectory
- Start Zeppelin:  bin/zeppelin-daemon.sh start
Migration Guide
Upgrading from Zeppelin 0.9, 0.10 to 0.11
- From 0.11, The type of Pegdownfor parsing markdown was deprecated (ZEPPELIN-5529). It will useFlexmarkinstead.
Upgrading from Zeppelin 0.8 to 0.9
- From 0.9, we changed the notes file name structure (ZEPPELIN-2619). So when you upgrading zeppelin to 0.9, you need to upgrade note files. Here's steps you need to follow:
- Backup your notes file, in case the upgrade fails
- Call bin/upgrade-note.sh -dto upgrade notes,-doption means to delete the old note file, missing this option will keep the old file.
 
- From 0.9, the Zeppelin server binds to 127.0.0.1by default, instead of0.0.0.0. Configurezeppelin.server.addrproperty orZEPPELIN_ADDRenv variable to change it to0.0.0.0if you want to access it remotely.
- From 0.9, we have removed zeppelin.anonymous.allowed(ZEPPELIN-4489). So, when you upgrade Zeppelin to 0.9 and ifshiro.inifile does not exist in conf path then all the Zeppelin-Users runs as anonymous.
- From 0.9, we use {crendential_entry.user}and{crendential_entry.password}for credential injection, while before 0.9 we use{user.crendential_entry}and{password.crendential_entry}
Upgrading from Zeppelin 0.8.1 (and before) to 0.8.2 (and later)
- From 0.8.2, the Zeppelin server binds to 127.0.0.1by default, instead of0.0.0.0. Configure thezeppelin.server.addrproperty orZEPPELIN_ADDRenv variable to change this.
Upgrading from Zeppelin 0.7 to 0.8
- From 0.8, we recommend using PYSPARK_PYTHONandPYSPARK_DRIVER_PYTHONinstead ofzeppelin.pyspark.pythonaszeppelin.pyspark.pythononly affects driver. You can usePYSPARK_PYTHONandPYSPARK_DRIVER_PYTHONas using them in spark.
- From 0.8, depending on your device, the keyboard shortcut Ctrl-LorCommand-Lwhich 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_OPTSas default value ofZEPPELIN_INTP_JAVA_OPTSand also the same forZEPPELIN_MEM/ZEPPELIN_INTP_MEM. If user want to configure the jvm opts of interpreter process, please setZEPPELIN_INTP_JAVA_OPTSandZEPPELIN_INTP_MEMexplicitly. If you don't setZEPPELIN_INTP_MEM, Zeppelin will set it to-Xms1024m -Xmx1024m -XX:MaxMetaspaceSize=512mby default.
- Mapping from %jdbc(prefix)to%prefixis no longer available. Instead, you can use %[interpreter alias] with multiple interpreter setttings on GUI.
- Usage of ZEPPELIN_PORTis not supported in ssl mode. Instead useZEPPELIN_SSL_PORTto configure the ssl port. Value fromZEPPELIN_PORTis used only whenZEPPELIN_SSLis set tofalse.
- The support on Spark 1.1.x to 1.3.x is deprecated.
- From 0.7, we uses pegdownas themarkdown.parser.typeoption for the%mdinterpreter. 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 GitNotebookRepoby default instead ofVFSNotebookRepostorage layer, which is an extension of latter one with versioning capabilities on top of it.
