For some time I’ve been keeping an eye on the Apache Zeppelin project. I found with a recent look, that the project has developed to quite a mature standard despite it remaining a pre 1.0 release. An upcoming workshop that I’m running on Writing Analytics presented me with the opportunity to road test it in a real scenario. I was originally intending to use a [Jupyter Notebook]() for this task, but Zeppelin provided me with the ability to (a) work in Scala (including Spark if necessary), (b) interact easily with S3, and © render the analytics with Angular.
After many attempts to get the best uber-jar possible with sbt, I have eventually found that it is much easier to use sbt-native-packager It can be added through an sbt plugin in project/plugins.sbt file: addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M9") and enabled in build.sbt file: enablePlugins(JavaAppPackaging) Creating a package complete with shell script is as easy as running the sbt command: sbt universal:packageZipTarball This file can then be uploaded to the server, unzipped and then the app run: