Repository: zeppelin Updated Branches: refs/heads/branch-0.6 b38b0c4e8 -> 5b01c8bb4
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/markdown.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/markdown.md b/docs/interpreter/markdown.md index 08b44f8..21184dc 100644 --- a/docs/interpreter/markdown.md +++ b/docs/interpreter/markdown.md @@ -6,9 +6,11 @@ group: manual --- {% include JB/setup %} -## Markdown Interpreter for Apache Zeppelin +# Markdown Interpreter for Apache Zeppelin -### Overview +<div id="toc"></div> + +## Overview [Markdown](http://daringfireball.net/projects/markdown/) is a plain text formatting syntax designed so that it can be converted to HTML. Zeppelin uses markdown4j. For more examples and extension support, please checkout [here](https://code.google.com/p/markdown4j/). In Zeppelin notebook, you can use ` %md ` in the beginning of a paragraph to invoke the Markdown interpreter and generate static html from Markdown plain text. @@ -17,7 +19,7 @@ In Zeppelin, Markdown interpreter is enabled by default. <img src="{{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/markdown-interpreter-setting.png" width="60%" /> -### Example +## Example The following example demonstrates the basic usage of Markdown in a Zeppelin notebook. <img src="{{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/markdown-example.png" width="70%" /> http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/postgresql.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/postgresql.md b/docs/interpreter/postgresql.md index 5985b18..107fda1 100644 --- a/docs/interpreter/postgresql.md +++ b/docs/interpreter/postgresql.md @@ -6,7 +6,12 @@ group: manual --- {% include JB/setup %} +# PostgreSQL, Apache HAWQ (incubating) Interpreter for Apache Zeppelin + +<div id="toc"></div> + ## Important Notice + Postgresql Interpreter will be deprecated and merged into JDBC Interpreter. You can use Postgresql by using JDBC Interpreter with same functionality. See the example below of settings and dependencies. ### Properties @@ -44,10 +49,19 @@ Postgresql Interpreter will be deprecated and merged into JDBC Interpreter. You <td></td> </tr> </table> +--- ----- +## Overview -## PostgreSQL, HAWQ Interpreter for Apache Zeppelin +[<img align="right" src="http://img.youtube.com/vi/wqXXQhJ5Uk8/0.jpg" alt="zeppelin-view" hspace="10" width="250"></img>](https://www.youtube.com/watch?v=wqXXQhJ5Uk8) + +This interpreter seamlessly supports the following SQL data processing engines: + +* [PostgreSQL](http://www.postgresql.org/) - OSS, Object-relational database management system (ORDBMS) +* [pache HAWQ (incubating)](http://hawq.incubator.apache.org/) - Powerful open source SQL-On-Hadoop engine. +* [Greenplum](http://pivotal.io/big-data/pivotal-greenplum-database) - MPP database built on open source PostgreSQL. + +This [Video Tutorial](https://www.youtube.com/watch?v=wqXXQhJ5Uk8) illustrates some of the features provided by the `Postgresql Interpreter`. <table class="table-configuration"> <tr> @@ -62,17 +76,7 @@ Postgresql Interpreter will be deprecated and merged into JDBC Interpreter. You </tr> </table> -[<img align="right" src="http://img.youtube.com/vi/wqXXQhJ5Uk8/0.jpg" alt="zeppelin-view" hspace="10" width="250"></img>](https://www.youtube.com/watch?v=wqXXQhJ5Uk8) - -This interpreter seamlessly supports the following SQL data processing engines: - -* [PostgreSQL](http://www.postgresql.org/) - OSS, Object-relational database management system (ORDBMS) -* [Apache HAWQ](http://pivotal.io/big-data/pivotal-hawq) - Powerful [Open Source](https://wiki.apache.org/incubator/HAWQProposal) SQL-On-Hadoop engine. -* [Greenplum](http://pivotal.io/big-data/pivotal-greenplum-database) - MPP database built on open source PostgreSQL. - -This [Video Tutorial](https://www.youtube.com/watch?v=wqXXQhJ5Uk8) illustrates some of the features provided by the `Postgresql Interpreter`. - -### Create Interpreter +## Create Interpreter By default Zeppelin creates one `PSQL` instance. You can remove it or create new instances. Multiple PSQL instances can be created, each configured to the same or different backend databases. But over time a `Notebook` can have only one PSQL interpreter instance `bound`. That means you _cannot_ connect to different databases in the same `Notebook`. This is a known Zeppelin limitation. @@ -81,10 +85,10 @@ To create new PSQL instance open the `Interpreter` section and click the `+Creat > Note: The `Name` of the instance is used only to distinct the instances > while binding them to the `Notebook`. The `Name` is irrelevant inside the > `Notebook`. In the `Notebook` you must use `%psql.sql` tag. -### Bind to Notebook +## Bind to Notebook In the `Notebook` click on the `settings` icon in the top right corner. The select/deselect the interpreters to be bound with the `Notebook`. -### Configuration +## Configuration You can modify the configuration of the PSQL from the `Interpreter` section. The PSQL interpreter expenses the following properties: <table class="table-configuration"> @@ -120,12 +124,12 @@ You can modify the configuration of the PSQL from the `Interpreter` section. Th </tr> </table> -### How to use +## How to use ``` Tip: Use (CTRL + .) for SQL auto-completion. ``` -#### DDL and SQL commands +### DDL and SQL commands Start the paragraphs with the full `%psql.sql` prefix tag! The short notation: `%psql` would still be able run the queries but the syntax highlighting and the auto-completions will be disabled. You can use the standard CREATE / DROP / INSERT commands to create or modify the data model: @@ -154,7 +158,7 @@ select count(*) from mytable; select * from mytable; ``` -#### PSQL command line tools +### PSQL command line tools Use the Shell Interpreter (`%sh`) to access the command line [PSQL](http://www.postgresql.org/docs/9.4/static/app-psql.html) interactively: ```bash @@ -179,7 +183,7 @@ This will produce output like this: retail_demo | gpadmin ``` -#### Apply Zeppelin Dynamic Forms +### Apply Zeppelin Dynamic Forms You can leverage [Zeppelin Dynamic Form](../manual/dynamicform.html) inside your queries. You can use both the `text input` and `select form` parametrization features ```sql @@ -191,7 +195,7 @@ ORDER BY count ${order=DESC,DESC|ASC} LIMIT ${limit=10}; ``` -#### Example HAWQ PXF/HDFS Tables +### Example HAWQ PXF/HDFS Tables Create HAWQ external table that read data from tab-separated-value data in HDFS. ```sql @@ -209,5 +213,5 @@ And retrieve content select * from retail_demo.payment_methods_pxf ``` -### Auto-completion +## Auto-completion The PSQL Interpreter provides a basic auto-completion functionality. On `(Ctrl+.)` it list the most relevant suggestions in a pop-up window. In addition to the SQL keyword the interpreter provides suggestions for the Schema, Table, Column names as well. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/python.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/python.md b/docs/interpreter/python.md index 997af14..d434493 100644 --- a/docs/interpreter/python.md +++ b/docs/interpreter/python.md @@ -6,7 +6,9 @@ group: manual --- {% include JB/setup %} -## Python 2 & 3 Interpreter for Apache Zeppelin +# Python 2 & 3 Interpreter for Apache Zeppelin + +<div id="toc"></div> ## Configuration <table class="table-configuration"> @@ -58,8 +60,6 @@ print (z.select("f1",[("o1","1"),("o2","2")],"2")) print("".join(z.checkbox("f3", [("o1","1"), ("o2","2")],["1"]))) ``` - - ## Zeppelin features not fully supported by the Python Interpreter * Interrupt a paragraph execution (`cancel()` method) is currently only supported in Linux and MacOs. If interpreter runs in another operating system (for instance MS Windows) , interrupt a paragraph will close the whole interpreter. A JIRA ticket ([ZEPPELIN-893](https://issues.apache.org/jira/browse/ZEPPELIN-893)) is opened to implement this feature in a next release of the interpreter. @@ -85,8 +85,7 @@ z.show function can take optional parameters to adapt graph width and height z.show(plt, width='50px') z.show(plt, height='150px') ``` - -[](/docs/interpreter/screenshots/pythonMatplotlib.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/pythonMatplotlib.png" /> ## Pandas integration @@ -100,7 +99,6 @@ rates = pd.read_csv("bank.csv", sep=";") z.show(rates) ``` - ## Technical description -For in-depth technical details on current implementation plese reffer [python/README.md](https://github.com/apache/zeppelin/blob/master/python/README.md) +For in-depth technical details on current implementation plese reffer [python/README.md](https://github.com/apache/zeppelin/blob/master/python/README.md). http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/r.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/r.md b/docs/interpreter/r.md index c5ed98b..dce8bd1 100644 --- a/docs/interpreter/r.md +++ b/docs/interpreter/r.md @@ -6,78 +6,99 @@ group: manual --- {% include JB/setup %} -## R Interpreter +# R Interpreter for Apache Zeppelin -This is a the Apache Zeppelin project, with the addition of support for the R programming language and R-spark integration. +<div id="toc"></div> -### Requirements +## Overview -Additional requirements for the R interpreter are: +[R](https://www.r-project.org) is a free software environment for statistical computing and graphics. - * R 3.1 or later (earlier versions may work, but have not been tested) - * The `evaluate` R package. +To run R code and visualize plots in Apache Zeppelin, you will need R on your master node (or your dev laptop). -For full R support, you will also need the following R packages: ++ For Centos: `yum install R R-devel libcurl-devel openssl-devel` ++ For Ubuntu: `apt-get install r-base` - * `knitr` - * `repr` -- available with `devtools::install_github("IRkernel/repr")` - * `htmltools` -- required for some interactive plotting - * `base64enc` -- required to view R base plots +Validate your installation with a simple R command: -### Configuration +``` +R -e "print(1+1)" +``` -To run Zeppelin with the R Interpreter, the SPARK_HOME environment variable must be set. The best way to do this is by editing `conf/zeppelin-env.sh`. +To enjoy plots, install additional libraries with: +``` ++ devtools with `R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')"` ++ knitr with `R -e "install.packages('knitr', repos = 'http://cran.us.r-project.org')"` ++ ggplot2 with `R -e "install.packages('ggplot2', repos = 'http://cran.us.r-project.org')"` ++ Other vizualisation librairies: `R -e "install.packages(c('devtools','mplot', 'googleVis'), repos = 'http://cran.us.r-project.org'); require(devtools); install_github('ramnathv/rCharts')"` +``` + +We recommend you to also install the following optional R libraries for happy data analytics: + ++ glmnet ++ pROC ++ data.table ++ caret ++ sqldf ++ wordcloud + +## Configuration + +To run Zeppelin with the R Interpreter, the `SPARK_HOME` environment variable must be set. The best way to do this is by editing `conf/zeppelin-env.sh`. If it is not set, the R Interpreter will not be able to interface with Spark. -You should also copy `conf/zeppelin-site.xml.template` to `conf/zeppelin-site.xml`. That will ensure that Zeppelin sees the R Interpreter the first time it starts up. +You should also copy `conf/zeppelin-site.xml.template` to `conf/zeppelin-site.xml`. That will ensure that Zeppelin sees the R Interpreter the first time it starts up. -### Using the R Interpreter +## Using the R Interpreter By default, the R Interpreter appears as two Zeppelin Interpreters, `%r` and `%knitr`. `%r` will behave like an ordinary REPL. You can execute commands as in the CLI. -[](screenshots/repl2plus2.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/repl2plus2.png" width="700px"/> R base plotting is fully supported -[](screenshots/replhist.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/replhist.png" width="550px"/> If you return a data.frame, Zeppelin will attempt to display it using Zeppelin's built-in visualizations. -[](screenshots/replhead.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/replhead.png" width="550px"/> `%knitr` interfaces directly against `knitr`, with chunk options on the first line: -[](screenshots/knitgeo.png) -[](screenshots/knitstock.png) -[](screenshots/knitmotion.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitgeo.png" width="550px"/> + +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitstock.png" width="550px"/> + +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitmotion.png" width="550px"/> The two interpreters share the same environment. If you define a variable from `%r`, it will be within-scope if you then make a call using `knitr`. -### Using SparkR & Moving Between Languages +## Using SparkR & Moving Between Languages If `SPARK_HOME` is set, the `SparkR` package will be loaded automatically: -[](screenshots/sparkrfaithful.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/sparkrfaithful.png" width="550px"/> The Spark Context and SQL Context are created and injected into the local environment automatically as `sc` and `sql`. The same context are shared with the `%spark`, `%sql` and `%pyspark` interpreters: -[](screenshots/backtoscala.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/backtoscala.png" width="700px"/> You can also make an ordinary R variable accessible in scala and Python: -[](screenshots/varr1.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varr1.png" width="550px"/> And vice versa: -[](screenshots/varscala.png) -[](screenshots/varr2.png) +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varscala.png" width="550px"/> + +<img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varr2.png" width="550px"/> -### Caveats & Troubleshooting +## Caveats & Troubleshooting * Almost all issues with the R interpreter turned out to be caused by an incorrectly set `SPARK_HOME`. The R interpreter must load a version of the `SparkR` package that matches the running version of Spark, and it does this by searching `SPARK_HOME`. If Zeppelin isn't configured to interface with Spark in `SPARK_HOME`, the R interpreter will not be able to connect to Spark. @@ -98,40 +119,3 @@ And vice versa: * Error `unable to start device X11` with the repl interpreter. Check your shell login scripts to see if they are adjusting the `DISPLAY` environment variable. This is common on some operating systems as a workaround for ssh issues, but can interfere with R plotting. * akka Library Version or `TTransport` errors. This can happen if you try to run Zeppelin with a SPARK_HOME that has a version of Spark other than the one specified with `-Pspark-1.x` when Zeppelin was compiled. - - - - - -## R Interpreter for Apache Zeppelin - -[R](https://www.r-project.org) is a free software environment for statistical computing and graphics. - -To run R code and visualize plots in Apache Zeppelin, you will need R on your master node (or your dev laptop). - -+ For Centos: `yum install R R-devel libcurl-devel openssl-devel` -+ For Ubuntu: `apt-get install r-base` - -Validate your installation with a simple R command: - -``` -R -e "print(1+1)" -``` - -To enjoy plots, install additional libraries with: - -``` -+ devtools with `R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')"` -+ knitr with `R -e "install.packages('knitr', repos = 'http://cran.us.r-project.org')"` -+ ggplot2 with `R -e "install.packages('ggplot2', repos = 'http://cran.us.r-project.org')"` -+ Other vizualisation librairies: `R -e "install.packages(c('devtools','mplot', 'googleVis'), repos = 'http://cran.us.r-project.org'); require(devtools); install_github('ramnathv/rCharts')"` -``` - -We recommend you to also install the following optional R libraries for happy data analytics: - -+ glmnet -+ pROC -+ data.table -+ caret -+ sqldf -+ wordcloud http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/scalding.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/scalding.md b/docs/interpreter/scalding.md index ec5608b..e8774df 100644 --- a/docs/interpreter/scalding.md +++ b/docs/interpreter/scalding.md @@ -6,17 +6,20 @@ group: manual --- {% include JB/setup %} -## Scalding Interpreter for Apache Zeppelin +# Scalding Interpreter for Apache Zeppelin + +<div id="toc"></div> + [Scalding](https://github.com/twitter/scalding) is an open source Scala library for writing MapReduce jobs. -### Building the Scalding Interpreter +## Building the Scalding Interpreter You have to first build the Scalding interpreter by enable the **scalding** profile as follows: ``` mvn clean package -Pscalding -DskipTests ``` -### Enabling the Scalding Interpreter +## Enabling the Scalding Interpreter In a notebook, to enable the **Scalding** interpreter, click on the **Gear** icon,select **Scalding**, and hit **Save**. <center> @@ -27,7 +30,7 @@ In a notebook, to enable the **Scalding** interpreter, click on the **Gear** ico </center> -### Configuring the Interpreter +## Configuring the Interpreter Scalding interpreter runs in two modes: @@ -65,9 +68,9 @@ For reducer estimation, you need to add something like: If you want to control the maximum number of open interpreters, you have to select "scoped" interpreter for note option and set max.open.instances argument. -### Testing the Interpreter +## Testing the Interpreter -#### Local mode +### Local mode In example, by using the [Alice in Wonderland](https://gist.github.com/johnynek/a47699caa62f4f38a3e2) tutorial, we will count words (of course!), and plot a graph of the top 10 words in the book. @@ -111,7 +114,7 @@ If you click on the icon for the pie chart, you should be able to see a chart li  -#### HDFS mode +### HDFS mode **Test mode** @@ -146,7 +149,7 @@ a.toList This command should create a map reduce job. -### Future Work +## Future Work * Better user feedback (hadoop url, progress updates) * Ability to cancel jobs * Ability to dynamically load jars without restarting the interpreter http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/backtoscala.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/backtoscala.png b/docs/interpreter/screenshots/backtoscala.png deleted file mode 100644 index c0c897a..0000000 Binary files a/docs/interpreter/screenshots/backtoscala.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/knitgeo.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/knitgeo.png b/docs/interpreter/screenshots/knitgeo.png deleted file mode 100644 index d1eb0d8..0000000 Binary files a/docs/interpreter/screenshots/knitgeo.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/knitmotion.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/knitmotion.png b/docs/interpreter/screenshots/knitmotion.png deleted file mode 100644 index a1048ea..0000000 Binary files a/docs/interpreter/screenshots/knitmotion.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/knitstock.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/knitstock.png b/docs/interpreter/screenshots/knitstock.png deleted file mode 100644 index 7a27c60..0000000 Binary files a/docs/interpreter/screenshots/knitstock.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/pythonMatplotlib.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/pythonMatplotlib.png b/docs/interpreter/screenshots/pythonMatplotlib.png deleted file mode 100644 index 3d53043..0000000 Binary files a/docs/interpreter/screenshots/pythonMatplotlib.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/repl2plus2.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/repl2plus2.png b/docs/interpreter/screenshots/repl2plus2.png deleted file mode 100644 index 8f70092..0000000 Binary files a/docs/interpreter/screenshots/repl2plus2.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/replhead.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/replhead.png b/docs/interpreter/screenshots/replhead.png deleted file mode 100644 index b09ccab..0000000 Binary files a/docs/interpreter/screenshots/replhead.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/replhist.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/replhist.png b/docs/interpreter/screenshots/replhist.png deleted file mode 100644 index 5291404..0000000 Binary files a/docs/interpreter/screenshots/replhist.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/sparkrfaithful.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/sparkrfaithful.png b/docs/interpreter/screenshots/sparkrfaithful.png deleted file mode 100644 index ec956c7..0000000 Binary files a/docs/interpreter/screenshots/sparkrfaithful.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/varr1.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/varr1.png b/docs/interpreter/screenshots/varr1.png deleted file mode 100644 index ac997a8..0000000 Binary files a/docs/interpreter/screenshots/varr1.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/varr2.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/varr2.png b/docs/interpreter/screenshots/varr2.png deleted file mode 100644 index b49988d..0000000 Binary files a/docs/interpreter/screenshots/varr2.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/screenshots/varscala.png ---------------------------------------------------------------------- diff --git a/docs/interpreter/screenshots/varscala.png b/docs/interpreter/screenshots/varscala.png deleted file mode 100644 index 7f95ad2..0000000 Binary files a/docs/interpreter/screenshots/varscala.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/interpreter/spark.md ---------------------------------------------------------------------- diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md index df5e831..a183033 100644 --- a/docs/interpreter/spark.md +++ b/docs/interpreter/spark.md @@ -7,8 +7,14 @@ group: manual {% include JB/setup %} -## Spark Interpreter for Apache Zeppelin -[Apache Spark](http://spark.apache.org) is supported in Zeppelin with +# Spark Interpreter for Apache Zeppelin + +<div id="toc"></div> + +## Overview +[Apache Spark](http://spark.apache.org) is a fast and general-purpose cluster computing system. +It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs +Apache Spark is supported in Zeppelin with Spark Interpreter group, which consists of five interpreters. <table class="table-configuration"> @@ -200,13 +206,13 @@ Here are few examples: * SPARK\_SUBMIT\_OPTIONS in conf/zeppelin-env.sh - export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0 --jars /path/mylib1.jar,/path/mylib2.jar --files /path/mylib1.py,/path/mylib2.zip,/path/mylib3.egg" + export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0 --jars /path/mylib1.jar,/path/mylib2.jar --files /path/mylib1.py,/path/mylib2.zip,/path/mylib3.egg" * SPARK_HOME/conf/spark-defaults.conf - spark.jars /path/mylib1.jar,/path/mylib2.jar - spark.jars.packages com.databricks:spark-csv_2.10:1.2.0 - spark.files /path/mylib1.py,/path/mylib2.egg,/path/mylib3.zip + spark.jars /path/mylib1.jar,/path/mylib2.jar + spark.jars.packages com.databricks:spark-csv_2.10:1.2.0 + spark.files /path/mylib1.py,/path/mylib2.egg,/path/mylib3.zip ### 3. Dynamic Dependency Loading via %dep interpreter > Note: `%dep` interpreter is deprecated since v0.6.0. @@ -344,7 +350,7 @@ select * from ${table=defaultTableName} where text like '%${search}%' To learn more about dynamic form, checkout [Dynamic Form](../manual/dynamicform.html). -### Interpreter setting option. +## Interpreter setting option Interpreter setting can choose one of 'shared', 'scoped', 'isolated' option. Spark interpreter creates separate scala compiler per each notebook but share a single SparkContext in 'scoped' mode (experimental). It creates separate SparkContext per each notebook in 'isolated' mode. @@ -354,7 +360,7 @@ Logical setup with Zeppelin, Kerberos Key Distribution Center (KDC), and Spark o <img src="../assets/themes/zeppelin/img/docs-img/kdc_zeppelin.png"> -####Configuration Setup +### Configuration Setup 1. On the server that Zeppelin is installed, install Kerberos client modules and configuration, krb5.conf. This is to make the server communicate with KDC. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/dynamicform.md ---------------------------------------------------------------------- diff --git a/docs/manual/dynamicform.md b/docs/manual/dynamicform.md index 6594767..b554fec 100644 --- a/docs/manual/dynamicform.md +++ b/docs/manual/dynamicform.md @@ -19,16 +19,18 @@ limitations under the License. --> {% include JB/setup %} -## Dynamic Form +# Dynamic Form -Zeppelin dynamically creates input forms. Depending on language backend, there're two different ways to create dynamic form. +<div id="toc"></div> + +Apache Zeppelin dynamically creates input forms. Depending on language backend, there're two different ways to create dynamic form. Custom language backend can select which type of form creation it wants to use. -### Using form Templates +## Using form Templates This mode creates form using simple template language. It's simple and easy to use. For example Markdown, Shell, SparkSql language backend uses it. -#### Text input form +### Text input form To create text input form, use `${formName}` templates. @@ -42,7 +44,7 @@ Also you can provide default value, using `${formName=defaultValue}`. <img src="../assets/themes/zeppelin/img/screenshots/form_input_default.png" /> -#### Select form +### Select form To create select form, use `${formName=defaultValue,option1|option2...}` @@ -54,7 +56,7 @@ Also you can separate option's display name and value, using `${formName=default <img src="../assets/themes/zeppelin/img/screenshots/form_select_displayname.png" /> -#### Checkbox form +### Checkbox form For multi-selection, you can create a checkbox form using `${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}`. The variable will be substituted by a comma-separated string based on the selected items. For example: @@ -64,13 +66,13 @@ Besides, you can specify the delimiter using `${checkbox(delimiter):formName=... <img src="../assets/themes/zeppelin/img/screenshots/form_checkbox_delimiter.png"> -### Creates Programmatically +## Creates Programmatically Some language backend uses programmatic way to create form. For example [ZeppelinContext](../interpreter/spark.html#zeppelincontext) provides form creation API Here're some examples. -####Text input form +### Text input form <div class="codetabs"> <div data-lang="scala" markdown="1"> @@ -91,7 +93,7 @@ print("Hello "+z.input("name")) </div> <img src="../assets/themes/zeppelin/img/screenshots/form_input_prog.png" /> -####Text input form with default value +### Text input form with default value <div class="codetabs"> <div data-lang="scala" markdown="1"> @@ -112,7 +114,7 @@ print("Hello "+z.input("name", "sun")) </div> <img src="../assets/themes/zeppelin/img/screenshots/form_input_default_prog.png" /> -####Select form +### Select form <div class="codetabs"> <div data-lang="scala" markdown="1"> http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/dynamicinterpreterload.md ---------------------------------------------------------------------- diff --git a/docs/manual/dynamicinterpreterload.md b/docs/manual/dynamicinterpreterload.md index 0794314..42dd74d 100644 --- a/docs/manual/dynamicinterpreterload.md +++ b/docs/manual/dynamicinterpreterload.md @@ -19,12 +19,13 @@ limitations under the License. --> {% include JB/setup %} -## Dynamic Interpreter Loading using REST API +# Dynamic Interpreter Loading using REST API + +<div id="toc"></div> Zeppelin provides pluggable interpreter architecture which results in a wide and variety of the supported backend system. In this section, we will introduce **Dynamic interpreter loading** using **REST API**. This concept actually comes from [Zeppelin Helium Proposal](https://cwiki.apache.org/confluence/display/ZEPPELIN/Helium+proposal). Before we start, if you are not familiar with the concept of **Zeppelin interpreter**, you can check out [Overview of Zeppelin interpreter](../manual/interpreters.html) first. -<br/> ## Overview In the past, Zeppelin was loading interpreter binaries from `/interpreter/[interpreter_name]` directory. They were configured by `zeppelin.interpreters` property in `conf/zeppelin-site.xml` or `ZEPPELIN_INTERPRETERS` env variables in `conf/zeppelin-env.sh`. They were loaded on Zeppelin server startup and stayed alive until the server was stopped. In order to simplify using 3rd party interpreters, we changed this way to **dynamically** load interpreters from **Maven Repository** using **REST API**. Hopefully, the picture below will help you to understand the process. @@ -32,7 +33,7 @@ In order to simplify using 3rd party interpreters, we changed this way to **dyna ## Load & Unload Interpreters Using REST API -### 1. Load +### Load You can **load** interpreters located in Maven repository using REST API, like this: ( Maybe, you are unfamiliar with `[interpreter_group_name]` or `[interpreter_name]`. If so, please checkout [Interpreters in Zeppelin](../manual/interpreter.html) again. ) @@ -69,21 +70,21 @@ http://127.0.0.1:8080/api/interpreter/load/md/markdown The meaning of each parameters is: 1. **Artifact** - - groupId: org.apache.zeppelin - - artifactId: zeppelin-markdown - - version: 0.6.0-SNAPSHOT + - groupId: org.apache.zeppelin + - artifactId: zeppelin-markdown + - version: 0.6.0-SNAPSHOT 2. **Class Name** - - Package Name: org.apache.zeppelin - - Interpreter Class Name: markdown.Markdown + - Package Name: org.apache.zeppelin + - Interpreter Class Name: markdown.Markdown 3. **Repository ( optional )** - - Url: http://dl.bintray.com/spark-packages/maven - - Snapshot: false + - Url: http://dl.bintray.com/spark-packages/maven + - Snapshot: false > <b>Please note: </b>The interpreters you downloaded need to be **reload**, > when your Zeppelin server is down. -### 2. Unload +### Unload If you want to **unload** the interpreters using REST API, ``` @@ -95,7 +96,7 @@ In this case, the Restful method will be <code>**DELETE**</code>. ## What is the next step after Loading ? ### Q1. Where is the location of interpreters you downloaded ? - + Actually, the answer about this question is in the above picture. Once the REST API is called, the `.jar` files of interpreters you get are saved under `ZEPPELIN_HOME/local-repo` first. Then, they will be copied to `ZEPPELIN_HOME/interpreter` directory. So, please checkout your `ZEPPELIN_HOME/interpreter`. ### Q2. Then, how can I use this interpreter ? http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/interpreterinstallation.md ---------------------------------------------------------------------- diff --git a/docs/manual/interpreterinstallation.md b/docs/manual/interpreterinstallation.md index d522e62..b940f59 100644 --- a/docs/manual/interpreterinstallation.md +++ b/docs/manual/interpreterinstallation.md @@ -21,6 +21,8 @@ limitations under the License. # Interpreter Installation +<div id="toc"></div> + Apache Zeppelin provides **Interpreter Installation** mechanism for whom downloaded Zeppelin `netinst` binary package, or just want to install another 3rd party interpreters. ## Community managed interpreters http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/interpreters.md ---------------------------------------------------------------------- diff --git a/docs/manual/interpreters.md b/docs/manual/interpreters.md index 488d5e9..a21d34e 100644 --- a/docs/manual/interpreters.md +++ b/docs/manual/interpreters.md @@ -19,7 +19,12 @@ limitations under the License. --> {% include JB/setup %} -## Interpreters in Zeppelin +# Interpreters in Apache Zeppelin + +<div id="toc"></div> + +## Overview + In this section, we will explain about the role of interpreters, interpreters group and interpreter settings in Zeppelin. The concept of Zeppelin interpreter allows any language/data-processing-backend to be plugged into Zeppelin. Currently, Zeppelin supports many interpreters such as Scala ( with Apache Spark ), Python ( with Apache Spark ), SparkSQL, JDBC, Markdown, Shell and so on. @@ -29,12 +34,12 @@ Zeppelin Interpreter is a plug-in which enables Zeppelin users to use a specific When you click the ```+Create``` button in the interpreter page, the interpreter drop-down list box will show all the available interpreters on your server. -<img src="../assets/themes/zeppelin/img/screenshots/interpreter_create.png"> +<img src="../assets/themes/zeppelin/img/screenshots/interpreter_create.png" width="280px"> -## What is Zeppelin Interpreter Setting? +## What is interpreter setting? Zeppelin interpreter setting is the configuration of a given interpreter on Zeppelin server. For example, the properties are required for hive JDBC interpreter to connect to the Hive server. -<img src="../assets/themes/zeppelin/img/screenshots/interpreter_setting.png"> +<img src="../assets/themes/zeppelin/img/screenshots/interpreter_setting.png" width="500px"> Properties are exported as environment variable when property name is consisted of upper characters, numbers and underscore ([A-Z_0-9]). Otherwise set properties as JVM property. @@ -44,14 +49,15 @@ Each notebook can be bound to multiple Interpreter Settings using setting icon o -## What is Zeppelin Interpreter Group? +## What is interpreter group? Every Interpreter is belonged to an **Interpreter Group**. Interpreter Group is a unit of start/stop interpreter. By default, every interpreter is belonged to a single group, but the group might contain more interpreters. For example, Spark interpreter group is including Spark support, pySpark, SparkSQL and the dependency loader. Technically, Zeppelin interpreters from the same group are running in the same JVM. For more information about this, please checkout [here](../development/writingzeppelininterpreter.html). Each interpreters is belonged to a single group and registered together. All of their properties are listed in the interpreter setting like below image. -<img src="../assets/themes/zeppelin/img/screenshots/interpreter_setting_spark.png"> + +<img src="../assets/themes/zeppelin/img/screenshots/interpreter_setting_spark.png" width="500px"> ## Interpreter binding mode @@ -62,7 +68,7 @@ In 'shared' mode, every notebook bound to the Interpreter Setting will share the <img src="../assets/themes/zeppelin/img/screenshots/interpreter_persession.png" width="400px"> -## Connecting to the Existing Remote Interpreter +## Connecting to the existing remote interpreter Zeppelin users can start interpreter thread embedded in their service. This will provide flexibility to user to start interpreter on remote host. To start interpreter along with your service you have to create an instance of ``RemoteInterpreterServer`` and start it as follows: @@ -75,4 +81,4 @@ interpreter.start() The above code will start interpreter thread inside your process. Once the interpreter is started you can configure zeppelin to connect to RemoteInterpreter by checking **Connect to existing process** checkbox and then provide **Host** and **Port** on which interpreter porocess is listening as shown in the image below: -<img src="../assets/themes/zeppelin/img/screenshots/existing_interpreter.png" width="400px"> +<img src="../assets/themes/zeppelin/img/screenshots/existing_interpreter.png" width="450px"> http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/notebookashomepage.md ---------------------------------------------------------------------- diff --git a/docs/manual/notebookashomepage.md b/docs/manual/notebookashomepage.md index 48f06a6..957e61a 100644 --- a/docs/manual/notebookashomepage.md +++ b/docs/manual/notebookashomepage.md @@ -19,91 +19,84 @@ limitations under the License. --> {% include JB/setup %} -## Customize your zeppelin homepage - Zeppelin allows you to use one of the notebooks you create as your zeppelin Homepage. - With that you can brand your zeppelin installation, - adjust the instruction to your users needs and even translate to other languages. +# Customize Apache Zeppelin homepage - <br /> -### How to set a notebook as your zeppelin homepage +<div id="toc"></div> -The process for creating your homepage is very simple as shown below: - - 1. Create a notebook using zeppelin - 2. Set the notebook id in the config file - 3. Restart zeppelin +Apache Zeppelin allows you to use one of the notebooks you create as your Zeppelin Homepage. +With that you can brand your Zeppelin installation, adjust the instruction to your users needs and even translate to other languages. - <br /> -#### Create a notebook using zeppelin - Create a new notebook using zeppelin, - you can use ```%md``` interpreter for markdown content or any other interpreter you like. +## How to set a notebook as your Zeppelin homepage - You can also use the display system to generate [text](../displaysystem/display.html), - [html](../displaysystem/display.html#html),[table](../displaysystem/table.html) or - [angular](../displaysystem/angular.html) +The process for creating your homepage is very simple as shown below: - Run (shift+Enter) the notebook and see the output. Optionally, change the notebook view to report to hide - the code sections. +1. Create a notebook using Zeppelin +2. Set the notebook id in the config file +3. Restart Zeppelin - <br /> -#### Set the notebook id in the config file - To set the notebook id in the config file you should copy it from the last word in the notebook url +### Create a notebook using Zeppelin +Create a new notebook using Zeppelin, +you can use ```%md``` interpreter for markdown content or any other interpreter you like. +You can also use the display system to generate [text](../displaysystem/basicdisplaysystem.html#text), [html](../displaysystem/basicdisplaysystem.html#html), [table](../displaysystem/basicdisplaysystem.html#table) or +Angular ([backend API](../displaysystem/back-end-angular.html), [frontend API](../displaysystem/front-end-angular.html)). - for example +Run (shift+Enter) the notebook and see the output. Optionally, change the notebook view to report to hide +the code sections. - <img src="/assets/themes/zeppelin/img/screenshots/homepage_notebook_id.png" /> +### Set the notebook id in the config file +To set the notebook id in the config file, you should copy it from the last word in the notebook url. +For example, - Set the notebook id to the ```ZEPPELIN_NOTEBOOK_HOMESCREEN``` environment variable - or ```zeppelin.notebook.homescreen``` property. +<img src="/assets/themes/zeppelin/img/screenshots/homepage_notebook_id.png" /> - You can also set the ```ZEPPELIN_NOTEBOOK_HOMESCREEN_HIDE``` environment variable - or ```zeppelin.notebook.homescreen.hide``` property to hide the new notebook from the notebook list. +Set the notebook id to the ```ZEPPELIN_NOTEBOOK_HOMESCREEN``` environment variable +or ```zeppelin.notebook.homescreen``` property. - <br /> -#### Restart zeppelin - Restart your zeppelin server +You can also set the ```ZEPPELIN_NOTEBOOK_HOMESCREEN_HIDE``` environment variable +or ```zeppelin.notebook.homescreen.hide``` property to hide the new notebook from the notebook list. - ``` - ./bin/zeppelin-deamon stop - ./bin/zeppelin-deamon start - ``` - ####That's it! Open your browser and navigate to zeppelin and see your customized homepage... +### Restart Zeppelin +Restart your Zeppelin server +``` +./bin/zeppelin-deamon stop +./bin/zeppelin-deamon start +``` +That's it! Open your browser and navigate to Apache Zeppelin and see your customized homepage. <br /> -### Show notebooks list in your custom homepage -If you want to display the list of notebooks on your custom zeppelin homepage all +## Show notebooks list in your custom homepage +If you want to display the list of notebooks on your custom Apache Zeppelin homepage all you need to do is use our %angular support. - <br /> - Add the following code to a paragraph in you home page and run it... walla! you have your notebooks list. - - ```javascript - println( - """%angular - <div class="col-md-4" ng-controller="HomeCtrl as home"> - <h4>Notebooks</h4> - <div> - <h5><a href="" data-toggle="modal" data-target="#noteNameModal" style="text-decoration: none;"> - <i style="font-size: 15px;" class="icon-notebook"></i> Create new note</a></h5> - <ul style="list-style-type: none;"> - <li ng-repeat="note in home.notes.list track by $index"><i style="font-size: 10px;" class="icon-doc"></i> - <a style="text-decoration: none;" href="#/notebook/{{note.id}}">{{noteName(note)}}</a> - </li> - </ul> - </div> +Add the following code to a paragraph in you home page and run it... walla! you have your notebooks list. + +```javascript +println( +"""%angular + <div class="col-md-4" ng-controller="HomeCtrl as home"> + <h4>Notebooks</h4> + <div> + <h5><a href="" data-toggle="modal" data-target="#noteNameModal" style="text-decoration: none;"> + <i style="font-size: 15px;" class="icon-notebook"></i> Create new note</a></h5> + <ul style="list-style-type: none;"> + <li ng-repeat="note in home.notes.list track by $index"><i style="font-size: 10px;" class="icon-doc"></i> + <a style="text-decoration: none;" href="#/notebook/{{note.id}}">{{noteName(note)}}</a> + </li> + </ul> </div> - """) - ``` + </div> +""") +``` - After running the notebook you will see output similar to this one: - <img src="/assets/themes/zeppelin/img/screenshots/homepage_notebook_list.png" /> +After running the notebook you will see output similar to this one: +<img src="/assets/themes/zeppelin/img/screenshots/homepage_notebook_list.png" /> - The main trick here relays in linking the ```<div>``` to the controller: +The main trick here relays in linking the ```<div>``` to the controller: - ```javascript - <div class="col-md-4" ng-controller="HomeCtrl as home"> - ``` +```javascript +<div class="col-md-4" ng-controller="HomeCtrl as home"> +``` - Once we have ```home``` as our controller variable in our ```<div></div>``` - we can use ```home.notes.list``` to get access to the notebook list. +Once we have ```home``` as our controller variable in our ```<div></div>``` +we can use ```home.notes.list``` to get access to the notebook list. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/manual/publish.md ---------------------------------------------------------------------- diff --git a/docs/manual/publish.md b/docs/manual/publish.md index 1559fba..a6dea0d 100644 --- a/docs/manual/publish.md +++ b/docs/manual/publish.md @@ -19,13 +19,14 @@ limitations under the License. --> {% include JB/setup %} -## How can you publish your paragraph ? -Zeppelin provides a feature for publishing your notebook paragraph results. Using this feature, you can show Zeppelin notebook paragraph results in your own website. -It's very straightforward. Just use `<iframe>` tag in your page. +# How can you publish your paragraph ? + +<div id="toc"></div> -> **Warning**: Please use this feature with caution and in a trusted environment only, as Zeppelin entire Webapp could be accessible for whoever visits your website. +Apache Zeppelin provides a feature for publishing your notebook paragraph results. Using this feature, you can show Zeppelin notebook paragraph results in your own website. +It's very straightforward. Just use `<iframe>` tag in your page. -### Copy a Paragraph Link +## Copy a Paragraph Link A first step to publish your paragraph result is **Copy a Paragraph Link**. * After running a paragraph in your Zeppelin notebook, click a gear button located on the right side. Then, click **Link this Paragraph** menu like below image. @@ -34,7 +35,7 @@ A first step to publish your paragraph result is **Copy a Paragraph Link**. * Just copy the provided link. <center><img src="../assets/themes/zeppelin/img/docs-img/copy-the-link.png" height="100%" width="100%"></center> -### Embed the Paragraph to Your Website +## Embed the Paragraph to Your Website For publishing the copied paragraph, you may use `<iframe>` tag in your website page. For example, @@ -45,4 +46,4 @@ For example, Finally, you can show off your beautiful visualization results in your website. <center><img src="../assets/themes/zeppelin/img/docs-img/your-website.png" height="90%" width="90%"></center> -> **Note**: To embed the paragraph in a website, Zeppelin needs to be reachable by that website. +> **Note**: To embed the paragraph in a website, Apache Zeppelin needs to be reachable by that website. And please use this feature with caution and in a trusted environment only, as Zeppelin entire Webapp could be accessible by whoever visits your website. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/quickstart/explorezeppelinui.md ---------------------------------------------------------------------- diff --git a/docs/quickstart/explorezeppelinui.md b/docs/quickstart/explorezeppelinui.md index b1235d1..9e18907 100644 --- a/docs/quickstart/explorezeppelinui.md +++ b/docs/quickstart/explorezeppelinui.md @@ -1,6 +1,6 @@ --- layout: page -title: "Explore Zeppelin UI" +title: "Explore Apache Zeppelin UI" description: "Description of Zeppelin UI Layout" group: quickstart --- @@ -17,9 +17,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -## Home Page +# Explore Apache Zeppelin UI -The first time you connect to Zeppelin, you'll land at the main page similar to the below screen capture +<div id="toc"></div> + +## Main home + +The first time you connect to Zeppelin, you'll land at the main page similar to the below screen capture. <img src="../assets/themes/zeppelin/img/ui-img/homepage.png" /> @@ -28,7 +32,7 @@ On the left of the page are listed all existing notes. Those notes are stored by You can filter them by name using the input text form. You can also create an new note, refresh the list of existing notes (in case you manually copy them into the `$ZEPPELIN_HOME/notebook` folder) and import a note. -<img src="../assets/themes/zeppelin/img/ui-img/notes_management.png" /> +<img src="../assets/themes/zeppelin/img/ui-img/notes_management.png" width="230px" /> When clicking on `Import Note` link, a new dialog open. From there you can import your note from local disk or from a remote location if you provide the URL. @@ -40,7 +44,7 @@ By default, the name of the imported note is the same as the original note but y <br /> ## Menus -### 1. Notebook +### Notebook The `Notebook` menu proposes almost the same features as the note management section in the home page. From the drop-down menu you can: @@ -48,9 +52,9 @@ The `Notebook` menu proposes almost the same features as the note management sec 2. Filter node by name 3. Create a new note -<img src="../assets/themes/zeppelin/img/ui-img/notebook_menu.png" /> +<img src="../assets/themes/zeppelin/img/ui-img/notebook_menu.png" width="170px" /> -### 2. Interpreter +### Interpreter In this menu you can: @@ -59,7 +63,7 @@ In this menu you can: <img src="../assets/themes/zeppelin/img/ui-img/interpreter_menu.png" /> -### 3. Configuration +### Configuration This menu displays all the Zeppelin configuration that are set in the config file `$ZEPPELIN_HOME/conf/zeppelin-site.xml` @@ -88,7 +92,7 @@ On the top-right corner of each paragraph there are some commands to: To configure the paragraph, just click on the gear icon: -<img src="../assets/themes/zeppelin/img/ui-img/paragraph_configuration_dialog.png" /> +<img src="../assets/themes/zeppelin/img/ui-img/paragraph_configuration_dialog.png" width="180px" /> From this dialog, you can (in descending order): @@ -124,7 +128,7 @@ In the middle of the toolbar you can find the command buttons: * delete the note * schedule the execution of **all paragraph** using a CRON syntax -<img src="../assets/themes/zeppelin/img/ui-img/note_commands.png" /> +<img src="../assets/themes/zeppelin/img/ui-img/note_commands.png" width="300px"/> On the right of the note tool bar you can find configuration icons: @@ -133,4 +137,4 @@ On the right of the note tool bar you can find configuration icons: * configure the note permissions * switch the node display mode between `default`, `simple` and `report` -<img src="../assets/themes/zeppelin/img/ui-img/note_configuration.png" /> +<img src="../assets/themes/zeppelin/img/ui-img/note_configuration.png" width="180px"/> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/quickstart/tutorial.md ---------------------------------------------------------------------- diff --git a/docs/quickstart/tutorial.md b/docs/quickstart/tutorial.md index 7506b74..9333d14 100644 --- a/docs/quickstart/tutorial.md +++ b/docs/quickstart/tutorial.md @@ -17,16 +17,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -## Zeppelin Tutorial +# Zeppelin Tutorial + +<div id="toc"></div> This tutorial walks you through some of the fundamental Zeppelin concepts. We will assume you have already installed Zeppelin. If not, please see [here](../install/install.html) first. Current main backend processing engine of Zeppelin is [Apache Spark](https://spark.apache.org). If you're new to this system, you might want to start by getting an idea of how it processes data to get the most out of Zeppelin. -<br /> ## Tutorial with Local File -### 1. Data Refine +### Data Refine Before you start Zeppelin tutorial, you will need to download [bank.zip](http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip). @@ -52,7 +53,7 @@ val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map( bank.toDF().registerTempTable("bank") ``` -### 2. Data Retrieval +### Data Retrieval Suppose we want to see age distribution from `bank`. To do this, run: @@ -75,7 +76,7 @@ Now we want to see age distribution with certain marital status and add combo bo <br /> ## Tutorial with Streaming Data -### 1. Data Refine +### Data Refine Since this tutorial is based on Twitter's sample tweet stream, you must configure authentication with a Twitter account. To do this, take a look at [Twitter Credential Setup](https://databricks-training.s3.amazonaws.com/realtime-processing-with-spark-streaming.html#twitter-credential-setup). After you get API keys, you should fill out credential related values(`apiKey`, `apiSecret`, `accessToken`, `accessTokenSecret`) with your API keys on following script. @@ -135,7 +136,7 @@ twt.print ssc.start() ``` -### 2. Data Retrieval +### Data Retrieval For each following script, every time you click run button you will see different result since it is based on real-time data. @@ -192,4 +193,4 @@ To check how people think about girls using `sentiment` function we've made abov ```sql %sql select sentiment(text), count(1) from tweets where text like '%girl%' group by sentiment(text) -``` +``` \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/rest-api/rest-configuration.md ---------------------------------------------------------------------- diff --git a/docs/rest-api/rest-configuration.md b/docs/rest-api/rest-configuration.md index e445156..4323b6d 100644 --- a/docs/rest-api/rest-configuration.md +++ b/docs/rest-api/rest-configuration.md @@ -19,18 +19,22 @@ limitations under the License. --> {% include JB/setup %} -## Zeppelin REST API - Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +# Apache Zeppelin Configuration REST API - All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). +<div id="toc"></div> - If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](../../community.html). +## Overview +Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. +Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). + +If you work with Apache Zeppelin and find a need for an additional REST API, please [file an issue or send us an email](http://zeppelin.apache.org/community.html). +nd a need for an additional REST API, please [file an issue or send us mail](../../community.html). - <br /> ## Configuration REST API list -### List Configurations +### List all key/value pair of configurations <table class="table-configuration"> <col width="200"> <tr> @@ -89,7 +93,7 @@ limitations under the License. <br/> -### List Configurations(prefix match) +### List all prefix matched key/value pair of configurations <table class="table-configuration"> <col width="200"> <tr> @@ -128,3 +132,4 @@ limitations under the License. </td> </tr> </table> + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/rest-api/rest-interpreter.md ---------------------------------------------------------------------- diff --git a/docs/rest-api/rest-interpreter.md b/docs/rest-api/rest-interpreter.md index 8a80b11..4d7c49d 100644 --- a/docs/rest-api/rest-interpreter.md +++ b/docs/rest-api/rest-interpreter.md @@ -19,19 +19,22 @@ limitations under the License. --> {% include JB/setup %} -## Zeppelin REST API - Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +# Apache Zeppelin Interpreter REST API - All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). +<div id="toc"></div> - If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](http://zeppelin.apache.org/community.html). +## Overview +Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. +Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). + +If you work with Apache Zeppelin and find a need for an additional REST API, please [file an issue or send us an email](http://zeppelin.apache.org/community.html). - <br /> ## Interpreter REST API List - The role of registered interpreters, settings and interpreters group are described in [here](../manual/interpreters.html). +The role of registered interpreters, settings and interpreters group are described in [here](../manual/interpreters.html). -### List of Registered Interpreters +### List of registered interpreters <table class="table-configuration"> <col width="200"> @@ -102,8 +105,8 @@ limitations under the License. </table> <br/> +### List of registered interpreter settings -### List of Interpreter Settings <table class="table-configuration"> <col width="200"> <tr> @@ -177,7 +180,7 @@ limitations under the License. </table> <br/> -### Create an Interpreter Setting +### Create a new interpreter setting <table class="table-configuration"> <col width="200"> @@ -256,10 +259,8 @@ limitations under the License. </tr> </table> - <br/> - -### Update an Interpreter Setting +### Update an interpreter setting <table class="table-configuration"> <col width="200"> <tr> @@ -337,9 +338,8 @@ limitations under the License. </tr> </table> - <br/> -### Delete an Interpreter Setting +### Delete an interpreter setting <table class="table-configuration"> <col width="200"> @@ -369,7 +369,7 @@ limitations under the License. <br/> -### Restart an Interpreter +### Restart an interpreter <table class="table-configuration"> <col width="200"> @@ -398,7 +398,7 @@ limitations under the License. </table> <br/> -### Add repository for dependency resolving +### Add a new repository for dependency resolving <table class="table-configuration"> <col width="200"> @@ -439,7 +439,7 @@ limitations under the License. </table> <br/> -### Delete repository for dependency resolving +### Delete a repository for dependency resolving <table class="table-configuration"> <col width="200"> @@ -460,3 +460,4 @@ limitations under the License. <td> 500 </td> </tr> </table> + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/rest-api/rest-notebook.md ---------------------------------------------------------------------- diff --git a/docs/rest-api/rest-notebook.md b/docs/rest-api/rest-notebook.md index c02b529..edbb595 100644 --- a/docs/rest-api/rest-notebook.md +++ b/docs/rest-api/rest-notebook.md @@ -19,20 +19,23 @@ limitations under the License. --> {% include JB/setup %} -## Zeppelin REST API - Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +# Apache Zeppelin Notebook REST API - All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). +<div id="toc"></div> - If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](../../community.html). +## Overview +Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. +Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc). + +If you work with Apache Zeppelin and find a need for an additional REST API, please [file an issue or send us an email](http://zeppelin.apache.org/community.html). -<br /> ## Notebook REST API List Notebooks REST API supports the following operations: List, Create, Get, Delete, Clone, Run, Export, Import as detailed in the following tables. -### List Notebooks +### List of the notebooks <table class="table-configuration"> <col width="200"> <tr> @@ -74,8 +77,7 @@ limitations under the License. </table> <br/> - -### Create Notebook +### Create a new notebook <table class="table-configuration"> <col width="200"> <tr> @@ -129,8 +131,7 @@ limitations under the License. </table> <br/> - -### Get Notebook +### Get an existing notebook information <table class="table-configuration"> <col width="200"> <tr> @@ -227,8 +228,7 @@ limitations under the License. </table> <br/> - -### Delete Notebook +### Delete a notebook <table class="table-configuration"> <col width="200"> <tr> @@ -255,8 +255,7 @@ limitations under the License. </table> <br/> - -### Clone Notebook +### Clone a notebook <table class="table-configuration"> <col width="200"> <tr> @@ -294,13 +293,12 @@ limitations under the License. </table> <br/> - -### Run Notebook Job +### Run all paragraphs <table class="table-configuration"> <col width="200"> <tr> <td>Description</td> - <td>This ```POST``` method runs all paragraph in the given notebook id. + <td>This ```POST``` method runs all paragraphs in the given notebook id. </td> </tr> <tr> @@ -322,13 +320,12 @@ limitations under the License. </table> <br/> - -### Stop Notebook Job +### Stop all paragraphs <table class="table-configuration"> <col width="200"> <tr> <td>Description</td> - <td>This ```DELETE``` method stops all paragraph in the given notebook id. + <td>This ```DELETE``` method stops all paragraphs in the given notebook id. </td> </tr> <tr> @@ -350,13 +347,12 @@ limitations under the License. </table> <br/> - -### Get Notebook Job +### Get the status of all paragraphs <table class="table-configuration"> <col width="200"> <tr> <td>Description</td> - <td>This ```GET``` method gets all paragraph status by the given notebook id. + <td>This ```GET``` method gets the status of all paragraphs by the given notebook id. The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date. </td> </tr> @@ -397,8 +393,7 @@ limitations under the License. </table> <br/> - -### Run Paragraph Job +### Run a paragraph <table class="table-configuration"> <col width="200"> <tr> @@ -436,8 +431,7 @@ limitations under the License. </table> <br/> - -### Stop Paragraph Job +### Stop a paragraph <table class="table-configuration"> <col width="200"> <tr> @@ -464,7 +458,6 @@ limitations under the License. </table> <br/> - ### Add Cron Job <table class="table-configuration"> <col width="200"> @@ -553,8 +546,7 @@ limitations under the License. </table> <br /> - -### Full Text Search Through the Paragraphs in All Notebooks +### Full text search through the paragraphs in all notebooks <table class="table-configuration"> <col width="200"> <tr> @@ -592,8 +584,7 @@ limitations under the License. </table> <br/> - -### Create Paragraph +### Create a new paragraph <table class="table-configuration"> <col width="200"> <tr> @@ -643,8 +634,7 @@ limitations under the License. </table> <br/> - -### Get Paragraph +### Get a paragraph information <table class="table-configuration"> <col width="200"> <tr> @@ -712,8 +702,7 @@ limitations under the License. </table> <br/> - -### Move Paragraph +### Move a paragraph to the specific index <table class="table-configuration"> <col width="200"> <tr> @@ -741,8 +730,7 @@ limitations under the License. <br/> - -### Delete Paragraph +### Delete a paragraph <table class="table-configuration"> <col width="200"> <tr> @@ -769,8 +757,7 @@ limitations under the License. </table> <br /> - -### Export Notebook +### Export a notebook <table class="table-configuration"> <col width="200"> <tr> @@ -820,8 +807,7 @@ limitations under the License. </table> <br /> - -### Import Notebook +### Import a notebook <table class="table-configuration"> <col width="200"> <tr> @@ -879,3 +865,4 @@ limitations under the License. </tr> </tr> </table> + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/security/authentication.md ---------------------------------------------------------------------- diff --git a/docs/security/authentication.md b/docs/security/authentication.md index e7a793d..7ce160a 100644 --- a/docs/security/authentication.md +++ b/docs/security/authentication.md @@ -19,11 +19,12 @@ limitations under the License. --> # Authentication for NGINX -Authentication is company-specific. +<div id="toc"></div> -One option is to use [Basic Access Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) +Authentication is company-specific. +One option is to use [Basic Access Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). -### HTTP Basic Authentication using NGINX +## HTTP Basic Authentication using NGINX > **Quote from Wikipedia:** NGINX is a web server. It can act as a reverse > proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a > load balancer and an HTTP cache. @@ -39,7 +40,7 @@ This instruction based on Ubuntu 14.04 LTS but may work with other OS with few c ``` $ apt-get install nginx ``` - *Important: On pre 1.3.13 version of NGINX, Proxy for Websocket may not fully works. Please use latest version of NGINX. See: [NGINX documentation](https://www.nginx.com/blog/websocket-nginx/)* + > **NOTE :** On pre 1.3.13 version of NGINX, Proxy for Websocket may not fully works. Please use latest version of NGINX. See: [NGINX documentation](https://www.nginx.com/blog/websocket-nginx/). 1. Setup init script in NGINX @@ -119,12 +120,12 @@ This instruction based on Ubuntu 14.04 LTS but may work with other OS with few c 1. More security consideration * Using HTTPS connection with Basic Authentication is highly recommended since basic auth without encryption may expose your important credential information over the network. -* Using [Shiro Security feature built-into Zeppelin](https://github.com/apache/zeppelin/blob/master/SECURITY-README.md) is recommended if you prefer all-in-one solution for authentication but NGINX may provides ad-hoc solution for re-use authentication served by your system's NGINX server or in case of you need to separate authentication from zeppelin server. +* Using [Shiro Security feature built-into Zeppelin](./shiroauthentication.html) is recommended if you prefer all-in-one solution for authentication but NGINX may provides ad-hoc solution for re-use authentication served by your system's NGINX server or in case of you need to separate authentication from zeppelin server. * It is recommended to isolate direct connection to Zeppelin server from public internet or external services to secure your zeppelin instance from unexpected attack or problems caused by public zone. -### Another option +## Another option Another option is to have an authentication server that can verify user credentials in an LDAP server. If an incoming request to the Zeppelin server does not have a cookie with user information encrypted with the authentication server public key, the user is redirected to the authentication server. Once the user is verified, the authentication server redirects the browser to a specific URL in the Zeppelin server which sets the authentication cookie in the browser. -The end result is that all requests to the Zeppelin web server have the authentication cookie which contains user and groups information. +The end result is that all requests to the Zeppelin web server have the authentication cookie which contains user and groups information. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/security/interpreter_authorization.md ---------------------------------------------------------------------- diff --git a/docs/security/interpreter_authorization.md b/docs/security/interpreter_authorization.md index 3809cd4..6e59e07 100644 --- a/docs/security/interpreter_authorization.md +++ b/docs/security/interpreter_authorization.md @@ -19,6 +19,8 @@ limitations under the License. --> # Interpreter and Data Source Authorization +<div id="toc"></div> + ## Interpreter Authorization Interpreter authorization involves permissions like creating an interpreter and execution queries using it. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/security/notebook_authorization.md ---------------------------------------------------------------------- diff --git a/docs/security/notebook_authorization.md b/docs/security/notebook_authorization.md index 7793d4f..8788567 100644 --- a/docs/security/notebook_authorization.md +++ b/docs/security/notebook_authorization.md @@ -19,6 +19,9 @@ limitations under the License. --> # Zeppelin Notebook Authorization +<div id="toc"></div> + +## Overview We assume that there is an **Shiro Authentication** component that associates a user string and a set of group strings with every NotebookSocket. If you don't set the authentication components yet, please check [Shiro authentication for Apache Zeppelin](./shiroauthentication.html) first. @@ -44,12 +47,12 @@ If someone who doesn't have **read** permission is trying to access the notebook ## How it works In this section, we will explain the detail about how the notebook authorization works in backend side. -#### NotebookServer +### NotebookServer The [NotebookServer](https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java) classifies every notebook operations into three categories: **Read**, **Write**, **Manage**. Before executing a notebook operation, it checks if the user and the groups associated with the `NotebookSocket` have permissions. For example, before executing a **Read** operation, it checks if the user and the groups have at least one entity that belongs to the **Reader** entities. -#### Notebook REST API call +### Notebook REST API call Zeppelin executes a [REST API call](https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java) for the notebook permission information. In the backend side, Zeppelin gets the user information for the connection and allows the operation if the users and groups associated with the current user have at least one entity that belongs to owner entities for the notebook. http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/security/shiroauthentication.md ---------------------------------------------------------------------- diff --git a/docs/security/shiroauthentication.md b/docs/security/shiroauthentication.md index 969e2f4..733ff11 100644 --- a/docs/security/shiroauthentication.md +++ b/docs/security/shiroauthentication.md @@ -20,6 +20,10 @@ limitations under the License. {% include JB/setup %} # Shiro authentication for Apache Zeppelin + +<div id="toc"></div> + +## Overview [Apache Shiro](http://shiro.apache.org/) is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. In this documentation, we will explain step by step how Shiro works for Zeppelin notebook authentication. When you connect to Apache Zeppelin, you will be asked to enter your credentials. Once you logged in, then you have access to all notes including other user's notes. @@ -27,28 +31,28 @@ When you connect to Apache Zeppelin, you will be asked to enter your credentials ## Security Setup You can setup **Zeppelin notebook authentication** in some simple steps. -####1. Secure the HTTP channel -To secure the HTTP channel, you have to change both **anon** and **authcBasic** settings in `conf/shiro.ini`. In here, **anon** means "the access is anonymous" and **authcBasic** means "basic auth security". +### 1. Secure the HTTP channel +To secure the HTTP channel, you have to change both **anon** and **authc** settings in `conf/shiro.ini`. In here, **anon** means "the access is anonymous" and **authc** means "formed auth security". The default status of them is ``` /** = anon -#/** = authcBasic +#/** = authc ``` -Deactivate the line "/** = anon" and activate the line "/** = authcBasic" in `conf/shiro.ini` file. +Deactivate the line "/** = anon" and activate the line "/** = authc" in `conf/shiro.ini` file. ``` #/** = anon -/** = authcBasic +/** = authc ``` For the further information about `shiro.ini` file format, please refer to [Shiro Configuration](http://shiro.apache.org/configuration.html#Configuration-INISections). -####2. Secure the Websocket channel +### 2. Secure the Websocket channel Set to property **zeppelin.anonymous.allowed** to **false** in `conf/zeppelin-site.xml`. If you don't have this file yet, just copy `conf/zeppelin-site.xml.template` to `conf/zeppelin-site.xml`. -####3. Start Zeppelin +### 3. Start Zeppelin ``` bin/zeppelin-daemon.sh start (or restart) @@ -56,7 +60,7 @@ bin/zeppelin-daemon.sh start (or restart) Then you can browse Zeppelin at [http://localhost:8080](http://localhost:8080). -####4. Login +### 4. Login Finally, you can login using one of the below **username/password** combinations. <center><img src="../assets/themes/zeppelin/img/docs-img/zeppelin-login.png"></center> @@ -67,10 +71,8 @@ user1 = password2 user2 = password3 ``` -Those combinations are defined in the `conf/shiro.ini` file. - -####5. Groups and permissions (optional) -In case you want to leverage user groups and permissions, use one of the following configuration for LDAP or AD under `[main]` segment of shiro.ini +### 5. Groups and permissions (optional) +In case you want to leverage user groups and permissions, use one of the following configuration for LDAP or AD under `[main]` segment in `shiro.ini` ``` activeDirectoryRealm = org.apache.zeppelin.server.ActiveDirectoryGroupRealm http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/docs/storage/storage.md ---------------------------------------------------------------------- diff --git a/docs/storage/storage.md b/docs/storage/storage.md index 36aae50..19ddd95 100644 --- a/docs/storage/storage.md +++ b/docs/storage/storage.md @@ -17,14 +17,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -## Notebook Storage +# Notebook storage options for Apache Zeppelin -Zeppelin has a pluggable notebook storage mechanism controlled by `zeppelin.notebook.storage` configuration option with multiple implementations. -There are few Notebook storage systems available for a use out of the box: - - (default) all notes are saved in the notebook folder in your local File System - `VFSNotebookRepo` - - use local file system and version it using local Git repository - `GitNotebookRepo` - - storage using Amazon S3 service - `S3NotebookRepo` - - storage using Azure service - `AzureNotebookRepo` +<div id="toc"></div> + +## Overview + +Apache Zeppelin has a pluggable notebook storage mechanism controlled by `zeppelin.notebook.storage` configuration option with multiple implementations. +There are few notebook storage systems available for a use out of the box: + + * (default) all notes are saved in the notebook folder in your local File System - `VFSNotebookRepo` + * use local file system and version it using local Git repository - `GitNotebookRepo` + * storage using Amazon S3 service - `S3NotebookRepo` + * storage using Azure service - `AzureNotebookRepo` Multiple storage systems can be used at the same time by providing a comma-separated list of the class-names in the configuration. By default, only first two of them will be automatically kept in sync by Zeppelin. @@ -146,8 +151,6 @@ Or using the following setting in **zeppelin-site.xml**: Using `AzureNotebookRepo` you can connect your Zeppelin with your Azure account for notebook storage. -</br> - First of all, input your `AccountName`, `AccountKey`, and `Share Name` in the file **zeppelin-site.xml** by commenting out and completing the next properties: ``` @@ -233,4 +236,4 @@ export ZEPPELINHUB_API_TOKEN = ZeppelinHub token export ZEPPELINHUB_API_ADDRESS = address of ZeppelinHub service (e.g. https://www.zeppelinhub.com) ``` -You can get more information on generating `token` and using authentication on the corresponding [help page](http://help.zeppelinhub.com/zeppelin_integration/#add-a-new-zeppelin-instance-and-generate-a-token). +You can get more information on generating `token` and using authentication on the corresponding [help page](http://help.zeppelinhub.com/zeppelin_integration/#add-a-new-zeppelin-instance-and-generate-a-token). \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/licenses/LICENSE-jekyll-table-of-contents ---------------------------------------------------------------------- diff --git a/licenses/LICENSE-jekyll-table-of-contents b/licenses/LICENSE-jekyll-table-of-contents new file mode 100644 index 0000000..a7bffaf --- /dev/null +++ b/licenses/LICENSE-jekyll-table-of-contents @@ -0,0 +1,19 @@ +Copyright (c) 2013 Alex Ghiculescu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zeppelin/blob/5b01c8bb/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 424f220..78a5cd3 100755 --- a/pom.xml +++ b/pom.xml @@ -484,6 +484,9 @@ <!-- bundled from anchor --> <exclude>docs/assets/themes/zeppelin/js/anchor.min.js</exclude> + <!-- bundled from toc --> + <exclude>docs/assets/themes/zeppelin/js/toc.js</exclude> + <!-- bundled from jekyll --> <exclude>docs/assets/themes/zeppelin/css/syntax.css</exclude>
