-InterpreterSetting is configuration of a given InterpreterGroup and a unit of start/stop interpreter.
-All Interpreters in the same InterpreterSetting are launched in a single, separate JVM process. The Interpreter communicates with Zeppelin engine via thrift.
+[InterpreterSetting](https://github.com/apache/zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java) is configuration of a given [InterpreterGroup](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterGroup.java) and a unit of start/stop interpreter.
+All Interpreters in the same InterpreterSetting are launched in a single, separate JVM process. The Interpreter communicates with Zeppelin engine via **[Thrift](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/thrift/RemoteInterpreterService.thrift)**.
-In 'Separate Interpreter for each note' mode, new Interpreter instance will be created per notebook. But it still runs on the same JVM while they're in the same InterpreterSettings.
+In 'Separate Interpreter(scoped / isolated) for each note' mode which you can see at the **Interpreter Setting** menu when you create a new interpreter, new interpreter instance will be created per notebook. But it still runs on the same JVM while they're in the same InterpreterSettings.
-### Make your own Interpreter
+## Make your own Interpreter
Creating a new interpreter is quite simple. Just extend [org.apache.zeppelin.interpreter](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java) abstract class and implement some methods.
You can include `org.apache.zeppelin:zeppelin-interpreter:[VERSION]` artifact in your build system. And you should your jars under your interpreter directory with specific directory name. Zeppelin server reads interpreter directories recursively and initializes interpreters including your own interpreter.
@@ -91,18 +95,18 @@ The name of the interpreter is what you later write to identify a paragraph whic
some interpreter specific code...
```
-### Programming Languages for Interpreter
+## Programming Languages for Interpreter
If the interpreter uses a specific programming language ( like Scala, Python, SQL ), it is generally recommended to add a syntax highlighting supported for that to the notebook paragraph editor.
To check out the list of languages supported, see the `mode-*.js` files under `zeppelin-web/bower_components/ace-builds/src-noconflict` or from [github.com/ajaxorg/ace-builds](https://github.com/ajaxorg/ace-builds/tree/master/src-noconflict).
If you want to add a new set of syntax highlighting,
-1. Add the `mode-*.js` file to `zeppelin-web/bower.json` ( when built, `zeppelin-web/src/index.html` will be changed automatically. ).
-2. Add to the list of `editorMode` in `zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js` - it follows the pattern 'ace/mode/x' where x is the name.
-3. Add to the code that checks for `%` prefix and calls `session.setMode(editorMode.x)` in `setParagraphMode` located in `zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js`.
+1. Add the `mode-*.js` file to [zeppelin-web/bower.json](https://github.com/apache/zeppelin/blob/master/zeppelin-web/bower.json) ( when built, [zeppelin-web/src/index.html](https://github.com/apache/zeppelin/blob/master/zeppelin-web/src/index.html) will be changed automatically. ).
+2. Add to the list of `editorMode` in [zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js](https://github.com/apache/zeppelin/blob/master/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js) - it follows the pattern 'ace/mode/x' where x is the name.
+3. Add to the code that checks for `%` prefix and calls `session.setMode(editorMode.x)` in `setParagraphMode` located in [zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js](https://github.com/apache/zeppelin/blob/master/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js).
-### Install your interpreter binary
+## Install your interpreter binary
Once you have built your interpreter, you can place it under the interpreter directory with all its dependencies.
@@ -110,7 +114,7 @@ Once you have built your interpreter, you can place it under the interpreter dir
[ZEPPELIN_HOME]/interpreter/[INTERPRETER_NAME]/
```
-### Configure your interpreter
+## Configure your interpreter
To configure your interpreter you need to follow these steps:
@@ -119,12 +123,12 @@ To configure your interpreter you need to follow these steps:
Property value is comma separated [INTERPRETER\_CLASS\_NAME].
For example,
-```
-**z** object on the front-end side to expose the same capabilities.
+This **z** object is accessible in the Angular isolated scope for each paragraph.
-This **`z`** object is accessible in the Angular isolated scope for each paragraph.
-
| Actions | diff --git a/docs/index.md b/docs/index.md index 282820b0392..10fc7e1588e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -124,9 +124,9 @@ Join to our [Mailing list](https://zeppelin.apache.org/community.html) and repor ####Quick Start * Getting Started - * [Quick Start](./install/install.html) for basic instructions on installing Zeppelin - * [Configuration](./install/install.html#zeppelin-configuration) lists for Zeppelin - * [Explore Apache Zeppelin UI](./quickstart/explorezeppelinui.html): basic components of Zeppelin home + * [Quick Start](./install/install.html) for basic instructions on installing Apache Zeppelin + * [Configuration](./install/install.html#apache-zeppelin-configuration) lists for Apache Zeppelin + * [Explore Apache Zeppelin UI](./quickstart/explorezeppelinui.html): basic components of Apache Zeppelin home * [Tutorial](./quickstart/tutorial.html): a short walk-through tutorial that uses Apache Spark backend * Basic Feature Guide * [Dynamic Form](./manual/dynamicform.html): a step by step guide for creating dynamic forms @@ -139,11 +139,10 @@ Join to our [Mailing list](https://zeppelin.apache.org/community.html) and repor ####Interpreter * [Interpreters in Apache Zeppelin](./manual/interpreters.html): what is interpreter group? how can you set interpreters in Apache Zeppelin? -* Available Interpreters: currently, about 20 interpreters are available in Apache Zeppelin. * Usage - * [Dynamic Interpreter Loading](./manual/dynamicinterpreterload.html) using REST API + * [Interpreter Installation](./manual/interpreterinstallation.html): Install not only community managed interpreters but also 3rd party interpreters * [Interpreter Dependency Management](./manual/dependencymanagement.html) when you include external libraries to interpreter - +* Available Interpreters: currently, about 20 interpreters are available in Apache Zeppelin. ####Display System @@ -163,6 +162,7 @@ Join to our [Mailing list](https://zeppelin.apache.org/community.html) and repor * [Interpreter API](./rest-api/rest-interpreter.html) * [Notebook API](./rest-api/rest-notebook.html) * [Configuration API](./rest-api/rest-configuration.html) + * [Credential API](./rest-api/rest-credential.html) * Security: available security support in Apache Zeppelin * [Authentication for NGINX](./security/authentication.html) * [Shiro Authentication](./security/shiroauthentication.html) diff --git a/docs/install/install.md b/docs/install/install.md index e3dcd2c0005..bcc93da224d 100644 --- a/docs/install/install.md +++ b/docs/install/install.md @@ -19,38 +19,108 @@ limitations under the License. --> {% include JB/setup %} -## Zeppelin Installation -Welcome to your first trial to explore Zeppelin! +# Quick Start +Welcome to your first trial to explore Apache Zeppelin! +This page will help you to get started and here is the list of topics covered. -In this documentation, we will explain how you can install Zeppelin from **Binary Package** or build from **Source** by yourself. Plus, you can see all of Zeppelin's configurations in the [Zeppelin Configuration](install.html#zeppelin-configuration) section below. + -### Install with Binary Package +## Installation -If you want to install Zeppelin with latest binary package, please visit [this page](http://zeppelin.apache.org/download.html). +Apache Zeppelin officially supports and is tested on next environments. -### Build from Zeppelin Source +
|---|
| Name | +Value | +
|---|---|
| Oracle JDK | +1.7 (set JAVA_HOME) |
+
| OS | +Mac OSX Ubuntu 14.X CentOS 6.X Windows 7 Pro SP1 |
+
| Name | +Value | +
|---|---|
| Git | ++ |
| Maven | +3.1.x or higher | +
| ZEPPELIN_NOTEBOOK_HOMESCREEN | zeppelin.notebook.homescreen | - | A notebook id displayed in Zeppelin homescreen i.e. 2A94M5J1Z |
+ A notebook id displayed in Apache Zeppelin homescreen i.e. 2A94M5J1Z |
|
| ZEPPELIN_NOTEBOOK_HOMESCREEN_HIDE | zeppelin.notebook.homescreen.hide | false | -This value can be "true" when to hide the notebook id set by ZEPPELIN_NOTEBOOK_HOMESCREEN on the Zeppelin homescreen. For the further information, please read Customize your Zeppelin homepage. |
+ This value can be "true" when to hide the notebook id set by ZEPPELIN_NOTEBOOK_HOMESCREEN on the Apache Zeppelin homescreen. For the further information, please read Customize your Zeppelin homepage. |
|
| ZEPPELIN_WAR_TEMPDIR | @@ -228,13 +314,13 @@ You can configure Zeppelin with both **environment variables** in `conf/zeppelinZEPPELIN_NOTEBOOK_DIR | zeppelin.notebook.dir | notebook | -The root directory where Zeppelin notebook directories are saved | +The root directory where notebook directories are saved |
| ZEPPELIN_NOTEBOOK_S3_BUCKET | zeppelin.notebook.s3.bucket | zeppelin | -S3 Bucket where Zeppelin notebook files will be saved | +S3 Bucket where notebook files will be saved | |
| ZEPPELIN_NOTEBOOK_S3_USER | @@ -270,7 +356,7 @@ You can configure Zeppelin with both **environment variables** in `conf/zeppelinZEPPELIN_NOTEBOOK_AZURE_SHARE | zeppelin.notebook.azure.share | zeppelin | -Share where the Zeppelin notebook files will be saved | +Share where the notebook files will be saved |
| ZEPPELIN_NOTEBOOK_AZURE_USER | @@ -291,13 +377,13 @@ You can configure Zeppelin with both **environment variables** in `conf/zeppelinorg.apache.zeppelin.spark.SparkInterpreter, org.apache.zeppelin.spark.PySparkInterpreter, org.apache.zeppelin.spark.SparkSqlInterpreter, org.apache.zeppelin.spark.DepInterpreter, org.apache.zeppelin.markdown.Markdown, org.apache.zeppelin.shell.ShellInterpreter, ... |
- Comma separated interpreter configurations [Class] The first interpreter will be a default value. It means only the first interpreter in this list can be available without %interpreter_name annotation in Zeppelin notebook paragraph. |
+ Comma separated interpreter configurations [Class] The first interpreter will be a default value. It means only the first interpreter in this list can be available without %interpreter_name annotation in notebook paragraph. |
||
| ZEPPELIN_INTERPRETER_DIR | zeppelin.interpreter.dir | interpreter | -Zeppelin interpreter directory | +Interpreter directory | |
| ZEPPELIN_WEBSOCKET_MAX_TEXT_MESSAGE_SIZE | @@ -305,4 +391,4 @@ You can configure Zeppelin with both **environment variables** in `conf/zeppelin1024000 | Size in characters of the maximum text message to be received by websocket. |
| Name | @@ -33,7 +37,7 @@ This interpreter supports the [Geode](http://geode.incubator.apache.org/) [Objec This [Video Tutorial](https://www.youtube.com/watch?v=zvzzA9GXu3Q) illustrates some of the features provided by the `Geode Interpreter`. -### Create Interpreter +## Create Interpreter By default Zeppelin creates one `Geode/OQL` instance. You can remove it or create more instances. Multiple Geode instances can be created, each configured to the same or different backend Geode cluster. But over time a `Notebook` can have only one Geode interpreter instance `bound`. That means you _cannot_ connect to different Geode clusters in the same `Notebook`. This is a known Zeppelin limitation. @@ -42,10 +46,10 @@ To create new Geode instance open the `Interpreter` section and click the `+Crea > Note: The `Name` of the instance is used only to distinguish the instances while binding them to the `Notebook`. The `Name` is irrelevant inside the `Notebook`. In the `Notebook` you must use `%geode.oql` 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 Geode from the `Interpreter` section. The Geode interpreter expresses the following properties:
|---|
| Name | @@ -222,7 +226,8 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/hive_password |
|---|
| Artifact | @@ -237,8 +242,9 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/
|---|
| Name | @@ -261,7 +267,7 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/phoenix_password |
|---|
| Artifact | @@ -272,8 +278,9 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/
|---|
| Name | @@ -288,7 +295,8 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/jdbc:tajo://localhost:26002/default |
|---|
| Artifact | @@ -300,9 +308,9 @@ To develop this functionality use this [method](http://docs.oracle.com/javase/7/
|---|
-### Example
+## Example
The following example demonstrates the basic usage of Markdown in a Zeppelin notebook.
diff --git a/docs/interpreter/postgresql.md b/docs/interpreter/postgresql.md
index 5985b188791..107fda1d809 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
+
+
+
## 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
](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`.
](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:
| Description | |||
|---|---|---|---|
| python | +zeppelin.python | python | Path of the already installed Python binary (could be python2 or python3). If python is not in your $PATH you can set the absolute directory (example : /usr/bin/python) |
| zeppelin.python.maxResult | +1000 | +Max number of dataframe rows to display. | +
+
+
+## Pandas integration
+[Zeppelin Display System]({{BASE_PATH}}/displaysystem/basicdisplaysystem.html#table) provides simple API to visualize data in Pandas DataFrames, same as in Matplotlib.
-[](/docs/interpreter/screenshots/pythonMatplotlib.png)
+Example:
+```python
+import pandas as pd
+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).
diff --git a/docs/interpreter/r.md b/docs/interpreter/r.md
index c5ed98b8da9..dce8bd1dcc9 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.
+
-### 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)
+
R base plotting is fully supported
-[](screenshots/replhist.png)
+
If you return a data.frame, Zeppelin will attempt to display it using Zeppelin's built-in visualizations.
-[](screenshots/replhead.png)
+
`%knitr` interfaces directly against `knitr`, with chunk options on the first line:
-[](screenshots/knitgeo.png)
-[](screenshots/knitstock.png)
-[](screenshots/knitmotion.png)
+
+
+
+
+
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)
+
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)
+
You can also make an ordinary R variable accessible in scala and Python:
-[](screenshots/varr1.png)
+
And vice versa:
-[](screenshots/varscala.png)
-[](screenshots/varr2.png)
+
+
+
-### 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
diff --git a/docs/interpreter/scalding.md b/docs/interpreter/scalding.md
index ec5608bf3b3..e8774df67fa 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
+
+
+
[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**.
diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md
index 30da219ac03..a183033bf7c 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
+
+
+
+## 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.
| true | Use HiveContext instead of SQLContext if it is true. | |
| zeppelin.spark.importImplicit | +true | +Import implicits, UDF collection, and sql if set true. | +
-####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.
diff --git a/docs/manual/dynamicform.md b/docs/manual/dynamicform.md
index 6594767efec..b554fec1127 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.
+
+
+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}`.
-#### 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
-#### 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=...
-### 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
-####Text input form with default value
+### Text input form with default value
-####Select form
+### Select form
**DELETE**.
## 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 ?
diff --git a/docs/manual/interpreterinstallation.md b/docs/manual/interpreterinstallation.md
new file mode 100644
index 00000000000..b940f597b76
--- /dev/null
+++ b/docs/manual/interpreterinstallation.md
@@ -0,0 +1,166 @@
+---
+layout: page
+title: "Interpreter Installation"
+description: ""
+group: manual
+---
+
+{% include JB/setup %}
+
+# Interpreter Installation
+
+
+
+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
+Apache Zeppelin provides several interpreters as [community managed interpreters](#available-community-managed-interpreters).
+If you downloaded `netinst` binary package, you need to install by using below commands.
+
+#### Install all community managed interpreters
+
+```
+./bin/install-interpreter.sh --all
+```
+
+#### Install specific interpreters
+
+```
+./bin/install-interpreter.sh --name md,shell,jdbc,python
+```
+
+You can get full list of community managed interpreters by running
+
+```
+./bin/install-interpreter.sh --list
+```
+
+Once you have installed interpreters, you need to restart Zeppelin. And then [create interpreter setting](../manual/interpreters.html#what-is-zeppelin-interpreter) and [bind it with your notebook](../manual/interpreters.html#what-is-zeppelin-interpreter-setting).
+
+
+## 3rd party interpreters
+
+You can also install 3rd party interpreters located in the maven repository by using below commands.
+
+#### Install 3rd party interpreters
+
+```
+./bin/install-interpreter.sh --name interpreter1 --artifact groupId1:artifact1:version1
+```
+
+The above command will download maven artifact `groupId1:artifact1:version1` and all of it's transitive dependencies into `interpreter/interpreter1` directory.
+
+Once you have installed interpreters, you'll need to add interpreter class name into `zeppelin.interpreters` property in [configuration](../install/install.html#apache-zeppelin-configuration).
+And then restart Zeppelin, [create interpreter setting](../manual/interpreters.html#what-is-zeppelin-interpreter) and [bind it with your notebook](../manual/interpreters.html#what-is-zeppelin-interpreter-setting).
+
+
+#### Install multiple 3rd party interpreters at once
+
+```
+./bin/install-interpreter.sh --name interpreter1,interpreter2 --artifact groupId1:artifact1:version1,groupId2:artifact2:version2
+```
+
+`--name` and `--artifact` arguments will recieve comma separated list.
+
+## Available community managed interpreters
+
+You can also find the below community managed interpreter list in `conf/interpreter-list` file.
+| Name | +Maven Artifact | +Description | +
|---|---|---|
| alluxio | +org.apache.zeppelin:zeppelin-alluxio:0.6.0 | +Alluxio interpreter | +
| angular | +org.apache.zeppelin:zeppelin-angular:0.6.0 | +HTML and AngularJS view rendering | +
| cassandra | +org.apache.zeppelin:zeppelin-cassandra:0.6.0 | +Cassandra interpreter | +
| elasticsearch | +org.apache.zeppelin:zeppelin-elasticsearch:0.6.0 | +Elasticsearch interpreter | +
| file | +org.apache.zeppelin:zeppelin-file:0.6.0 | +HDFS file interpreter | +
| flink | +org.apache.zeppelin:zeppelin-flink:0.6.0 | +Flink interpreter | +
| hbase | +org.apache.zeppelin:zeppelin-hbase:0.6.0 | +Hbase interpreter | +
| ignite | +org.apache.zeppelin:zeppelin-ignite:0.6.0 | +Ignite interpreter | +
| jdbc | +org.apache.zeppelin:zeppelin-jdbc:0.6.0 | +Jdbc interpreter | +
| kylin | +org.apache.zeppelin:zeppelin-kylin:0.6.0 | +Kylin interpreter | +
| lens | +org.apache.zeppelin:zeppelin-lens:0.6.0 | +Lens interpreter | +
| livy | +org.apache.zeppelin:zeppelin-livy:0.6.0 | +Livy interpreter | +
| md | +org.apache.zeppelin:zeppelin-markdown:0.6.0 | +Markdown support | +
| postgresql | +org.apache.zeppelin:zeppelin-postgresql:0.6.0 | +Postgresql interpreter | +
| python | +org.apache.zeppelin:zeppelin-python:0.6.0 | +Python interpreter | +
| shell | +org.apache.zeppelin:zeppelin-shell:0.6.0 | +Shell command | +
+
-## 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.
-
+
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.
-
+
+
## Interpreter binding mode
@@ -62,7 +68,7 @@ In 'shared' mode, every notebook bound to the Interpreter Setting will share the
-## 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:
-
+
diff --git a/docs/manual/notebookashomepage.md b/docs/manual/notebookashomepage.md
index 48f06a6df45..22697c60048 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
-
+### 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.
+
- 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.
-
+After running the notebook you will see output similar to this one:
+
- The main trick here relays in linking the ```