zeppelin/docs/manual/interpreterinstallation.md
AhyoungRyu 142597bcf0 [ZEPPELIN-2109][2110] Sortable Helium pkgs & Introduce "INTERPRETER" type
### What is this PR for?

* Make Helium pkgs sortable
For now, we have 3 types of Helium packages: `VISUALIZATION`, `SPELL` and `APPLICATION`.
`VISUALIZATION` and `SPELL` type of pkgs can be published [NPM registry](https://www.npmjs.com/). Likewise, `APPLICATION` type pkg can be registered in [Maven central repository](http://search.maven.org/).
But all available Helium packages are not sorted and shown in random order in Helium menu.
To do this, I put "NPM Packages" & "Maven Artifacts" button at top-right corner of Helium menu.

* Introduce "INTERPRETER" type
As a first step of [ZEPPELIN-1993: Install interpreter from Helium menu](https://issues.apache.org/jira/browse/ZEPPELIN-1993), I added `INTERPRETER` type as a new Helium pkg type. Like [ZEPPELIN-1973](https://issues.apache.org/jira/browse/ZEPPELIN-1973) did, we can retrieve Maven artifact(which has `zeppelin-interpreter` as its dependency) info and save it to Helium online registry as well.
For more detailed explanation, please see [ZEPPELIN-1993](https://issues.apache.org/jira/browse/ZEPPELIN-1993) and [ZEPPELIN-2110](https://issues.apache.org/jira/browse/ZEPPELIN-2110)'s description.

### What type of PR is it?
Improvement

### What is the Jira issue?
* [ZEPPELIN-2109](https://issues.apache.org/jira/browse/ZEPPELIN-2109) : Make Helium packages sortable in Helium menu
* [ZEPPELIN-2110](https://issues.apache.org/jira/browse/ZEPPELIN-2110) : List community & 3rd party interpreter registered at Maven central repo in Helium menu

### How should this be tested?
To see how `INTERPRETER` type can be shown in Helium menu,

1. Replace temporarily [ZeppelinConfiguration.java#L46](https://github.com/apache/zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java#L46) with [this url](https://raw.githubusercontent.com/AhyoungRyu/spark-notebook-example/master/helium-test.json)

2. Build \w below command and restart
```
 $ mvn clean package -DskipTests -pl 'zeppelin-zengine, zeppelin-server, zeppelin-interpreter'
```

3. Start web dev server under `ZEPPELIN_HOME/zeppelin-web` and browse `localhost:9000`
```
$ yarn run dev:helium
```

4. Go to Helium menu
### Screenshots (if appropriate)
 - How's it look?
![record](https://cloud.githubusercontent.com/assets/10060731/23219279/02fc234e-f962-11e6-86a9-30e7dc0953aa.gif)

 - Package selection by types (`VISUALIZATION`, `SPELL`, `INTERPRETER` and `APPLICATION`)
<img width="500" alt="screen shot 2017-02-23 at 12 51 22 am" src="https://cloud.githubusercontent.com/assets/10060731/23219377/3c020fb4-f962-11e6-849c-6da193414d87.png">

 - Disabled "Enable" button until [ZEPPELIN-1993](https://issues.apache.org/jira/browse/ZEPPELIN-1993) is resolved
<img width="580px" alt="screen shot 2017-02-20 at 2 03 23 am" src="https://cloud.githubusercontent.com/assets/10060731/23104412/c95dccb2-f710-11e6-9602-4159c7182e64.png">

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no

Author: AhyoungRyu <fbdkdud93@hanmail.net>
Author: Ahyoung Ryu <ahyoungryu@apache.org>

Closes #2037 from AhyoungRyu/ZEPPELIN-2109 and squashes the following commits:

7393c6a [AhyoungRyu] Change '==' to '===' to make CI green
0fd68ba [AhyoungRyu] Remove useless comment code
569f9c9 [AhyoungRyu] Add guide dialog msg for INTERPRETER type pkg
e6ccc28 [AhyoungRyu] Fix typo in docs
bb34428 [AhyoungRyu] Package orderBy publishedDate
a5eb006 [AhyoungRyu] Add 'spell' to description
1707882 [AhyoungRyu] Get publishedDate, artifactId and groupId from online registry data
03312ac [AhyoungRyu] Fix interpreter type name duplication
95b0b87 [AhyoungRyu] Fix mistakes made by resolving conflicts
894a27e [Ahyoung Ryu] Merge branch 'master' into ZEPPELIN-2109
d5ae4e2 [AhyoungRyu] Add default msg to show when each package size is 0
899e8fa [AhyoungRyu] Put license sentences back removed by mistake
c68efd2 [AhyoungRyu] Remove unused img files
6d7f4fa [AhyoungRyu] Make packages sortable by type not repository
86e1eda [AhyoungRyu] Remove unnecassary words
b74c599 [AhyoungRyu] Remove console.log
4a6eace [AhyoungRyu] Enable Helium pkg type sortable
f1c7bac [AhyoungRyu] Add 'INTERPRETER', 'APPLICATION' as helium pkg types
6de9169 [AhyoungRyu] Add img files
2017-03-07 21:02:20 +09:00

7.2 KiB

layout title description group
page Interpreter Installation in Netinst Binary Package Apache Zeppelin provides Interpreter Installation mechanism for whom downloaded Zeppelin netinst binary package, or just want to install another 3rd party interpreters. 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. 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

Install interpreter built with Scala 2.10

Zeppelin support both Scala 2.10 and 2.11 for several interpreters as below:

Name Maven Artifact for Scala 2.10 Maven Artifact for Scala 2.11
cassandra org.apache.zeppelin:zeppelin-cassandra_2.10:0.7.0 org.apache.zeppelin:zeppelin-cassandra_2.11:0.7.0
flink org.apache.zeppelin:zeppelin-flink_2.10:0.7.0 org.apache.zeppelin:zeppelin-flink_2.11:0.7.0
ignite org.apache.zeppelin:zeppelin-ignite_2.10:0.7.0 org.apache.zeppelin:zeppelin-ignite_2.11:0.7.0
scio org.apache.zeppelin:zeppelin-scio_2.10:0.7.0 org.apache.zeppelin:zeppelin-scio_2.11:0.7.0
spark org.apache.zeppelin:zeppelin-spark_2.10:0.7.0 org.apache.zeppelin:zeppelin-spark_2.11:0.7.0

If you install one of these interpreters only with --name option, installer will download interpreter built with Scala 2.11 by default. If you want to specify Scala version, you will need to add --artifact option. Here is the example of installing flink interpreter built with Scala 2.10.

./bin/install-interpreter.sh --name flink --artifact org.apache.zeppelin:zeppelin-flink_2.10:0.7.0

Install Spark interpreter built with Scala 2.10

Spark distribution package has been built with Scala 2.10 until 1.6.2. If you have SPARK_HOME set pointing to Spark version earlier than 2.0.0, you need to download Spark interpreter packaged with Scala 2.10. To do so, use follow command:

rm -rf ./interpreter/spark
./bin/install-interpreter.sh --name spark --artifact org.apache.zeppelin:zeppelin-spark_2.10:0.7.0

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 its transitive dependencies into interpreter/interpreter1 directory.

After restart Zeppelin, then create interpreter setting and bind it with your note.

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.7.0 Alluxio interpreter
angular org.apache.zeppelin:zeppelin-angular:0.7.0 HTML and AngularJS view rendering
beam org.apache.zeppelin:zeppelin-beam:0.7.0 Beam interpreter
bigquery org.apache.zeppelin:zeppelin-bigquery:0.7.0 BigQuery interpreter
cassandra org.apache.zeppelin:zeppelin-cassandra\_2.11:0.7.0 Cassandra interpreter built with Scala 2.11
elasticsearch org.apache.zeppelin:zeppelin-elasticsearch:0.7.0 Elasticsearch interpreter
file org.apache.zeppelin:zeppelin-file:0.7.0 HDFS file interpreter
flink org.apache.zeppelin:zeppelin-flink\_2.11:0.7.0 Flink interpreter built with Scala 2.11
hbase org.apache.zeppelin:zeppelin-hbase:0.7.0 Hbase interpreter
ignite org.apache.zeppelin:zeppelin-ignite\_2.11:0.7.0 Ignite interpreter built with Scala 2.11
jdbc org.apache.zeppelin:zeppelin-jdbc:0.7.0 Jdbc interpreter
kylin org.apache.zeppelin:zeppelin-kylin:0.7.0 Kylin interpreter
lens org.apache.zeppelin:zeppelin-lens:0.7.0 Lens interpreter
livy org.apache.zeppelin:zeppelin-livy:0.7.0 Livy interpreter
md org.apache.zeppelin:zeppelin-markdown:0.7.0 Markdown support
pig org.apache.zeppelin:zeppelin-pig:0.7.0 Pig interpreter
python org.apache.zeppelin:zeppelin-python:0.7.0 Python interpreter
scio org.apache.zeppelin:zeppelin-scio\_2.11:0.7.0 Scio interpreter built with Scala 2.11
shell org.apache.zeppelin:zeppelin-shell:0.7.0 Shell command