Commit graph

90 commits

Author SHA1 Message Date
Lee moon soo
b13651cedf [ZEPPELIN-3840] Zeppelin on Kubernetes
### What type of PR is it?
This PR adds ability to run Zeppelin on Kubernetes. It aims

 - Zero configuration to start Zeppelin on Kubernetes. (and Spark on Kubernetes)
 - Run everything on Kubernetes: Zeppelin, Interpreters, Spark.
 - Highly customizable to adopt various user configurations and extensions.

Key features are

 - Provides zeppelin-server.yaml file for `kubectl` to run Zeppelin server
 - All interpreters are automatically running as a Pod.
 - Spark interpreter automatically configured to use [Spark on Kubernetes](https://spark.apache.org/docs/latest/running-on-kubernetes.html)
 - Reverse proxy is configured to access Spark UI

To do
 - [x] Document how reverse proxy for Spark UI works and how to configure custom domain.
 - [x] Document how to customize zeppelin-server and interpreter yaml.
 - [x] Document new configurations
 - [x] Document how to mount volume for notebook and configurations

### How it works

#### Run Zeppelin Server on Kubernetes
`k8s/zeppelin-server.yaml` is provided to run Zeppelin Server with few sidecars and configurations.
This file is easy to publish (user can easily consume it using `curl`), highly customizable while it includes all the necessary things.

#### K8s Interpreter launcher
This PR adds new module, `launcher-k8s-standard` under `zeppelin/zeppelin-plugins/launcher/k8s-standard/` directory. This launcher is [automatically being selected](https://github.com/apache/zeppelin/pull/3240/files#diff-82fddd2ffb77aaffc4b9cf7b5b1eaa79) when Zeppelin is running on Kubernetes. The launcher both handles Spark interpreter and All other interpreters.

The launcher launches interpreter as a Pod using template [k8s/interpreter/100-interpreter-pod.yaml](https://github.com/apache/zeppelin/pull/3240/files#diff-d9ce62e2c992d32f0184d7edb862f3c4).
Reason filename has `100-` in prefix is because all files in the directory is consumed in alphabetical order by launcher on interpreter start/stop. User can drop more files here to extend/customize interpreter, and filename can be used to control order. The template is rendered by [jinjava](https://github.com/HubSpot/jinjava).

#### Spark interpreter

When interpreter group is `spark`, K8sRemoteInterpreterProcess [sets necessary spark configuration](https://github.com/apache/zeppelin/pull/3240/files#diff-6d1d3084f55bdd519e39ede4a619e73dR297) automatically to use [Spark on Kubernetes](https://spark.apache.org/docs/latest/running-on-kubernetes.html). User doesn't have to configure anything. It uses client mode.

#### Spark UI

We may make user manually configure port-forward or do something to access Spark UI, but that's not optimal. It is the best when Spark UI is automatically accessible when user have access to Zeppelin UI, without any extra configuration.

To enable this, Zeppelin server Pod has a reverse proxy as a sidecar, and it split traffic to Zeppelin server and Spark UI running in the other Pod. It assume both `service.domain.com` and `*.service.domain.com` point the nginx proxy address. `service.domain.com` is directed to ZeppelinServer, `*.service.domain.com` is directed to interpreter Pod.

`<port>-<interpreter pod svc name>.service.domain.com` is convention to access any application running in interpreter Pod. If Spark interpreter Pod is running with a name `spark-axefeg` and Spark UI is running on port 4040,

```
4040-spark-axefeg.service.domain.com
```

is the address to access Spark UI. Default service domain is [local.zeppelin-project.org:8080](https://github.com/apache/zeppelin/pull/3240/files#diff-56ccb2e2c2617b27dbaae866d9431e51R22), while `local.zeppelin-project.org` and `*.local.zeppelin-project.org` point `127.0.0.1`, and it works with `kubectl port-forward`.

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-3840

### How should this be tested?

Prepare a Kubernetes cluster with enough resources (cpus > 5, mem > 6g).
If you're using [minikube](https://github.com/kubernetes/minikube), check your capacity using `kubectl describe node` command before start.

You'll need to build Zeppelin docker image and Spark docker image to test. Please follow guide docs/quickstart/kubernetes.md.

To quickly try without building docker images, I have uploaded pre-built image on docker hub `moon/zeppelin:0.9.0-SNAPSHOT`, `moon/spark:2.4.0`. Try following command

```
ZEPPELIN_SERVER_YAML="curl -s https://raw.githubusercontent.com/Leemoonsoo/zeppelin/kubernetes/k8s/zeppelin-server.yaml"
$ZEPPELIN_SERVER_YAML | sed 's/apache\/zeppelin:0.9.0-SNAPSHOT/moon\/zeppelin:0.9.0-SNAPSHOT/' | sed 's/spark:2.4.0/moon\/spark:2.4.0/' | kubectl apply -f -
```

And port forward

```
kubectl port-forward zeppelin-server 8080:80
```

And browse http://localhost:8080

To clean up

```
$ZEPPELIN_SERVER_YAML | sed 's/apache\/zeppelin:0.9.0-SNAPSHOT/moon\/zeppelin:0.9.0-SNAPSHOT/' | sed 's/spark:2.4.0/moon\/spark:2.4.0/' | kubectl delete -f -
```

### Screenshots (if appropriate)
See this video https://youtu.be/7E4ZGn4pnTo

### Future work

 - Per interpreter docker image
 - Blocking communication between interpreter Pod.
 - Spark Interpreter Pod has Role CRUD for any pod/service in the same namespace. Which should be restricted to only Spark executors Pod.
 - Per note interpreter mode by default when Zeppelin is running on Kubernetes

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

Author: Lee moon soo <leemoonsoo@gmail.com>
Author: Lee moon soo <moon@apache.org>

Closes #3240 from Leemoonsoo/kubernetes and squashes the following commits:

0100a36f2 [Lee moon soo] update how it works on docs, add some comments on yaml files
423412a93 [Lee moon soo] zeppelin.k8s.mode -> zeppelin.run.mode
4e7d8170d [Lee moon soo] localtest.me -> local.zeppelin-project.org
993a0e44e [Lee moon soo] document configurations
9ab6fc420 [Lee moon soo] address code review
22e090f61 [Lee moon soo] logger -> LOGGER
11960dd59 [Lee moon soo] update corresponding test as well
3b652a48e [Lee moon soo] Make spark executor set ownerreference correctly
1a3a07098 [Lee moon soo] Set ownerreference to Role and Rolebinding of interpreter
e2dc88a19 [Lee moon soo] suppress error log when wait target is already removed
fa36c18e3 [Lee moon soo] Make spark master configurable
b4f58a9a1 [Lee moon soo] sig term for quick termination
64a56b5c9 [Lee moon soo] Add docs
e9ce64fe7 [Lee moon soo] update dockerfile
ec09b8b88 [Lee moon soo] add test
3078bac55 [Lee moon soo] spark ui support
9341fcbfe [Lee moon soo] install kubectl and configure log4j in docker image
0f7c0d4e8 [Lee moon soo] add license
f30561189 [Lee moon soo] rename file
2b579ff12 [Lee moon soo] let user override namespace
f4166ad04 [Lee moon soo] make spark container image configurable
0d472ea52 [Lee moon soo] load properties and environment variables
b0e2c36c6 [Lee moon soo] Rbac role, rolebinding
2960dcb87 [Lee moon soo] configure namespace
a4072e6b9 [Lee moon soo] add signal handler
7a8736756 [Lee moon soo] configure spark on kubernetes
263d859d4 [Lee moon soo] use headless service for interpreter pod
7fe9823b1 [Lee moon soo] interpreter pod cascade delete on zeppelin-server delete
86e876435 [Lee moon soo] add services on RBAC
18b8f68cb [Lee moon soo] print spec file contents on debug log
0dea3836b [Lee moon soo] create and connect interpreter pod
9f1b7a169 [Lee moon soo] run kubernetes launcher
2fd2ac8c3 [Lee moon soo] kubernetes mode configuration
58f9f1909 [Lee moon soo] add rbac
36cf391a4 [Lee moon soo] correct plugin name
52bb6c7e1 [Lee moon soo] add k8s dir in package
5f602a65e [Lee moon soo] K8sRemoteInterpreterProcess
07489f76d [Lee moon soo] kubectl with exec
d2f3d5b7e [Lee moon soo] add k8s-standard launcher module
2019-01-18 09:00:07 -08:00
Vincenzo Selvaggio
794e189718 [ZEPPELIN-3654] - New Hazelcast Jet interpreter
### What is this PR for?
**New Hazelcast Jet interpreter**

Zeppelin has interpreters for different data processing systems like Flink, Spark, Kylin, Ignite, Geode, Beam, etc.

Hazelcast Jet is a general purpose distributed data processing engine, built on top of Hazelcast for stream/batch processing, comparable if not better in terms of performance to the engine supported by Zeppelin therefore a perfect candidate for a Zeppelin interpreter.

Part of the interpreter is to have a set of utility methods that print out Hazelcast data structures (IMap and ICache) and leverage Zeppelin's built in visualization (%table).

What's more, a nice addition is to have the Hazelcast Jet DAG of the pipeline displayed as a network graph using %network display system.

### What type of PR is it?
* Feature

### Todos
* Utility method to display Hazelcast Jet DAG  using %network
* Review zeppelin-distribution/src/bin_license/LICENSE file
* Any feedback from reviewers

### What is the Jira issue?
* [ZEPPELIN-3654]

### How should this be tested?
Manually
* Start the Zeppelin server
* Create a new note with the hazelcastjet interpreter binding
* Write an Hazelcast Jet job as per documentation (docs/interpreter/hazelcastjet.md)

Unit tests
* Run unit tests (HazelcastJetInterpreterTest.java)

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update?
Yes, added Apache License for Hazelcast Jet.
* Is there breaking changes for older versions?
No.
* Does this needs documentation?
Yes, it has been added to the PR, see docs/interpreter/hazelcastjet.md.

Author: Vincenzo Selvaggio <vselvaggio@hotmail.it>

Closes #3157 from selvinsource/hazelcast-jet-interpreter and squashes the following commits:

23a95669f [Vincenzo Selvaggio] Updated hazelcast jet interpreter pom.xml based on new structure.
684a0c1a4 [Vincenzo Selvaggio] Updated hazelcast jet documentation with more details on the graph.
83377ecac [Vincenzo Selvaggio] Added HazelcastJet interpreter utils.
da6941db6 [Vincenzo Selvaggio] Resolved .travis.yml conflict by adding !hazelcastjet.
95642b65f [Vincenzo Selvaggio] Documentation example updated. Some minor fixes. Added LICENSE for Hazelcast Jet.
5f4e3c4c5 [Vincenzo Selvaggio] Hazelcast Jet Interpreter folder restructure.
36b8a624c [Vincenzo Selvaggio] Hazelcast Jet Interpreter first commit!
2018-09-26 17:38:02 +08:00
Vincenzo Selvaggio
ac2e957e2d [ZEPPELIN-3653] - New Java interpreter
### What is this PR for?
**New Java interpreter**
There are several Java libraries that could be used to leverage the Data Visualization & Collaboration features of Zeppelin hence the need of a Java interpreter to run any java code / library with no further dependencies.
Dependencies to any java library can be added by the end users in the Java Zeppelin interpreter Dependencies settings section.

### What type of PR is it?
* Feature

### Todos
* Any feedback from reviewers

### What is the Jira issue?
* [ZEPPELIN-3653]

### How should this be tested?
Manually
* Start the Zeppelin server
* Create a new note with the java interpreter binding
* Write some java code as per documentation (docs/interpreter/java.md)
Unit tests
* Run unit tests (JavaInterpreterTest.java and JavaInterpreterUtilsTest.java)

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update?
No, the dependency on com.thoughtworks.qdox was already added as part of the Beam Interpreter.
* Is there breaking changes for older versions?
No.
* Does this needs documentation?
Yes, it has been added to the PR, see docs/interpreter/java.md.

Author: Vincenzo Selvaggio <vselvaggio@hotmail.it>

Closes #3092 from selvinsource/java-interpreter and squashes the following commits:

c5f96b27d [Vincenzo Selvaggio] Excluding java interpreter from zeppelin-server tests.
3f85f1cd3 [Vincenzo Selvaggio] Removed redundant java profile as result of rebasing.
b68634034 [Vincenzo Selvaggio] Updated documentation for Java interpreter to be more explicit on the limitations.
ce9401079 [Vincenzo Selvaggio] Updated Java Interpreter README and documentation.
9e9a859e9 [Vincenzo Selvaggio] Stylecheck fixes.
706aa0795 [Vincenzo Selvaggio] PR reviews changes: -updated interpreter list -direct import of java module and update related README -static logger for Java interpreter
d2358f5dc [Vincenzo Selvaggio] Updated documentation for Java interpreter by adding relevant examples.
b57f1cfd0 [Vincenzo Selvaggio] Added Java Interpreter Utils and tests for them.
f542a4f61 [Vincenzo Selvaggio] Java Interpreter first version
2018-08-03 09:15:19 +08:00
Lee moon soo
c4da31b2bb [DOC] Fix broken link to writing visualizations doc
### What is this PR for?
This PR fixes broken link to doc. Need to be merged branch-0.8.

### What type of PR is it?
Bug Fix

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

Author: Lee moon soo <moon@apache.org>

Closes #2956 from Leemoonsoo/fix/doc_link_to_helium and squashes the following commits:

9d8cac7 [Lee moon soo] Fix broken link to writing visualizations doc
2018-05-03 08:47:22 +08:00
Sanjay Dasgupta
0c3260e91f [Zeppelin 3388] Refactor documentation for ZeppelinContext
### What is this PR for?
This PR is a refactoring of the `ZepplinContext` documentation.

The description of `ZepplinContext` is now almost entirely contained within the _Spark_ interpreter's documentation ([spark.md](https://github.com/apache/zeppelin/blob/master/docs/interpreter/spark.md)). But `ZepplinContext` has many generic features that are available to all interpreters, and it is important for `ZepplinContext` to have a more visible and independent presence in the Zeppelin documentation.

### What type of PR is it?
[Documentation]

### Todos

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-3388

### How should this be tested?
Only documentation.

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No (This _is_ documentation)

Author: Sanjay Dasgupta <sanjay.dasgupta@gmail.com>

Closes #2953 from sanjaydasgupta/zeppelin-3388 and squashes the following commits:

bb8aa0c [Sanjay Dasgupta] Changes to address Felix Cheung's review https://github.com/apache/zeppelin/pull/2953#pullrequestreview-116196552
7360b50 [Sanjay Dasgupta] Correcting deleted hyperlink urls
64e4d7e [Sanjay Dasgupta] Initial version of files for 3388
2018-05-02 15:03:07 +08:00
Savalek
468cea2907 [ZEPPELIN-3431] - Fix links, images in docs
### What is this PR for?
Page http://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/usage/other_features/notebook_actions.html
contains errors.
Some images are missing and three links does not work.

### What type of PR is it?
[Bug Fix | Documentation]

### What is the Jira issue?
[ZEPPELIN-3431](https://issues.apache.org/jira/browse/ZEPPELIN-3431)

### Screenshots (if appropriate)
![screen](https://user-images.githubusercontent.com/30798933/39301412-a6c43232-4957-11e8-8f59-9737c6455aa5.png)

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

Author: Savalek <def113@mail.ru>

Closes #2947 from Savalek/ZEPPELIN-3431 and squashes the following commits:

6993dbf [Savalek] [ZEPPELIN-3431] - Fix links, images in docs
2018-04-27 23:28:40 -07:00
Keiji Yoshida
888a05d1e4 [ZEPPELIN-3077] Cron scheduler is easy to get stuck when one of the cron jobs takes long time or gets stuck
### What is this PR for?
The cron scheduler is easy to get stuck when one of the cron jobs takes long time or gets stuck.

I sometimes come across the issue that the cron scheduler stops working suddenly. According to the thread dump of ZeppelinServer, all of the DefaultQuartzScheduler_Worker threads were waiting for the job's completion and there was no thread to launch a new job.

Here is the contents of the thread dump:

```
"DefaultQuartzScheduler_Worker-10" #76 prio=5 os_prio=0 tid=0x00007fb41d3b4000 nid=0x1b521 sleeping[0x00007fb3daef1000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:889)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
        - locked <0x00000000c0a7dbf0> (a java.lang.Object)

   Locked ownable synchronizers:
        - None

"DefaultQuartzScheduler_Worker-9" #75 prio=5 os_prio=0 tid=0x00007fb41d3b2000 nid=0x1b520 waiting on condition [0x00007fb3daff2000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:889)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
        - locked <0x00000000c0a7a470> (a java.lang.Object)

   Locked ownable synchronizers:
        - None

...

"DefaultQuartzScheduler_Worker-2" #68 prio=5 os_prio=0 tid=0x00007fb41d3c8800 nid=0x1b519 waiting on condition [0x00007fb3da473000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:889)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
        - locked <0x00000000c0a7a7b0> (a java.lang.Object)

   Locked ownable synchronizers:
        - None

"DefaultQuartzScheduler_Worker-1" #67 prio=5 os_prio=0 tid=0x00007fb41d3cc800 nid=0x1b518 waiting on condition [0x00007fb3da372000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.zeppelin.notebook.Notebook$CronJob.execute(Notebook.java:889)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
        - locked <0x00000000c0a7dd90> (a java.lang.Object)

   Locked ownable synchronizers:
        - None
```

The above thread dump says that all of the worker threads get stuck at https://github.com/apache/zeppelin/blob/v0.7.3/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Notebook.java#L889.

One way to reproduce this kind of issue is creating a paragraph whose status is "READY" and "disable run". That makes the paragraph status "READY" permanently and `note.isTerminated()` never turns to `true`.

To fix this issue, the following two improvements has been made at this PR:

1. Remove the unnecessary `while (!note.isTerminated()) { ... }` block because the execution of all of the paragraphs is finished after `note.runAll()`.
2. Skip the cron execution if there is a running or pending paragraph. That prevents the Zeppelin cron scheduler from getting stuck by the long running paragraph whose execution duration is greater than the cron execution cycle.

### What type of PR is it?
[Bug]

### Todos

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-3077

### How should this be tested?
* Tested manually.
    1. The cron scheduler does not get stuck if there is a paragraph whose status is "READY" and "disable run".
    2. The following message is printed on the log file when the cron job is launched while the previous cron job still has been running.
        * `execution of the cron job is skipped because there is a running or pending paragraph (note id: XXXXXXXXX)`

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No.
* Is there breaking changes for older versions? No.
* Does this needs documentation? Yes. The behavior of the cron job was changed not to run if there is a running or pending paragraph by this PR. Thus, the documentation `docs/usage/other_features/cron_scheduler.md` was also added by this PR. Its layout is as follow:

<img width="711" alt="screen shot 2017-11-28 at 18 30 54" src="https://user-images.githubusercontent.com/31149688/33312407-20664e02-d46b-11e7-9715-9e2562d5e064.png">

Author: Keiji Yoshida <kjmrknsn@gmail.com>

Closes #2687 from kjmrknsn/ZEPPELIN-3077 and squashes the following commits:

81e72188d [Keiji Yoshida] [ZEPPELIN-3077] Cron scheduler is easy to get stuck when one of the cron jobs takes long time or gets stuck
2017-12-19 16:05:45 -08:00
Andrea Santurbano
246f696719 [ZEPPELIN-3101] updated network label, added link to network display in index.md
### What is this PR for?
The docs index must show the reference to the network visualization as for the the other types

### What type of PR is it?
[Improvement]

### Todos
* [x] - Add missing link

### What is the Jira issue?
[ZEPPELIN-3101](https://issues.apache.org/jira/projects/ZEPPELIN/issues/ZEPPELIN-3101)

### How should this be tested?
1. cd `docs/`
2. build: `bundle exec jekyll build --safe`
3. check the link is present

### Screenshots (if appropriate)

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

Author: Andrea Santurbano <santand@gmail.com>

Closes #2702 from conker84/graph-docs and squashes the following commits:

58d58cc4c [Andrea Santurbano] updated network label, added link to network display in index.md
2017-12-14 08:40:21 -08:00
tinkoff-dwh
7241348cff [ZEPPELIN-2813] revisions comparator
### What is this PR for?
Sometimes need to see the difference between versions and to switch to another version and look for changes are not convenient (the page reloaded). This feature allows you to compare any two versions of the notebook.

### What type of PR is it?
Feature

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2813

### How should this be tested?
1 make some commits. Сchange the contents of paragraphs (delete, add, edit)
2 open Revisions comparator
3 compare revisions and check diff

### Screenshots (if appropriate)
![comparator](https://user-images.githubusercontent.com/25951039/28702781-cf1cedce-7378-11e7-9034-7036f4440bf3.gif)

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

Author: tinkoff-dwh <tinkoff.dwh@gmail.com>
Author: Tinkoff DWH <tinkoff.dwh@gmail.com>

Closes #2506 from tinkoff-dwh/ZEPPELIN-2813 and squashes the following commits:

acc624f [tinkoff-dwh] Merge remote-tracking branch 'upstream/master' into ZEPPELIN-2813
2fd89a8 [tinkoff-dwh] Merge remote-tracking branch 'origin/master' into ZEPPELIN-2813
8b8afcc [tinkoff-dwh] Docs edit
efa7ce2 [tinkoff-dwh] Merge branch 'master' into ZEPPELIN-2813
f530524 [tinkoff-dwh] zep-2813 anim off
0e866b2 [tinkoff-dwh] zep_2813 color change
310760e [tinkoff-dwh] zep_2813 UI for REVISIONS COMPARATOR.
3d4f86c [tinkoff-dwh] Merge branch 'master' into ZEPPELIN-2813_refactoring_2
dc67f8f [tinkoff-dwh] [ZEPPELIN-2813] refactoring
514b3f5 [tinkoff-dwh] small fixes, added documentation
4ce5286 [tinkoff-dwh] Merge remote-tracking branch 'origin/master' into ZEPPELIN-2813
b949814 [Tinkoff DWH] [ZEPPELIN-2813] license
a192b95 [Tinkoff DWH] [ZEPPELIN-2813] revisions comparator for note
2017-11-16 15:51:57 -08:00
conker84
e0fafac75c [ZEPPELIN-2761] - Neo4j Interpreter
### What is this PR for?
This contribution would to introduce Neo4j Cypher intepreter and at the same time provides base APIs that enable other graph databases (or graph framworks such as GraphX or Giraph).

### What type of PR is it?
[Feature]

### Todos
* [x] - Provide base APIs to manage graph results (under: org.apache.zeppelin.interpreter.graph.*)
* [x] - Create the Neo4j intepreter

### What is the Jira issue?
[[ZEPPELIN-2761]](https://issues.apache.org/jira/browse/ZEPPELIN-2761)

### How should this be tested?
Donwload and execute [Neo4j](https://neo4j.com/download/?ref=home) v3.x, you can also pull a [Docker image](https://neo4j.com/developer/docker/).

In order to execute test cases, if you are running Java 7, you need to also provide an environment variable telling the tests where to find Java 8, because Neo4j-the-database needs it to run.
```bash
export NEO4J_JAVA=<path/to/java/home>
```

Use this statement to create a dummy dataset
```bash
%neo4j
UNWIND range(1,100) as id
CREATE (p:Person {id:id, name: "Name " + id, age: id % 3}) WITH collect(p) as people
UNWIND people as p1
UNWIND range(1,10) as friend
WITH p1, people[(p1.id + friend) % size(people)] as p2
CREATE (p1)-[:KNOWS {years: abs(p2.id - p2.id)}]->(p2)
```

Then you can write some simple queries like:
```bash
%neo4j
MATCH (p:Person)-[r:KNOWS]-(p1:Person)
RETURN p, r, p1
LIMIT 10;
```

```bash
%neo4j
MATCH (p:Person)-[r:KNOWS]-(p1:Person)
RETURN p.id AS ID_A, p.name AS NAME_A, r.years AS YEARS, p1.id AS ID_B, p1.name AS NAME_B
LIMIT 20;
```

### Video
![zeppelin query examples](https://user-images.githubusercontent.com/1833335/28041473-daaa1f02-65c9-11e7-9445-c45478669d66.gif)

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

Author: conker84 <santand@gmail.com>

Closes #2478 from conker84/master and squashes the following commits:

5fb97ce [conker84] review by felixcheung 18/09
1e3d611 [conker84] Review by felixcheung (09/08)
aaf618e [conker84] Review by 1ambda 26/07
b5c2c66 [conker84] Added docs
9eb568d [conker84] Final behavior after discussion
2f88e98 [conker84] Moved business logic to the connection manager
8e4690e [conker84] Create connection manager class
35b4e29 [conker84] First commit
2017-10-10 23:44:02 -07:00
krishna-pandey
780f0ebb43 [ZEPPELIN-2775] Strict-Transport-Security and X-XSS-Protection Headers
### What is this PR for?
The HTTP Strict-Transport-Security response header (often abbreviated as HSTS) is a security feature that lets a web site tell browsers that it should only be communicated with using HTTPS, instead of using HTTP.
Note: The Strict-Transport-Security header is ignored by the browser when your site is accessed using HTTP; this is because an attacker may intercept HTTP connections and inject the header or remove it. When your site is accessed over HTTPS with no certificate errors, the browser knows your site is HTTPS capable and will honor the Strict-Transport-Security header.

The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.

### What type of PR is it?
[Bug Fix | Improvement ]

### What is the Jira issue?
* [ZEPPELIN-2775](https://issues.apache.org/jira/browse/ZEPPELIN-2775)

### How should this be tested?
Make a curl call to Zeppelin? Go to Chrome Browser and select "More Tools" -> "Developer Tools" from the right-side menu. Under Network Section, select any request and check for "Response Headers". You should see below headers along with existing ones.

> strict-transport-security:max-age=631138519
> x-xss-protection:1; mode=block

<img width="1436" alt="screen shot 2017-07-14 at 8 19 14 pm" src="https://user-images.githubusercontent.com/6433184/28217231-16ce6cee-68d2-11e7-91aa-77ad083612c7.png">

### Questions:
* Does this needs documentation?

Author: krishna-pandey <krish.pandey21@gmail.com>

Closes #2492 from krishna-pandey/ZEPPELIN-2775 and squashes the following commits:

7d9978e49 [krishna-pandey] Modified Documentation as per review.
6733289ed [krishna-pandey] Adding documentation for HTTP Security Headers
754d2d71e [krishna-pandey] Supplying String instead of Int (required for Response Header)
468231cc6 [krishna-pandey] Added configurable Strict-Transport-Security and X-XSS-Protection Headers
2017-08-03 14:57:29 -07:00
1ambda
b5e039fe1b [ZEPPELIN-2708][DOCS] feat: Add v scroll to setup, usage menus in navbar
### What is this PR for?

Added v scroll to setup, usage menus in the navbar.
Because some users are experiencing trimmed menus (not sure exact OS, browser versions, See the JIRA issue)

### What type of PR is it?
[Bug Fix | Improvement]

### Todos

DONE

### What is the Jira issue?

[ZEPPELIN-2708](https://issues.apache.org/jira/browse/ZEPPELIN-2708)

### How should this be tested?

1. cd `docs/`
2. run: `bundle exec jekyll serve --watch`

### Screenshots (if appropriate)

#### Before (no scrollbar)

![image](https://user-images.githubusercontent.com/4968473/27685495-5bedcba0-5d09-11e7-8e7b-76d15c407626.png)

#### After

![image](https://user-images.githubusercontent.com/4968473/27685496-6032193c-5d09-11e7-88bc-dc0a2a44398b.png)

![image](https://user-images.githubusercontent.com/4968473/27685505-64e7a802-5d09-11e7-91df-17b66cabc147.png)

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

Author: 1ambda <1amb4a@gmail.com>

Closes #2451 from 1ambda/ZEPPELIN-2708/provide-V-scrolls-for-navbar-menus and squashes the following commits:

fb322b21 [1ambda] feat: Add v scroll to setup, usage menus
2017-07-03 21:54:06 +09:00
1ambda
1c23f21388 [ZEPPELIN-2707][DOCS][HOTFIX] fix: broken image URLs in 0.8.0-SNAPSHOT doc
### What is this PR for?

fix: broken image URLs in 0.8.0-SNAPSHOT doc

using the path `/asset` (the absolute path) for image URLs is actually invalid. That's because each version has its own image directory. So they should use the relative path. `{{BASE_PATH}}`

```
➜  asf-zeppelin tree site | grep asset
├── assets # root asset, we shouldn't use it in versioned doc.
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│   │   ├── assets
│       ├── assets
```

### What type of PR is it?
[Bug Fix]

### Todos
DONE

### What is the Jira issue?
[ZEPPELIN-2707](https://issues.apache.org/jira/browse/ZEPPELIN-2707)

### How should this be tested?

1. cd `docs/`
2. build: `bundle exec jekyll build --safe`
3. check whether links in `_site` include `/docs/0.8.0-SNAPSHOT` as prefix or not

### Screenshots (if appropriate)

#### Current
http://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/usage/interpreter/overview.html

![image](https://user-images.githubusercontent.com/4968473/27685112-bcca5846-5d07-11e7-89bb-3965015cf5a5.png)

#### After

![image](https://user-images.githubusercontent.com/4968473/27685218-3490fad8-5d08-11e7-9133-0e148689986e.png)

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

Author: 1ambda <1amb4a@gmail.com>

Closes #2450 from 1ambda/ZEPPELIN-2707/should-use-its-own-asset-directory and squashes the following commits:

fb70214a [1ambda] fix: Use its own asset dir
2017-06-30 10:33:01 +09:00
1ambda
4b6d3e5574 [ZEPPELIN-2596] Improving documentation page
### What is this PR for?

Improving documentation page. Please check *TODO* and *Screenshots* sections for detail.
The motivation is described in [the JIRA ticket](https://issues.apache.org/jira/browse/ZEPPELIN-2583) and discussion is ongoing on the mailing list.

### What type of PR is it?
[Improvement | Documentation]

### Todos
* [x] - improved the navbar style
* [x] - improved the main page
* [x] - re-organized content structure
* [x] - added tutorial pages: `spark_with_zeppelin.md`, `python_with_zeppelin.md`, `sql_with_zeppelin.md` for overview
* [x] - added `multi_user_support.md` page to provide overview
* [x] - added the empty `interpreter_binding_mode` page. This will be handed in the different issue: [ZEPPELIN-2582](https://issues.apache.org/jira/browse/ZEPPELIN-2582)
* [x] - added the empty `trouble_shooting` page. This can be filled in the following PRs.
* [x] - added the empty `useful_developer_tools` page. This can be filled in the following PRs.

### What is the Jira issue?

[ZEPPELIN-2596](https://issues.apache.org/jira/browse/ZEPPELIN-2596)

### How should this be tested?

1. checkout
2. `cd docs`
3. `bundle install` (make sure that you have ruby 2.1.0+ and bundle)
4. `bundle exec jekyll serve --watch`
5. open `localhost:4000`

### Screenshots (if appropriate)

#### better navbar: before
![2596_before_nav](https://cloud.githubusercontent.com/assets/4968473/26542353/89004e7a-4494-11e7-89c0-28d608f5f375.gif)

#### better navbar: after

![2596_after_nav](https://cloud.githubusercontent.com/assets/4968473/26542356/8bfb7b90-4494-11e7-9979-0bcaef8ba97b.gif)

#### improved main page: before

![2596_before_main](https://cloud.githubusercontent.com/assets/4968473/26542358/8f35b0be-4494-11e7-8a6c-e74ec52fc384.gif)

#### improved main page: after

![2596_after_main](https://cloud.githubusercontent.com/assets/4968473/26542366/93b333c8-4494-11e7-981f-3f7b4545868f.gif)

#### organized content structure: before

![2596_before_content](https://cloud.githubusercontent.com/assets/4968473/26542398/ad81ac26-4494-11e7-9a17-70dff41396fb.gif)

#### organized content structure: after

![2596_after_content](https://cloud.githubusercontent.com/assets/4968473/26542403/b0a42ad2-4494-11e7-8bd3-8a5bd194c6af.gif)

### Questions:
* Does the licenses files need update? - NO
* Is there breaking changes for older versions? - NO
* Does this needs documentation? -  related with docs

Author: 1ambda <1amb4a@gmail.com>

Closes #2371 from 1ambda/updating-version-doc and squashes the following commits:

eb02fa967 [1ambda] fix: navbar focus color applies after folding
026379ed6 [1ambda] fix: Remove docs/.listen_test
a7dd4737b [1ambda] fix: sora's comment 1.2
18c5058f7 [1ambda] fix: resolve description in python_with_zeppelin.md
d3ad67c73 [1ambda] fix: sora's comment 4
d133dbbcc [1ambda] fix: resolve sora's comment 3
513c6ff2c [1ambda] fix: resolve sora's comment 1.1
4c2946928 [1ambda] fix: resovle sora's comment 2
1c3946ac6 [1ambda] fix: sora's comment 1
4d6e4267f [1ambda] fix: Resolve sola's comment 3
d0524cafe [1ambda] fix: Set less shadow for nav
5f1f998ba [1ambda] docs: Add useful_develop_tools.md
9dfd62c74 [1ambda] fix: Typo in installation.md
30f7d7e06 [1ambda] fix: Typo in helium ctrl
d6877e792 [1ambda] docs: Add python_with_zeppelin.md
7027e96c0 [1ambda] docs: Improve python conda, docker doc style
e55b50a9d [1ambda] fix: Invalid URLs
75ddeeaff [1ambda] docs: replace URIs in interpreter
5b43993a4 [1ambda] docs: Add sql_with_zeppelin
053794e84 [1ambda] docs: Add spark_with_zeppelin.md
d4d88b9c7 [1ambda] docs: Improve proxy doc
b46cdd126 [1ambda] docs: Add empty interpreter_binding_mode.md
06fcb239e [1ambda] docs: Add empty personalized_mode.md
4991cf0a7 [1ambda] docs: Update upgrading.md
53142b7a0 [1ambda] fix: Simplify install.md
8a5c1e721 [1ambda] docs: Add multi_user_support.md
34095775e [1ambda] fix: Increase font size to 15px
a03b04b33 [1ambda] fix: Remove sample text from trouble_shooting.md
199842590 [1ambda] fix: Remove docker doc link
66a2a7d26 [1ambda] docs: Improve impersonation page
0a6e3fc1d [1ambda] docs: Improve install doc
ccd999ed5 [1ambda] docs: Improve helium doc
f8d742d08 [1ambda] fix: an invalid link in navbar
b7aa5f884 [1ambda] fix: URLs in development
61a175d94 [1ambda] docs: Update install.md
4c56de5c4 [1ambda] fix: URLs in setup
0b1d63513 [1ambda] fix: URLs in quickstart
28970a4fe [1ambda] feat: Add docs/usage
735946bca [1ambda] feat: rename /quickstart
b351cf237 [1ambda] fix: Add missing links
b70770b4f [1ambda] feat: Change URLs in nav, index
94e80aef6 [1ambda] fix: doens't display navbar version in small
6e0cab110 [1ambda] feat: Update doc section names
b9ce256ff [1ambda] feat: Hide version in navbar when md
f8bab52be [1ambda] fix: Better image display in index.md
eeb37d5b5 [1ambda] fix: Add RL padding for mobile browser
ceb60b5ee [1ambda] feat: Style collapsed nav for mobile browser
4ebafb4b6 [1ambda] commit
2017-06-23 17:44:13 +09:00
conker84
43926485cd [ZEPPELIN-2222] Add Network Visualization
### What is this PR for?
This issue is about a new network visualization that can leverage the Property Graph Model (https://github.com/tinkerpop/gremlin/wiki/Defining-a-Property-Graph), but also simple graphs in order to provide a set of base apis that can be used by graph dbs (like Neo4j) or graph processing frameworks (like GraphX or Giraph).

### What type of PR is it?
[Feature]
Is related to the #1582

### Todos
* [x] - Added the intepreter apis to manage graphs (under the pakage **org.apache.zeppelin.interpreter.graph**)
* [x] - Added the frontend apis to manage graphs (via d3js)

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2222

### How should this be tested?
You can download [this notebook](https://gist.github.com/conker84/9574127c2389d08164423894aa93b67f) to test the PR

### Screenshots (if appropriate)
![zeppelin-pr-screen](https://cloud.githubusercontent.com/assets/1833335/23830683/b883e916-0710-11e7-980d-c8ab6bf6d26b.PNG)

### Video
![zeppelin](https://cloud.githubusercontent.com/assets/1833335/23902630/1e121a0c-08c2-11e7-9f28-134866dba077.gif)

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

Author: conker84 <santand@gmail.com>

Closes #2125 from conker84/master and squashes the following commits:

b6062a0b0 [conker84] Removed package org.apache.zeppelin.interpreter.graph
e98ca7a67 [conker84] Comments of review 14/03/2017
b31b7b7ac [conker84] Rebase of 07/04/2017
3257bea24 [conker84] Rebase 30/4
6e74eb9f3 [conker84] Rebase 30/04
2017-06-09 15:37:43 +09:00
Nelson Costa
87480056a0 [ZEPPELIN-2152] Added proxy config support in Helium bundle factory
### What is this PR for?
Proxy configuration implementation in Helium bundle factory. Used by Node, NPM and YarnPkg installers.

### What type of PR is it?
[Improvement]

### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-2152

### How should this be tested?
Trigger Helium plugins behind proxy

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

Author: Nelson Costa <nelson.costa85@gmail.com>

Closes #2363 from necosta/zeppelin2152 and squashes the following commits:

f681e73 [Nelson Costa] [ZEPPELIN-2152] Added documentation
5e29cca [Nelson Costa] [ZEPPELIN-2152] Fixed format issues
f55e6e2 [Nelson Costa] [ZEPPELIN-2152] Fixed bug in secure/insecure proxy. Added proxy for HeliumOnlineRegistry
d9a086a [Nelson Costa] [ZEPPELIN-2152] Added proxy config support in Helium bundle factory
2017-05-28 09:35:53 +09:00
Karup
be9c1e84d7 ZEPPELIN-2543: Add ability to change the log level at runtime
### What is this PR for?
Add ability to change the log level at runtime

### What type of PR is it?
Improvement

### Todos
* [x] - Update/Add the interpreter rest API documentation(edited: added a new Zeppelin server API doc page)

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2543

### How should this be tested?

>➜  ~ curl -X PUT http://localhost:8080/api/log/level/debug
{"status":"OK"}
>➜  ~ curl -X PUT http://localhost:8080/api/log/level/adx
{"status":"NOT_ACCEPTABLE","message":"Not a valid LOG level"}

### Screenshots (if appropriate) NA

### Questions:
* Does the licenses files need update?  NA
* Is there breaking changes for older versions? No
* Does this needs documentation?  Yes(Will need to the interpreter Rest api doc, if the approach looks fine)

Author: Karup <karuppayyar@qubole.com>

Closes #2341 from karuppayya/ZEPPELIN-2543 and squashes the following commits:

4017a83 [Karup] Add documenation, fix response message
e4782c3 [Karup] Add abitiy to change the log level at runtime
2017-05-25 15:57:04 +09:00
1ambda
45cc8a9e8a [ZEPPELIN-2217] AdvancedTransformation for Visualization
### What is this PR for?

`AdvancedTransformation` has more detailed options while providing existing features of `PivotTransformation` and `ColumnselectorTransformation` which Zeppelin already has

![av_in_30sec](https://cloud.githubusercontent.com/assets/4968473/24037330/c9478e86-0b40-11e7-9886-1ffb85042a7a.gif)

Here are some features which advanced-transformation can provide.

1. **(screenshot)** multiple sub charts
2. **(screenshot)** parameter widgets: `input`, `checkbox`, `option`, `textarea`
3. **(screenshot)** expand/fold axis and parameter panels
4. **(screenshot)** clear axis and parameter panels
5. **(screenshot)** remove duplicated columns in an axis
6. **(screenshot)** limit column count in an axis
7. configurable char axes: `valueType`, `axisType`, `description`, ...
8. configurable chart parameters
9. lazy transformation
10. parsing parameters automatically based on their type: `int`, `float`, `string`, `JSON`
11. multiple transformation methods
12. re-initialize whole configuration based on spec hash.
13. **(screenshot)** shared axis

#### API Details: Spec

`AdvancedTransformation` requires `spec` which includes axis and parameter details for charts.

- Let's create 2 sub-charts called `simple-line` and `step-line`.
- Each sub chart can have different `axis` and `parameter` depending on their requirements.

```js
  constructor(targetEl, config) {
    super(targetEl, config)

    const spec = {
      charts: {
        'simple-line': {
          sharedAxis: true, /** set if you want to share axes between sub charts, default is `false` */
          axis: {
            'xAxis': { dimension: 'multiple', axisType: 'key', },
            'yAxis': { dimension: 'multiple', axisType: 'aggregator'},
            'category': { dimension: 'multiple', axisType: 'group', },
          },
          parameter: {
            'xAxisUnit': { valueType: 'string', defaultValue: '', description: 'unit of xAxis', },
            'yAxisUnit': { valueType: 'string', defaultValue: '', description: 'unit of yAxis', },
            'dashLength': { valueType: 'int', defaultValue: 0, description: 'the length of dash', },
          },
        },

        'step-line': {
          axis: {
            'xAxis': { dimension: 'single', axisType: 'unique', },
            'yAxis': { dimension: 'multiple', axisType: 'value', },
          },
          parameter: {
            'xAxisUnit': { valueType: 'string', defaultValue: '', description: 'unit of xAxis', },
            'yAxisUnit': { valueType: 'string', defaultValue: '', description: 'unit of yAxis', },
            'noStepRisers': { valueType: 'boolean', defaultValue: false, description: 'no risers in step line', widget: 'checkbox', },
        },

      },
    }

    this.transformation = new AdvancedTransformation(config, spec)
  }
```

####  API Details: Axis Spec

| Field Name | Available Values (type) | Description |
| --- | --- | --- |
|`dimension` | `single` | Axis can contains only 1 column |
|`dimension` | `multiple` | Axis can contains multiple columns |
|`axisType` | `key` | Column(s) in this axis will be used as `key` like in `PivotTransformation`. These columns will be served in `column.key` |
|`axisType` | `aggregator` | Column(s) in this axis will be used as `value` like in `PivotTransformation`. These columns will be served in `column.aggregator` |
|`axisType` | `group` | Column(s) in this axis will be used as `group` like in `PivotTransformation`. These columns will be served in `column.group` |
|`axisType` | (string) | Any string value can be used here. These columns will be served in `column.custom` |
|`maxAxisCount` | (int) | The maximum column count that this axis can contains. (unlimited if `undefined`) |
|`valueType` | (string) | Describe the value type just for annotation |

Here is an example.

```js
          axis: {
            'xAxis': { dimension: 'multiple', axisType: 'key',  },
            'yAxis': { dimension: 'multiple', axisType: 'aggregator'},
            'category': { dimension: 'multiple', axisType: 'group', maxAxisCount: 2, valueType: 'string', },
          },
```

####  API Details: Parameter Spec

| Field Name | Available Values (type) | Description |
| --- | --- | --- |
|`valueType` | `string` | Parameter which has string value |
|`valueType` | `int` | Parameter which has int value |
|`valueType` | `float` | Parameter which has float value |
|`valueType` | `boolean` | Parameter which has boolean value used with `checkbox` widget usually |
|`valueType` | `JSON` | Parameter which has JSON value used with `textarea` widget usually. `defaultValue` should be `""` (empty string). This ||`defaultValue` | (any) | Default value of this parameter. `JSON` type should have `""` (empty string) |
|`description` | (string) | Description of this parameter. This value will be parsed as HTML for pretty output |
|`widget` | `input` |  Use [input](https://developer.mozilla.org/en/docs/Web/HTML/Element/input) widget. This is the default widget (if `widget` is undefined)|
|`widget` | `checkbox` |  Use [checkbox](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox) widget. |
|`widget` | `textarea` |  Use [textarea](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) widget. |
|`widget` | `option` |  Use [select + option](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) widget. This parameter should have `optionValues` field as well. |
|`optionValues` | (Array<string>) |  Available option values used with the `option` widget |

Here is an example.

```js
parameter: {
  // string type, input widget
  'xAxisUnit': { valueType: 'string', defaultValue: '', description: 'unit of xAxis', },

  // boolean type, checkbox widget
  'inverted': { widget: 'checkbox', valueType: 'boolean', defaultValue: false, description: 'invert x and y axes', },

  // string type, option widget with `optionValues`
  'graphType': { widget: 'option', valueType: 'string', defaultValue: 'line', description: 'graph type', optionValues: [ 'line', 'smoothedLine', 'step', ], },

  // HTML in `description`
  'dateFormat': { valueType: 'string', defaultValue: '', description: 'format of date (<a href="https://docs.amcharts.com/3/javascriptcharts/AmGraph#dateFormat">doc</a>) (e.g YYYY-MM-DD)', },

  // JSON type, textarea widget
  'yAxisGuides': { widget: 'textarea', valueType: 'JSON', defaultValue: '', description: 'guides of yAxis ', },
```

#### API Details: Transformer Spec

`AdvancedTransformation` supports 3 transformation methods. The return value will depend on the transformation method type.

```js
    const spec = {
      charts: {
        'simple': {
          /** default value of `transform.method` is the flatten cube.  */
          axis: { ... },
          parameter: { ... }
        },

        'cube-group': {
          transform: { method: 'cube', },
          axis: { ... },
          parameter: { ... },
        }

        'no-group': {
          transform: { method: 'raw', },
          axis: { ... },
          parameter: { ... },
        }
```

| Field Name | Available Values (type) | Description |
| --- | --- | --- |
|`method` | `object` |  designed for [amcharts: serial](https://www.amcharts.com/demos/date-based-data/) |
|`method` | `array` | designed for [highcharts: column](http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/column-basic/) |
|`method` | `drill-down` | designed for [highcharts: drill-down](http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/column-drilldown/) |
|`method` | `raw` | will return the original `tableData.rows` |

Whatever you specified as `transform.method`, the `transformer` value will be always function for lazy computation.

```js
// advanced-transformation.util#getTransformer

  if (transformSpec.method === 'raw') {
    transformer = () => { return rows; }
  } else if (transformSpec.method === 'array') {
    transformer = () => {
      ...
      return { ... }
    }
  }

```

#### Feature Details: Automatic parameter parsing

Advanced transformation will parse parameter values automatically based on their type: `int`, `float`, `string`, `JSON`

- See also `advanced-transformation-util.js#parseParameter`

#### Feature Details: re-initialize the whole configuration based on spec hash

```js
// advanced-transformation-util#initializeConfig

  const currentVersion = JSON.stringify(spec)
  if (!config.spec || !config.spec.version || config.spec.version !== currentVersion) {
    spec.version = currentVersion
    // reset config...
  }
```

#### Feature Details: Shared Axes

If you set `sharedAxis` to `true` in chart specification, then these charts will share their axes. (default is `false`)

```js
    const spec = {
      charts: {
        'column': {
          transform: { method: 'array', },
          sharedAxis: true,
          axis: { ... },
          parameter: { ... },
        },

        'stacked': {
          transform: { method: 'array', },
          sharedAxis: true,
          axis: { ... }
          parameter: { ... },
        },
```

![sharedaxis](https://cloud.githubusercontent.com/assets/4968473/24207116/6999ad8a-0f63-11e7-8b61-273b712612fc.gif)

#### API Details: Usage in Visualization#render()

Let's assume that we want to create 2 sub-charts called `basic` and `no-group`.

- https://github.com/1ambda/zeppelin-ultimate-line-chart (an practical example)

```js
  drawBasicChart(parameter, column, transformer) {
    const { ... } = transformer()
  }

  drawNoGroupChart(parameter, column, transformer) {
    const { ... } = transformer()
  }

  render(data) {
    const { chart, parameter, column, transformer, } = data

    if (chart === 'basic') {
      this.drawBasicChart(parameter, column, transformer)
    } else if (chart === 'no-group') {
      this.drawNoGroupChart(parameter, column, transformer)
    }
  }
```

### What type of PR is it?
[Feature]

### Todos

NONE

### What is the Jira issue?

[ZEPPELIN-2217](https://issues.apache.org/jira/browse/ZEPPELIN-2217)

### How should this be tested?

1. Clone https://github.com/1ambda/zeppelin-ultimate-line-chart
2. Create a symbolic link `ultimate-line-chart.json` into `$ZEPPELIN_HOME/helium`
3. Modify the `artifact` value to proper absolute path considering your local machine.
4. Install the above visualization in `localhost:9000/#helium`
5. Test it

### Screenshots (if appropriate)

#### 1. *(screenshot)* multiple sub charts

![av_multiple_charts](https://cloud.githubusercontent.com/assets/4968473/24034638/7b84dba0-0b35-11e7-989d-059ccc87f968.gif)

#### 2. *(screenshot)* parameter widgets: `input`, `checkbox`, `option`, `textarea`

![av_widgets_new](https://cloud.githubusercontent.com/assets/4968473/24034652/88679d6c-0b35-11e7-835a-3970d7124850.gif)

#### 3. *(screenshot)* expand/fold axis and parameter panels

![av_fold_expand](https://cloud.githubusercontent.com/assets/4968473/24034653/8a634ddc-0b35-11e7-9851-15280a6b5fd3.gif)

#### 4. *(screenshot)* clear axis and parameter panels

![av_clean_buttons](https://cloud.githubusercontent.com/assets/4968473/24034654/8d3dc14a-0b35-11e7-98c7-3aeddce6d80a.gif)

#### 5. *(screenshot)* remove duplicated columns in an axis

![av_duplicated_columns](https://cloud.githubusercontent.com/assets/4968473/24034657/910f4d20-0b35-11e7-9e9b-d9e2f799a5dd.gif)

#### 6. *(screenshot)* limit column count in an axis

![av_maxaxiscount](https://cloud.githubusercontent.com/assets/4968473/24034679/a5e8eb34-0b35-11e7-89cd-070f3790d511.gif)

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

Author: 1ambda <1amb4a@gmail.com>

Closes #2098 from 1ambda/ZEPPELIN-2217/advanced-transformation and squashes the following commits:

6cde7c9 [1ambda] fix reset params when spec change
c75a3f2 [1ambda] fix: Reset persisted axis
6a2130a [1ambda] fix: clear config only when axis changed
5464e84 [1ambda] fix: Optimize array 2 key method
9beb1e7 [1ambda] fix: Type error
2408225 [1ambda] test: Add test for array 2key
bf56761 [1ambda] feat: Add array:2-key transform method
7c6768f [1ambda] feat: Use axisSpec.desc as tooltip
f98d4c9 [1ambda] fix: Remove invalid key  prop
5cf2ece [1ambda] feat: Add minAxisCount
4887800 [1ambda] fix: Remove local module yarn caches
3e29572 [1ambda] refactor: copyModule func
c91a033 [1ambda] fix: Set yarn cache dir in helium-bundles
04b5140 [1ambda] fix: Import a-tr
0a876cf [1ambda] docs: Update index.md
380b1af [1ambda] docs: Fix typo and add desc for existing trs
908214b [1ambda] docs: Move experimental tags
a009627 [1ambda] feat: Allow dup aggr axis
3b44e92 [1ambda] fix: Remove unuse const
ab6c22e [1ambda] test: Add test for drill-down method
756107a [1ambda] test: Add array transformation method
d819c73 [1ambda] test: Add object method
bf00fba [1ambda] test: Add MockTableData
39fe5ae [1ambda] test: Add test for getColumnsFromAxis
4c393b4 [1ambda] fix: Add polyfill for es6 funcs in test
e92c787 [1ambda] test: Add test for rmDup, aplMaxAxisCount
843f45d [1ambda] test: Add test for getCurrent* funcs
ae5277c [1ambda] test: Add test for initializeConfig
c14a9dc7 [1ambda] test: Add tests for widget, params
c510af1 [1ambda] docs: Add doc for Transformation
52db37b [1ambda] feat: Show panel menus only when opened
17ad4a4 [1ambda] feat: Support chartChanged, parameterChanged
c0d33d3 [1ambda] fix: Sort selectors in drilldown method
cfd6fef [1ambda] feat: sharedAxis
9af80ce [1ambda] style: Indent
79b5654 [1ambda] fix: return the same info in transform
7bee464 [1ambda] fix: Keynames
ee8788e [1ambda] feat: Support drill-down
666025a [1ambda] fix: DON'T reset current chart
ae1891f [1ambda] add array:key transform
4167a2e [1ambda] fix: Sort keyNames
912b5b7 [1ambda] fix: Persist initialized config
f1f6b0c [1ambda] feat: Support ARRAY transform.method
812f9a2 [1ambda] fix: Set proper aggr value when 0 group
20f9437 [1ambda] fix: getCube func
25d51a9 [1ambda] DON'T display aggr.name when aggrColumns.length == 1
f37e13d [1ambda] fix: Add 'object' transform.method
da2370c [1ambda] fix: Add resetAxis, Param funcs
2370682 [1ambda] fix: average is not caculated correctly
dd08e38 [1ambda] fix: Set param panel height to 400
881695a [1ambda] feat: clear chart, param separately
4d0d62b [1ambda] fix: DON'T clean panel config
92676d1 [1ambda] fix: limit parameter panel height to 370
cc29060 [1ambda] feat: parse param description as HTML
9a2d227 [1ambda] fix: Stop event propagation in widgets
fcc625c [1ambda] feat: Automatic param parsing
b4d774c [1ambda] fix: Dont close param panel when enter
088705b [1ambda] refactor: Remove util and add Widget funcs
bf88b4f [1ambda] feat: textare widget and update hook
4e73012 [1ambda] feat: widget checkbox
11b7eaa [1ambda] feat: option widget
5d3efc9 [1ambda] fix: Change panel header
b1d9d31 [1ambda] feat: Save and close with enter key
53f508c [1ambda] feat: custom axisSpec
0dbc431 [1ambda] feat: Support transformer
94d837a [1ambda] feat: Automatic spec versioning
74b8b4e [1ambda] fix: Duplicated radio btn id, name
5b88f08 [1ambda] fix: Modify margin of subchart radio btns
019892c [1ambda] feat: Support transform: flatten
0484e1e [1ambda] feat: Support maxAxisCount in axisSpec
936901b [1ambda] feat: Support undefined valueType in axisSpec
7a454ff [1ambda] feat: Cube Transformation
f0ed02f [1ambda] feat: Support same axis types
49985c6 [1ambda] refactor: Refine axis, param spec
d89e223 [1ambda] feat: advanced-transformation-api
75569ce [1ambda] feat: Support multiple charts in UI
e1fcc2e [1ambda] feat: Support multiple charts
97be629 [1ambda] fix: Add singleDimensionAggregatorChanged
676bd7e [1ambda] refactor: Refine transform API
9fb398e [1ambda] feat: Add clearConfig
a8a4fb1 [1ambda] refactor: Add getAxisInSingleDimension func
9768ecf [1ambda] feat: Add groupBase axis option
91ae54d [1ambda] fix: Overflow issue in single aggr
10c80fc [1ambda] feat: AdvancedTransformation
2017-04-15 07:34:27 +09:00
dlukyanov
53a28a3a91 Groovy Interpreter for Apazhe Zeppelin [ZEPPELIN-2176]
### What is this PR for?
Groovy Interpreter

### What type of PR is it?
Feature

### Todos
* [ Tests ] - Task
* [ Documentation ] - Task

### What is the Jira issue?
[ZEPPELIN-2176]

### How should this be tested?
Follow the groovy interpreter documentation samples

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

Author: dlukyanov <dlukyanov@ukr.net>
Author: dm <dm>

Closes #2135 from dlukyanov/master and squashes the following commits:

faf213f [dlukyanov] ZEPPELIN-2176 comments from @AhyoungRyu - remove @author - remove commented code
89c3ed5 [dlukyanov] retry
ca65947 [dlukyanov] deprecated
3dd53e2 [dlukyanov] ZEPPELIN-2176 comments from @AhyoungRyu - Zeppelin follows Google Java code - interpreter alphabetical order in _navigation.html - direct link to MarkupBuilder in groovy help
fe08159 [dlukyanov] retry
ca8bea6 [dlukyanov] Update groovy.md
a5b37a1 [dlukyanov] ZEPPELIN-2176 https://github.com/apache/zeppelin/pull/2135#issuecomment-289308850 - Inside of docs directory, groovy.md will need some header to be compiled with Jekyll - Menu in docs also need link to groovy - .travis.yml we need add !groovy
4abf649 [dm] Merge branch 'master' of https://github.com/apache/zeppelin
41a1702 [dlukyanov] ZEPPELIN-2176 https://github.com/apache/zeppelin/pull/2135#issuecomment-288829494 - implement shared script variables - move docs - implement run methods
dd388b3 [dlukyanov] retry
b34b42a [dlukyanov] retry
0d7732a [dlukyanov] retry
2646fa8 [dlukyanov] ZEPPELIN-2176 groovy interpreter, fix unchecked, add to configs, move HTTP.groovy to resources to simplify build, add default z-properties
5fa26e0 [dlukyanov] ZEPPELIN-2176 groovy interpreter, fix unchecked, add to configs, move HTTP.groovy to resources to simplify build, add default z-properties
aa427cd [dlukyanov] retry
addf167 [dlukyanov] retry
db4c35b [dlukyanov] Update README.md
fa779ea [dlukyanov] groovy interpreter
2017-04-04 14:59:35 +09:00
AhyoungRyu
9e8d7eb90c [Minor][ZEPPELIN-2328] Separate Helium related docs from 'Contribution' section
### What is this PR for?
Actually writing "Visualization", "Spell" or "Application" type of Helium package is not a direct contribution to Zeppelin. So i created "Helium Framework" section and moved "Writing Zeppelin Visualization", "Writing Zeppelin Spell", and "Writing Zeppelin Application" under "Helium Framework" from "Contribution".

### What type of PR is it?
Documentation

### What is the Jira issue?
[ZEPPELIN-2328](https://issues.apache.org/jira/browse/ZEPPELIN-2328)

### Screenshots (if appropriate)
 - Before
<img src="https://cloud.githubusercontent.com/assets/10060731/24444171/743d8c7e-14a0-11e7-8a10-ec02596d2a19.png" width="300px">

 - After
<img src="https://cloud.githubusercontent.com/assets/10060731/24444245/aecfe274-14a0-11e7-8488-99086b1db415.png" width="300px">

### 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>

Closes #2202 from AhyoungRyu/ZEPPELIN-2328 and squashes the following commits:

6185fcd [AhyoungRyu] Separate Helium related docs from 'Contribution' section
2017-04-01 18:56:51 +09:00
AhyoungRyu
8bb37c2c2e [DOCS][ZEPPELIN-2140] Add docs for notebookRepo REST API
### What is this PR for?
Added a docs page for notebookRepo REST API based on [NotebookRepoRestApi.java](https://github.com/apache/zeppelin/blob/master/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRepoRestApi.java). And this PR will cover "notebook repository reload endpoint" : #2043 as well.

### What type of PR is it?
Documentation

### What is the Jira issue?
[ZEPPELIN-2140](https://issues.apache.org/jira/browse/ZEPPELIN-2140)

### How should this be tested?
Just checking screenshots will be faster!

### Screenshots (if appropriate)
 - In navbar
<img width="300" alt="screen shot 2017-02-25 at 11 02 02 pm" src="https://cloud.githubusercontent.com/assets/10060731/23331707/76551c8a-fbae-11e6-99b8-cc686e208c39.png">

 - API description list
<img width="751" alt="screen shot 2017-02-25 at 10 54 21 pm" src="https://cloud.githubusercontent.com/assets/10060731/23331704/57dd7d4c-fbae-11e6-8cc2-189fc9e68ece.png">
<img width="715" alt="screen shot 2017-02-25 at 10 54 29 pm" src="https://cloud.githubusercontent.com/assets/10060731/23331708/85f722a0-fbae-11e6-9b40-7f4c98761dd6.png">
<img width="730" alt="screen shot 2017-02-25 at 10 54 38 pm" src="https://cloud.githubusercontent.com/assets/10060731/23331709/8882b93a-fbae-11e6-9fe2-95bc2620e2c9.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>

Closes #2067 from AhyoungRyu/ZEPPELIN-2140 and squashes the following commits:

c73e9b2 [AhyoungRyu] Fix typo :D
7d41435 [AhyoungRyu] Add underscore escaper
8eac3dd [AhyoungRyu] Add a docs page for notebookRepoRestApi
2017-02-28 13:02:02 +09:00
Jun Kim
5e75145ac8 [ZEPPELIN-1859] Add MongoNotebookRepo
### What is this PR for?
This PR adds Mongo notebook storage.

The reason that I made this feature is for HA(High Availability).
S3 and Git storage are the only available method for HA as far as I know.

I'm managing Ambari cluster in my lab, but Zeppelin is the most vulnerable part of it.
Because one server contains all Zeppelin notes.

Therefore, by deploying MongoDB's [replica set](https://docs.mongodb.com/manual/replication/) and using it as Zeppelin notebook storage, I would like to achieve HA.

#### The way to use Mongo DB as notebook storage
```sh
export ZEPPELIN_NOTEBOOK_STORAGE=org.apache.zeppelin.notebook.repo.MongoNotebookRepo
```

or at `zeppelin-site.xml`:
```xml
<property>
  <name>zeppelin.notebook.storage</name>
  <value>org.apache.zeppelin.notebook.repo.MongoNotebookRepo</value>
  <description>notebook persistence layer implementation</description>
</property>
```
#### Configurable environment variables
* `ZEPPELIN_NOTEBOOK_MONGO_URI` MongoDB connection URI
* `ZEPPELIN_NOTEBOOK_MONGO_DATABASE` Database name
* `ZEPPELIN_NOTEBOOK_MONGO_COLLECTION` Collection name
* `ZEPPELIN_NOTEBOOK_MONGO_AUTOIMPORT` If `true`, automatically import your local notes. Default `false`

They can be configured at `zeppelin-site.xml` as well:
* `zeppelin.notebook.mongo.uri`
* `zeppelin.notebook.mongo.database`
* `zeppelin.notebook.mongo.collection`
* `zeppelin.notebook.mongo.autoimport`

#### Future work
If we use Mongo DB's [oplog tailing](https://docs.mongodb.com/manual/core/replica-set-oplog/), maybe multi-server architecture is possible.

### What type of PR is it?
[Feature]

### Todos
* [ ] - Write a documentation for Mongo storage

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1859

### How should this be tested?
#### Install MongoDB (if you don't have)
```sh
brew update
brew install mongodb
```
#### Build Zepppelin
```sh
mvn clean package -DskipTests
```
#### Run Zeppelin wih Mongo storage
```sh
export ZEPPELIN_NOTEBOOK_STORAGE=org.apache.zeppelin.notebook.repo.MongoNotebookRepo
export ZEPPELIN_NOTEBOOK_MONGO_AUTOIMPORT=true
bin/zeppelin-daemon.sh restart
```
The default database and collection names are `zeppelin`, `notes` respectively.
And `ZEPPELIN_NOTEBOOK_MONGO_AUTOIMPORT` option will automatically import your `local notes` that don't exist in MongoDB.
#### Check whether a document in MongoDB updated
Create, update, remove a note and open mongo shell:
```sh
mongo zeppelin
```
And check state of the note is the same as you think:
```sh
db.notes.findOne({_id: '<NOTE_ID_THAT_YOU_WANT_TO_SEE>'})
```
#### Confirm that configurations works
```sh
export ZEPPELIN_NOTEBOOK_STORAGE=org.apache.zeppelin.notebook.repo.MongoNotebookRepo
export ZEPPELIN_NOTEBOOK_MONGO_AUTOIMPORT=true
export ZEPPELIN_NOTEBOOK_MONGO_DATABASE=otherdb
export ZEPPELIN_NOTEBOOK_MONGO_COLLECTION=mynotes
export ZEPPELIN_NOTEBOOK_MONGO_URI=mongodb://localhost:27017
bin/zeppelin-daemon.sh restart
```
The collection `mynotes` should be created in db `otherdb`.
Let's check it!
```sh
mongo otherdb
db.mynotes.count()
```
The result should not be zero.

#### Confirm that configurations from `zeppelin-site.xml` works
Open your `conf/zeppelin-site.xml` file (copy from `zeppelin-site.xml.template` if you don't have one), and comment lines below:
```xml
<!--
<property>
  <name>zeppelin.notebook.storage</name>
  <value>org.apache.zeppelin.notebook.repo.VFSNotebookRepo</value>
  <description>notebook persistence layer implementation</description>
</property>
-->
```
And add lines below:
```xml
<property>
  <name>zeppelin.notebook.storage</name>
  <value>org.apache.zeppelin.notebook.repo.MongoNotebookRepo</value>
  <description>notebook persistence layer implementation</description>
</property>

<property>
  <name>zeppelin.notebook.mongo.uri</name>
  <value>mongodb://localhost</value>
  <description>MongoDB connection URI used to connect to a MongoDB database server</description>
</property>

<property>
  <name>zeppelin.notebook.mongo.database</name>
  <value>zepl</value>
  <description>database name for notebook storage</description>
</property>

<property>
  <name>zeppelin.notebook.mongo.collection</name>
  <value>notes</value>
  <description>collection name for notebook storage</description>
</property>

<property>
  <name>zeppelin.notebook.mongo.autoimport</name>
  <value>false</value>
  <description>import local notes into MongoDB automatically on startup</description>
</property>
```

This time we will import a note via `mongoimport`. I made it possible to import a note from JSON just in case.
```sh
cd $ZEPPELIN_HOME/notebook/<NOTE_ID_YOU_WANT_TO_IMPORT>
mongoimport --db zepl --collection notes --file note.json
```

Ensure that your environment variables are clean(just reopen your terminal if you are not), and restart zeppelin:
```sh
bin/zeppelin-daemon.sh restart
```
Open browser and go to `localhost:8080`. The note that you imported should be shown.

### Questions:
* Does the licenses files need update? Maybe...? I used [java-mongodb-driver](https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.4.1) which has *The Apache Software License, Version 2.0*
* Is there breaking changes for older versions? NO
* Does this needs documentation? YES

Author: Jun Kim <i2r.jun@gmail.com>

Closes #1826 from tae-jun/ZEPPELIN-1859 and squashes the following commits:

98282ae [Jun Kim] Add a documentation for MongoDB notebook storage
77947b8 [Jun Kim] Add license information of mongo-java-driver
08eee3d [Jun Kim] fix style check error
a4fba8c [Jun Kim] Add MongoNotebookRepo
2017-02-21 09:29:09 +09:00
1ambda
90e8b80b56 [ZEPPELIN-2070][DOCS] Create Docs for Spell
### What is this PR for?

Docs for Spell which was added by #1940

### What type of PR is it?
[Documentation]

### Todos
* [x] - Add docs for spell
* [x] - Fix typo in vis docs

### What is the Jira issue?

[ZEPPELIN-2070](https://issues.apache.org/jira/browse/ZEPPELIN-2070)

### How should this be tested?

- `cd docs`
- `/usr/local/bin/bundle exec jekyll serve --watch`
- Open `http://localhost:4000/development/writingzeppelinspell.html`

### Screenshots (if appropriate)

![image](https://cloud.githubusercontent.com/assets/4968473/22772190/9e6cfbfc-eede-11e6-8f36-8ee3749d4b36.png)

![image](https://cloud.githubusercontent.com/assets/4968473/22772341/703c4d54-eedf-11e6-87ba-a8446f35c862.png)

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

Author: 1ambda <1amb4a@gmail.com>

Closes #1998 from 1ambda/ZEPPELIN-2070/docs-for-spell and squashes the following commits:

dbb8082 [1ambda] fix: Typo
af63ff6 [1ambda] fix: Enhance spell doc
9fd2a3b [1ambda] fix: Typo
0851ad1 [1ambda] fix: Typo in spell doc
00d5158 [1ambda] fix: Indent
c7dc9bd [1ambda] fix: Typo in writing in viz
bcc9b3e [1ambda] docs: Add docs for spell
83ee050 [1ambda] docs: Add spell doc to nav
04deb81 [1ambda] fix: Invalid desc in vis docs
2017-02-16 10:25:55 +09:00
AhyoungRyu
d053e5b333 [MINOR][ZEPPELIN-2100] Enable to go back to zeppelin.apache.org in docs site
### What is this PR for?
Currently there is no link to go back to [zeppelin.apache.org](https://zeppelin.apache.org) in each docs site. It's a bit inconvenient.

e.g. In [https://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/](https://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/), if I click Zeppelin main logo, it keeps me staying in docs main page not the root: [zeppelin.apache.org](https://zeppelin.apache.org).

So I separated main logo in navbar to "Zeppelin" and "version". And linked [production_url](https://github.com/apache/zeppelin/blob/master/docs/_config.yml#L34) and [BASE_PATH](https://github.com/apache/zeppelin/blob/master/docs/_config.yml#L62) to each of them. Please see the below screenshot img.

### What type of PR is it?
Improvement

### What is the Jira issue?
[ZEPPELIN-2100](https://issues.apache.org/jira/browse/ZEPPELIN-2100)

### How should this be tested?
Run docs site locally under `ZEPPELIN_HOME/docs` as described in here: [Run website locally](https://github.com/apache/zeppelin/blob/master/docs/README.md#run-website-locally)

### Screenshots (if appropriate)
In [https://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/](https://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/),

 - Before
<img width="400px" src="https://cloud.githubusercontent.com/assets/10060731/22860466/6064c964-f142-11e6-9bc1-bbd34fa42c18.png">

 - After
<img width="500px" src="https://cloud.githubusercontent.com/assets/10060731/22860469/69364568-f142-11e6-963d-7b6ab33330c3.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>

Closes #2008 from AhyoungRyu/change/mainLogoUrlToOfficialSite and squashes the following commits:

335e625 [AhyoungRyu] Fix indentation
80f724c [AhyoungRyu] Set main logo url to zeppelin.apache.org not docs site
2017-02-16 10:21:06 +09:00
Lee moon soo
300f753234 [ZEPPELIN-1619] Load js package as a plugin visualization
### What is this PR for?
Current helium plugin application api (experimental) requires create library in java class, and need to create both backend / frontend code in the package. Which is good if your plugin requires both frontend and backend code running.

However, when user just want to make new visualization which completely runs on front-end side in javascript, creating helium application in java project and taking care of backend code can be bit of overhead and barrier for javascript developers.

This PR adds capability to load pure javascript package as a visualization.

### how it works

1. create (copy, download) 'helium package json' file into `ZEPPELIN_HOME/helium` directory.
  The json file point visualization js package in npm repository or local file system in `artifact` field.
  `type` field in the json file need to be `VISUALIZATION`

Here's an example (zeppelin-examples/zeppelin-example-horizontalbar/zeppelin-example-horizontalbar.json)
```
{
  "type" : "VISUALIZATION",
  "name" : "zeppelin_horizontalbar",
  "description" : "Horizontal Bar chart (example)",
  "artifact" : "./zeppelin-examples/zeppelin-example-horizontalbar",
  "icon" : "<i class='fa fa-bar-chart rotate90flipX'></i>"
}
```

2. Go to helium GUI menu. (e.g. http://localhost:8080/#/helium).
  The menu will list all available packages.
<img width="796" alt="writing_visualization_helium_menu" src="https://cloud.githubusercontent.com/assets/1540981/21749660/0f401c10-d558-11e6-9961-b6d0a9c023d8.png">

3. click 'enable' in any package want to use.
Once a visualization package is enabled, `HeliumVisualizationFactory` will collect all enabled visualizations and create js bundle on the fly.

4. js bundle will be loaded on notebook and additional visualization becomes available
![image](https://cloud.githubusercontent.com/assets/1540981/21749729/709b2b3e-d559-11e6-8318-7f2871e7c39a.png)

### Programming API to create new plugin visualization.

Simply extends [visualization.js](https://github.com/apache/zeppelin/blob/master/zeppelin-web/src/app/visualization/visualization.js) and overrides some methods, such as

```
  /**
   * get transformation
   */
  getTransformation() {
    // override this
  };

  /**
   * Method will be invoked when data or configuration changed
   */
  render(tableData) {
    // override this
  };

  /**
   * Refresh visualization.
   */
  refresh() {
    // override this
  };

  /**
   * method will be invoked when visualization need to be destroyed.
   * Don't need to destroy this.targetEl.
   */
  destroy() {
    // override this
  };

  /**
   * return {
   *   template : angular template string or url (url should end with .html),
   *   scope : an object to bind to template scope
   * }
   */
  getSetting() {
    // override this
  };
```

This is exactly the same api that built-in visualization uses.

an example implementation included `zeppelin-examples/zeppelin-example-horizontalbar/horizontalbar.js`.
Actually [all built-in visualizations](https://github.com/apache/zeppelin/tree/master/zeppelin-web/src/app/visualization/builtins) are example

### Packaging and publishing visualization

Each visualization will need `package.json` file (e.g. `zeppelin-examples/zeppelin-example-horizontalbar/package.json`) to be packaged.
Package can be published in npm repository or package can be deployed to the local filesystem.

`zeppelin-examples/zeppelin-example-horizontalbar/` is an example package that is deployed in the local filesystem

### Development mode

First, locally install and enable your development package by setting `artifact` field to the development directory.
Then run zeppelin-web in visualization development mode with following command
```
cd zeppelin-web
npm run visdev
```
When you have change in your local development package, just reload your notebook. Then Zeppelin will automatically rebuild / reload the package.

Any feedback would be appreciated!

### What type of PR is it?
Feature

### Todos
* [x] - Load plugin visualization js package on runtime
* [x] - Make the feature works in zeppelin Binary package
* [x] - Show loading indicator while 'enable' / 'disable' package
* [x] - Add document
* [x] - Add license of new dependency
* [x] - Development mode
* [x] - Propagate error to front-end
* [x] - Display multiple versions of a package.

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1619

### How should this be tested?
Build Zeppelin with `-Pexamples` flag. That'll install example visualization package `horizontalbar`.
You'll able to select `horizontalbar` along with other built-in visualizations
![image](https://cloud.githubusercontent.com/assets/1540981/21655057/27d61740-d26d-11e6-88f2-02c653e102c6.png)

To test npm online package install capability,  Place [zeppelin-bubble.json](https://github.com/Leemoonsoo/zeppelin-bubble/blob/master/zeppelin-bubble.json) in hour local registry (`ZEPPELIN_HOME/helium`) and enable it in Helium gui menu.
And then zeppelin will download package from npm repository and load.
![bubblechart](https://cloud.githubusercontent.com/assets/1540981/21749717/280aa430-d559-11e6-9209-889a4f86d7e2.gif)

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

Author: Lee moon soo <moon@apache.org>

Closes #1842 from Leemoonsoo/ZEPPELIN-1619-rebased and squashes the following commits:

7c49bbb [Lee moon soo] Let Zeppelin continue to bootstrap on offline
816bdec [Lee moon soo] Display license of package when enabling
28fb37d [Lee moon soo] beautifulize helium menu
295768e [Lee moon soo] fix drag and drop visualization reorder
bb304db [Lee moon soo] Sort version in decreasing order
e7f18f1 [Lee moon soo] fix english in docs and labels
c7b187f [Lee moon soo] Merge branch 'master' into ZEPPELIN-1619-rebased
4c87983 [Lee moon soo] Merge remote-tracking branch 'apache-github/master' into ZEPPELIN-1619-rebased
ecd925b [Lee moon soo] Merge remote-tracking branch 'apache-github/master' into ZEPPELIN-1619-rebased
a92cadd [Lee moon soo] Use minifiable syntax
cec534c [Lee moon soo] Reduce log message
f373f1d [Lee moon soo] Ignore removed package
e18d9a4 [Lee moon soo] Ability to customize order of visualization package display
cd74396 [Lee moon soo] Add rest api doc
9de5d6d [Lee moon soo] exclude .npmignore and package.json from zeppelin-web rat check
08abded [Lee moon soo] exclude package.json from rat check
661c26b [Lee moon soo] update screenshot and keep experimental tag only in docs
4515805 [Lee moon soo] Display multiple versions of a package
408c512 [Lee moon soo] Make unittest test bundling with proper vis package on npm registry
fb7a147 [Lee moon soo] display svg icon
47de6d9 [Lee moon soo] Propagate bundle error to the front-end
0fe5e00 [Lee moon soo] visualization development mode
022e8f6 [Lee moon soo] exclude zeppelin-examples/zeppelin-example-horizontalbar/package.json file from rat check
2ef3b69 [Lee moon soo] Add new dependency license
f943d33 [Lee moon soo] Add doc
f494dbd [Lee moon soo] package npm dependency module in binary package
b655fa6 [Lee moon soo] use any version of dependency in example. so zeppelin version bumpup doesn't need to take care of them
2aec52d [Lee moon soo] show loading indicator while enable/disable package
6c380f6 [Lee moon soo] refactor code to fix HeliumTest
e142336 [Lee moon soo] update unittest
7d5e0ae [Lee moon soo] Resolve dependency conflict
c50a524 [Lee moon soo] Add conf/helium.json in .gitignore
1c7b73a [Lee moon soo] add result.css
d2823ad [Lee moon soo] load visualization and tabledata module from source instead npm if accessible
4e1b061 [Lee moon soo] Convert horizontalbar to VISUALIZATION example
a5a935b [Lee moon soo] connect visualization factory with restapi
4b21252 [Lee moon soo] initial implementation of helium menu
0c4da2e [Lee moon soo] pass bundled visualization to result.controller.js
f5ce99e [Lee moon soo] import helium service js
1663582 [Lee moon soo] initial implementation of helium menu
74d52d4 [Lee moon soo] bundle visualization package from npm repository on the fly
2017-01-14 10:27:17 -08:00
AhyoungRyu
1697275717 [MINOR][ZEPPELIN-1913] Separate "Apache Zeppelin Configuration" from quickstart page
### What is this PR for?
I think [Quick Start](https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/install/install.html) page should contain minimum contents to get start Zeppelin for beginners. If not, this can be making the entrance barrier high. But after "SSL configuration" contents were added, configuration section came so long. So I created new page `configuration.md` and separated the all configuration related contents from Quick Start page.

### What type of PR is it?
Documentation

### What is the Jira issue?
[ZEPPELIN-1913](https://issues.apache.org/jira/browse/ZEPPELIN-1913)

### How should this be tested?
Outline the steps to test the PR here.

### Screenshots (if appropriate)
 - before (quickstart guide + Zeppelin configuration in one page)
![before](https://cloud.githubusercontent.com/assets/10060731/21708853/b7cae9ee-d41f-11e6-867a-3870ecd42efa.gif)

 - after (separated two page)
![after](https://cloud.githubusercontent.com/assets/10060731/21708865/d0cf7ca2-d41f-11e6-9ca2-0ea9649c896e.gif)

### 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>

Closes #1855 from AhyoungRyu/separate/confContents and squashes the following commits:

54f9ad9 [AhyoungRyu] Update page description
9d0cb19 [AhyoungRyu] Separate 'Zeppelin Configuration' section from quickstart
2017-01-08 14:43:47 +09:00
AhyoungRyu
c854fda936 [DOCS] Separate "interpreter exec hooks (experimental)" from interpreter overview page
### What is this PR for?
After #1470 merged, "(Experimental) Interpreter Execution Hooks" is added under https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/manual/interpreters.html page. But i think we need to keep this page as simple as possible since it's explaining the basic concept of Zeppelin interpreters. So I separated  "(Experimental) Interpreter Execution Hooks" section from `interpreters.md` and created new page `interpreterexechooks.md`.
And also fixed some markdown rendering issues.

### What type of PR is it?
Documentation

### What is the Jira issue?
N/A

### How should this be tested?
Please see below screenshots :)

### Screenshots (if appropriate)
 - Before (under [manual/interpreter.md](https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/manual/interpreters.html#experimental-interpreter-execution-hooks)
<img width="437" alt="screen shot 2016-12-15 at 5 05 49 pm]" src="https://cloud.githubusercontent.com/assets/10060731/21216362/a3bb89f0-c2e9-11e6-9678-8e6d8749229b.png">

 - After
<img width="300" alt="dropdown" src="https://cloud.githubusercontent.com/assets/10060731/21216570/dcca63f0-c2ea-11e6-90a9-969d363b423a.png">

<img width="437" alt="screen shot 2016-12-15 at 5 05 58 pm" src="https://cloud.githubusercontent.com/assets/10060731/21216363/a6c2d82e-c2e9-11e6-920c-a603e25e1699.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>

Closes #1768 from AhyoungRyu/separate-eventhook-section and squashes the following commits:

ce19491 [AhyoungRyu] Separate 'interpreter exec hooks' from intp overview
2016-12-17 21:50:39 +09:00
Prabhjyot Singh
31f584cfee [ZEPPELIN-1320] Run zeppelin interpreter process as web front end user
Have recreated this from https://github.com/apache/zeppelin/pull/1322
### What is this PR for?

While running a Notebook using shell, spark, python uses same user as which zeppelin server is running. Which means these interprets have same permission on file system as zeppelin server.
IMO users should be able to impersonate themselves as a complete security system.
### What type of PR is it?

[Improvement]
### Todos
- [x] - Update doc
- [x] - FIX NPEs
- [x] - FIX CI
### What is the Jira issue?
- [ZEPPELIN-1320](https://issues.apache.org/jira/browse/ZEPPELIN-1320)
### How should this be tested?
- Enable shiro auth in shiro.ini
- Add ssh key for the same user you want to try and impersonate (say user1).

```
adduser user1
ssh-keygen
ssh user1localhost mkdir -p .ssh
cat ~/.ssh/id_rsa.pub | ssh user1localhost 'cat >> .ssh/authorized_keys'
```
- Start zeppelin server, try and run following in paragraph in a notebook
- Go to interpreter setting page, and enable "User Impersonate" in any of the interpreter (in my example its shell interpreter)

```
%sh
whoami
```

Check that it should run as new user, i.e. "user1"
### Screenshots (if appropriate)

![user impersonate](https://cloud.githubusercontent.com/assets/674497/20213127/f32fdc52-a82c-11e6-8e33-aebd6a943c5f.gif)

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

Author: Prabhjyot Singh <prabhjyotsingh@gmail.org>

Closes #1554 from prabhjyotsingh/ZEPPELIN-1320-2 and squashes the following commits:

dc69c9d [Prabhjyot Singh] @Leemoonsoo review comment: making ZEPPELIN_SSH_COMMAND configurable
1b26cc0 [Prabhjyot Singh] add doc
5a76839 [Prabhjyot Singh] show User Impersonate only when interpreter setting is "per user" and "isolated"
02c3084 [Prabhjyot Singh] Merge remote-tracking branch 'origin/master' into ZEPPELIN-1320-2
03b2f20 [Prabhjyot Singh] use user instead of ""
0ff80ec [Prabhjyot Singh] Merge remote-tracking branch 'origin/master' into ZEPPELIN-1320-2
dd0731d [Prabhjyot Singh] fix missing test cases
aff1bf0 [Prabhjyot Singh] user should have option to run these interpreters as different user.
2016-11-17 19:07:29 -08:00
Rafal Wojdyla
f127237fb1 Closes [ZEPPELIN-1505] Add Scio interpreter
### What is this PR for?

Closes #ZEPPELIN-1505. Adds Scio interpreter. Scio is a Scala DSL on top of Dataflow/Beam.
### What type of PR is it?

Improvement - ZEPPELIN-1505
### Todos
- [x] - test integration with zeppelin context (zeppelin context is too tightly coupled withs spark)
- [x] - what to do about code completion?
- [x] - add more tests?
- [x] - add helpers to display data
- [x] - add doc in `docs/interpreter/scio`
### What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-1505
### How should this be tested?

```
mvn -pl scio,zeppelin-display,zeppelin-interpreter -Dtest='org.apache.zeppelin.scio.*' -DfailIfNoTests=false test
```
### Screenshots

![GitHub Logo](http://i.imgur.com/w6Cp5kp.png)
### Questions:
- Does the licenses files need update? ~~no~~ yes
- Is there breaking changes for older versions? no
- Does this needs documentation? yes (included in the PR)

Author: Rafal Wojdyla <rav@spotify.com>

Closes #1471 from ravwojdyla/scio and squashes the following commits:

d6fbc4e [Rafal Wojdyla] Add runner doc links
7e6fdec [Rafal Wojdyla] Fix indentation
d8de7c8 [Rafal Wojdyla] Remove optional flink deps from Beam
508705f [Rafal Wojdyla] Remove duplicates
49cf0eb [Rafal Wojdyla] Add scio to beam group
cd79fc8 [Rafal Wojdyla] Add .bigquery cache to gitignore
b961791 [Rafal Wojdyla] Check the message content
1e30f76 [Rafal Wojdyla] Simplify SCollection implicits
3c519f1 [Rafal Wojdyla] Fix doc style
e9579d8 [Rafal Wojdyla] Clarify Context sharing + add docs about display helpers
327273e [Rafal Wojdyla] Add Zeppelin custom ContextAndArgs
0920fdd [Rafal Wojdyla] Remove obsolete deps
8f25f71 [Rafal Wojdyla] Upgrade scio to 0.2.4
3275185 [Rafal Wojdyla] Add license
bd4df5e [Rafal Wojdyla] Fix documentation style
dcbb197 [Rafal Wojdyla] Add documentation link
e635674 [Rafal Wojdyla] Add tests for DisplayHelpers
c0f8ccf [Rafal Wojdyla] Fix style and number of records for take
9dcc8ce [Rafal Wojdyla] Add display helpers for Tap[T] and Future[Tap[T]]
4014c81 [Rafal Wojdyla] Parse params generic params
0305a3c [Rafal Wojdyla] Style fix
a92494b [Rafal Wojdyla] Style + use `split` to support both scala 2.{10,11}
b884b72 [Rafal Wojdyla] Fix tests - add exception and check messages
99a7daa [Rafal Wojdyla] Progress should be 0
7b54e49 [Rafal Wojdyla] No need to override delegation for completion
12f0096 [Rafal Wojdyla] Clean up tests
93233a8 [Rafal Wojdyla] Rename argz param, fix style
0a3b49a [Rafal Wojdyla] Add Scio doc
61850d7 [Rafal Wojdyla] Add TableRow display helper + style
be252f8 [Rafal Wojdyla] Add avro display
89a2811 [Rafal Wojdyla] Add limit of display
9a21aa0 [Rafal Wojdyla] Add display helpers
6ff4e95 [Rafal Wojdyla] Inject argz to the Scio interpreter
570cfaa [Rafal Wojdyla] Add Scio interpreter tests
38abaf9 [Rafal Wojdyla] Add Scio interpreter
7b596ea [Rafal Wojdyla] Generalize SparkOutputStream
2016-11-14 11:00:15 -08:00
zhongjian
c9adf7161f ZEPPELIN-415 document for Apache Kylin Interpreter
### What is this PR for?
This is document for Apache Kylin Interpreter for Apache Zeppelin

### What type of PR is it?
Documentation

### Todos
Done

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-415

### How should this be tested?

### Screenshots (if appropriate)

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

Author: zhongjian <jiatuer@163.com>
Author: Jason <jiatuer@163.com>

Closes #1576 from janzhongi/master and squashes the following commits:

5464006 [zhongjian] add default value for kylin query api config
c26fa77 [Jason] ZEPPELIN-415 document for Apache Kylin Interpreter
2016-11-14 06:59:06 +01:00
Lee moon soo
5b1b811540 [ZEPPELIN-1644] make document easier to follow key instructions
### What is this PR for?
Doc should deliver key features and recommended usage more simple and easy way.

 - docs/install/install.md has lots of duplicated section with README.md.
 - docs/install/install.md includes install from binary as well as build from source. I've seen that makes some beginners try download binary and then source build it again.
 - recommended and key usage need to be highlighted.
 - Be less verbose in key instructions. Move optional, additional info from in the middle of key instruction to end of the each page.

### What type of PR is it?
Improvement

### Todos
* [x] - improve doc

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1644

### How should this be tested?
Run doc locally

### Screenshots (if appropriate)

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

Author: Lee moon soo <moon@apache.org>

Closes #1615 from Leemoonsoo/ZEPPELIN-1644 and squashes the following commits:

e554216 [Lee moon soo] Add build item in index.md
c6b25f8 [Lee moon soo] Update suggested build command.
c7a19eb [Lee moon soo] Add build.md
e59fe3f [Lee moon soo] make document easier to follow key instructions
2016-11-13 06:48:41 -08:00
hyonzin
201d601224 [ZEPPELIN-1552] Search button goes to next line when display's width shortens.
### What is this PR for?
In document page(http://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/), the search button goes to next line when display's width shortens.

### What type of PR is it?
[Improvement]

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1552

### Screenshots (if appropriate)
<img width="927" alt="2016-10-15 2 04 00" src="https://cloud.githubusercontent.com/assets/6567102/19398321/0d76a1c4-9287-11e6-86e0-9f120c00b143.png">
when (768px ≤ width < 992px)

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

Author: hyonzin <hyeonjin507@gmail.com>
Author: AhyoungRyu <ahyoungryu@apache.org>
Author: 정현진 <hyeonjin507@gmail.com>

Closes #1525 from hyonzin/ZEPPELIN-1552 and squashes the following commits:

f1d97ef [AhyoungRyu] Fix search icon's placement in small browser
244992d [정현진] Straighten wrong term
97d1bdf [hyonzin] Fix search link button to not goes next line when display's width shortens
2016-10-17 15:39:08 +09:00
Jeff Zhang
465c51a419 ZEPPELIN-335. Pig Interpreter
### What is this PR for?
Based on #338 , I refactor most of pig interpreter. As I don't think the approach in #338 is the best approach. In #338, we use script `bin/pig` to launch pig script, it is different to control that job (hard to kill and get progress and stats info).  In this PR, I use pig api to launch pig script. Besides that I implement another interpreter type `%pig.query` to leverage the display system of zeppelin. For the details you can check `pig.md`

### What type of PR is it?
[Feature]

### Todos
* Syntax Highlight
* new interpreter type `%pig.udf`, so that user can write pig udf in zeppelin directly and don't need to build udf jar manually.

### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-335

### How should this be tested?
Unit test is added and also manual test is done

### Screenshots (if appropriate)

![image](https://cloud.githubusercontent.com/assets/164491/18986649/54217b4c-8730-11e6-9e33-25f98a98a9b6.png)

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

Author: Jeff Zhang <zjffdu@apache.org>
Author: Ali Bajwa <abajwa@hortonworks.com>
Author: AhyoungRyu <ahyoungryu@apache.org>
Author: Jeff Zhang <zjffdu@gmail.com>

Closes #1476 from zjffdu/ZEPPELIN-335 and squashes the following commits:

73a07f0 [Jeff Zhang] minor update
a1b742b [Jeff Zhang] minor update on doc
e858301 [Jeff Zhang] address comments
c85a090 [Jeff Zhang] add license
58b4b2f [Jeff Zhang] minor update of docs
1ae7db2 [Jeff Zhang] Merge pull request #2 from AhyoungRyu/ZEPPELIN-335/docs
fe014a7 [AhyoungRyu] Fix docs title in front matter
df7a6db [AhyoungRyu] Add pig.md to dropdown menu
5e2e222 [AhyoungRyu] Minor update for pig.md
39f161a [Jeff Zhang] address comments
05a3b9b [Jeff Zhang] add pig.md
a09a7f7 [Jeff Zhang] refactor pig Interpreter
c28beb5 [Ali Bajwa] Updated based on comments: 1. Documentation: added pig.md with interpreter documentation and added pig entry to index.md 2. Added test junit test based on passwd file parsing example here https://pig.apache.org/docs/r0.10.0/start.html#run 3. Removed author tag from comment (this was copied from shell interpreter https://github.com/apache/incubator-zeppelin/blob/master/shell/src/main/java/org/apache/zeppelin/shell/ShellInterpreter.java#L42) 4. Implemented cancel functionality 5. Display output stream in case of error
2586336 [Ali Bajwa] exposed timeout and pig executable via interpreter and added comments
7abad20 [Ali Bajwa] initial commit of pig interpreter
2016-10-15 12:26:50 -07:00
rawkintrevo
523868ed8d [DOCS] Zeppelin Flink Spark tutorial
Moon recommended I migrate a How To tutorial I wrote into the website.

http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-users/201511.mbox/browser

I didn't create a JIRA issue, it doesn't look like that is nessicary for website updates? If it is, I'm sorry I'll go make one. Sorry, I'm new.

Author: rawkintrevo <trevor.d.grant@gmail.com>

Closes #418 from rawkintrevo/zeppelin-flink-spark-tutorial and squashes the following commits:

0cd86b3 [rawkintrevo] [DOCS] Flink and Spark Cluster Tutorial
2016-09-30 11:14:44 +09:00
astroshim
c7ce709f35 [ZEPPELIN-1279] Zeppelin with CDH5.x docker document.
### What is this PR for?
This PR is for the documentation of running zeppelin with CDH docker environment.
and This PR is the part of https://issues.apache.org/jira/browse/ZEPPELIN-1198.

Tested CDH5.7 on ubuntu.

### What type of PR is it?
Documentation

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1281

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

Author: astroshim <hsshim@nflabs.com>
Author: AhyoungRyu <ahyoungryu@apache.org>
Author: HyungSung <hsshim@nflabs.com>

Closes #1451 from astroshim/ZEPPELIN-1281 and squashes the following commits:

5dcb8c1 [astroshim] move configurations to right path and add excluding rat-plugin
09408e3 [HyungSung] Merge pull request #11 from AhyoungRyu/ZEPPELIN-1281-ahyoung
850119c [AhyoungRyu] Generate TOC & change some sentences
e687a53 [AhyoungRyu] Replace zeppelin_with_cdh.png to crop the url part
cc9a023 [AhyoungRyu] Remove main title link anchor
b525f68 [astroshim] separate cdh doc with spark_cluster_mode.md
e66993f [astroshim] fix doc
a7b5b2d [astroshim] cdh docker environment
2016-09-29 21:01:31 +09:00
mahmoudelgamal
403c8c4e79 [ZEPPELIN-682] New interpreter for Apache Beam (incubating)/DataFlow
## What is this PR for?
The PR is a interpreter for [Apache Beam](http://beam.incubator.apache.org) which is an open source unified platform for data processing pipelines. A pipeline can be build using one of the Beam SDKs.
The execution of the pipeline is done by different Runners . Currently, Beam supports Apache Flink Runner, Apache Spark Runner, and Google Dataflow Runner.

### What type of PR is it?
- Feature

### Todos
* Test case
* Review Comments
* Documentation

### What is the Jira issue?
* [ZEPPELIN-682]

### How should this be tested?
- Start the Zeppelin server
- The prefix of interpreter is `%beam` and then write your code with required imports and the runner

### Screenshots (if appropriate)
![](https://s9.postimg.org/s6eiwrbxb/beam_interpreter.png)
![](https://s9.postimg.org/eq3h8wsrz/visualisation_with_table.png)

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

Author: mahmoudelgamal <mahmoudf.elgamal@gmail.com>
Author: mfelgamal <mahmoudf.elgamal@gmail.com>
Author: Fouad <fuad.assayadi@gmail.com>

Closes #1334 from mfelgamal/beam-interpreter-static-repl-7 and squashes the following commits:

da66c27 [mahmoudelgamal] Modify condition of checking static modifier
55c1322 [mahmoudelgamal] set spark version to 1.6.2 and throw original exception
27d7690 [mahmoudelgamal] set spark version to 1.6.1 and some modifications
750041c [mahmoudelgamal] Add readme file and modify pom file and travis.yml
ca88f94 [mahmoudelgamal] edit pom file and .travis.yml
3d65427 [mahmoudelgamal] update .travis.yml file
f19f98d [mahmoudelgamal] Make easy example with imports ands some modifications
74c14ca [mahmoudelgamal] Update the licenses
acc7afb [mahmoudelgamal] Change beam to version 0.2.0
e821614 [mahmoudelgamal] Removing hadoop-core and print stack trace to failure
5cb7c7b [mahmoudelgamal] Add some changes to doc and pom file
75fc4f7 [mahmoudelgamal] add interpreter to navigation.html and remove extra spaces and lines
9b1b385 [mahmoudelgamal] put beam in alphabetical order
9c1e25d [mahmoudelgamal] Adding changes like logging and conventions and license
2aa6d65 [mahmoudelgamal] changing class name to StaticRepl and adding some modifications
7cf25fb [mahmoudelgamal] Adding some tests
3c5038f [mahmoudelgamal] Modifying the documentation
5695077 [mahmoudelgamal] Modifying pom file and Making documentation
26fc59b [mahmoudelgamal] Refactoring of the code
3a2bd85 [mahmoudelgamal] Adding the beam to zeppelin 7
ab7ee2d [mahmoudelgamal] beam interpreter
85957ff [mfelgamal] Merge pull request #10 from apache/master
852c3d3 [mfelgamal] Merge pull request #9 from apache/master
a4bcc0d [mfelgamal] Merge pull request #8 from apache/master
858f1e1 [mfelgamal] Merge pull request #7 from apache/master
03a1e80 [mfelgamal] Merge pull request #4 from apache/master
2586651 [Fouad] Merge pull request #2 from apache/master
2016-09-26 20:11:42 -07:00
astroshim
cee58aa038 [ZEPPELIN-1279] Spark on Mesos Docker.
### What is this PR for?
This PR is for the documentation of running zeppelin on production environments especially spark on mesos via Docker.
Related issue is https://github.com/apache/zeppelin/pull/1227 and https://github.com/apache/zeppelin/pull/1318 and I got a lot of hints from https://github.com/sequenceiq/hadoop-docker.
Tested on ubuntu.

### What type of PR is it?
Documentation

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1279

### How should this be tested?
You can refer to https://github.com/apache/zeppelin/blob/master/docs/README.md#build-documentation.

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

Author: astroshim <hsshim@nflabs.com>
Author: AhyoungRyu <fbdkdud93@hanmail.net>
Author: HyungSung <hsshim@nflabs.com>

Closes #1389 from astroshim/ZEPPELIN-1279 and squashes the following commits:

974366a [HyungSung] Merge pull request #10 from AhyoungRyu/ZEPPELIN-1279-ahyoung
076fdba [AhyoungRyu] Change zeppelin_mesos_conf.png file
1cbe9d3 [astroshim] fix spark version and mesos
2b821b4 [astroshim] fix docs
159bafc [astroshim] fix anchor
d8c43b4 [astroshim] add navigation
c808350 [astroshim] add image file and doc
a3b0ded [astroshim] create dockerfile for mesos
2016-09-03 11:41:40 +09:00
astroshim
eccfe0076b [ZEPPELIN-1280][Spark on Yarn] Documents for running zeppelin on production environments using docker.
### What is this PR for?
This PR is for the documentation of running zeppelin on production environments especially spark on yarn.
Related issue is https://github.com/apache/zeppelin/pull/1227 and I got a lot of hints from https://github.com/sequenceiq/hadoop-docker.
Tested on ubuntu.

### What type of PR is it?
Documentation

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1280

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

Author: astroshim <hsshim@nflabs.com>
Author: AhyoungRyu <fbdkdud93@hanmail.net>
Author: HyungSung <hsshim@nflabs.com>

Closes #1318 from astroshim/ZEPPELIN-1280 and squashes the following commits:

60958cd [astroshim] small changes for doc
6c44b7b [astroshim] Merge branch 'master' into ZEPPELIN-1280
dad297c [astroshim] update version
4c8d72d [astroshim] merge with Ayoung's
8c62cf1 [astroshim] fixed felixcheung pointed out.
86ca513 [HyungSung] Merge pull request #9 from AhyoungRyu/ZEPPELIN-1280-ahyoung
cde5f8d [AhyoungRyu] Modify document description so that this docs can be searched
9e9390c [AhyoungRyu] Minor update for spark_cluster_mode.md
633c930 [astroshim] running zeppelin on yarn
2016-08-29 16:05:14 +09:00
AhyoungRyu
85d4df4f0c [ZEPPELIN-1219] Add searching feature to Zeppelin docs site
### What is this PR for?
As more and more document pages are added, it's really hard to find specific pages. So I added searching feature to Zeppelin documentation site([jekyll](https://jekyllrb.com/) based site) using [lunr.js](http://lunrjs.com/).

 - **How does it work?**

  I created [`search_data.json`](6e02423f54/docs/search_data.json) which is used for docs info template. `lunr.js` combines all of the text from all of the docs in `docs/` into `_site/search_data.json`. It looks like below.
![screen shot 2016-08-03 at 4 49 59 am](https://cloud.githubusercontent.com/assets/10060731/17342828/f2908be8-5935-11e6-8eee-b189677c0531.png)
All the info are comes from [Jekyll YAML front matter](https://jekyllrb.com/docs/frontmatter/) variables. (i.e. title, group, description.. that's why I rewrote all docs' title and description.)
[search.js](6e02423f54/docs/assets/themes/zeppelin/js/search.js) will do this job using this data!

### What type of PR is it?
Improvement & Feature

### Todos
* [x] - Keep consistency for all docs pages' `Title`
* [x] - Add some overview sentences to all docs pages' `Description` section (this will be used as the result preview)
* [x] - Add apache license header to all docs page (some pages are missing the license header currently)
* [x] - Add LICENSE for `lunr.min.js`

### What is the Jira issue?
[ZEPPELIN-1219](https://issues.apache.org/jira/browse/ZEPPELIN-1219)

### How should this be tested?
1. Apply this patch and build `ZEPPELIN_HOME/docs` dir -> please see [docs/README.md#build-documentation](https://github.com/apache/zeppelin/tree/master/docs#build-documentation)
2. Click `search` icon in navbar and go to `search.html` page
3. Type anything you want to search in the search bar (i.e. type `python`, `spark`, `dynamic` ... )

### Screenshots (if appropriate)
![screen shot 2016-08-03 at 4 42 28 pm](https://cloud.githubusercontent.com/assets/10060731/17357851/d092e2ca-5999-11e6-9917-a3d4113e6e43.png)

![search](https://cloud.githubusercontent.com/assets/10060731/17357828/b2486cd6-5999-11e6-873b-121fac033b03.gif)

### Questions:
* Does the licenses files need update? Yes, for `lunr.min.js`
* Is there breaking changes for older versions? no
* Does this needs documentation? no

Author: AhyoungRyu <fbdkdud93@hanmail.net>

Closes #1266 from AhyoungRyu/ZEPPELIN-1219 and squashes the following commits:

7ec8854 [AhyoungRyu] Modify 'no result' sentence
91b71a7 [AhyoungRyu] Remove Apache license header since JSON doesn't allow comment
34afd5d [AhyoungRyu] Add Apache license header to search_data.json
6784282 [AhyoungRyu] Minor search page UI update
0389d28 [AhyoungRyu] Make index.md not to be searched
9f1ba42 [AhyoungRyu] Disable enterkey press & change icon
bd4956a [AhyoungRyu] Add docs.js & search.js to exclude list in pom.xml
624b051 [AhyoungRyu] Add Apache license header to search.js
1381152 [AhyoungRyu] Fix search result skipping issue
6e775f5 [AhyoungRyu] Make pleasecontribute.md not to be searched
ee11136 [AhyoungRyu] Fix some typos
fa01299 [AhyoungRyu] Refine 'description' in some docs as @bzz suggested
da0cff9 [AhyoungRyu] Exclude lunr.min.js
36ba7f1 [AhyoungRyu] Add lunr.min.js license info
f6a05a6 [AhyoungRyu] Apply css style for the search results
68eb997 [AhyoungRyu] Attach 'Apache Zeppelin ZEPPELIN_VERSION Documentation: ' to title
d908c37 [AhyoungRyu] Add searching page
a951fa6 [AhyoungRyu] Add search icon to navbar
0688a79 [AhyoungRyu] Keep consistency all docs' front matter for the right search result
040f532 [AhyoungRyu] Add template for storing docs info based on jekyll front matter
0705bd6 [AhyoungRyu] Add js files: lunr.min.js & search.js
2016-08-10 12:39:22 +09:00
astroshim
b965503291 [ZEPPELIN-1198][Spark Standalone] Documents for running zeppelin on production environments.
### What is this PR for?
This PR is for documentation for running zeppelin on production environments.

### What type of PR is it?
Documentation

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1198

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

Author: astroshim <hsshim@nflabs.com>

Closes #1227 from astroshim/ZEPPELIN-1198/standalone and squashes the following commits:

53a32f2 [astroshim] add 'via Docker'
61a0e5e [astroshim] add apache license header
83fdef6 [astroshim] doc for spark standalone
2016-08-03 18:47:21 +09:00
Babu Prasad Elumalai
57c264da2d BigQuery Interpreter for Apazhe Zeppelin[ZEPPELIN-1153]
### What is this PR for?
Google BigQuery is a popular no-ops datawarehouse. This commit will enable Apache Zeppelin users to perform BI and Analytics on their datasets in BigQuery.

### What type of PR is it?
Feature

### Todos
* Make bigquery interpreter appear in the interpreters section in the UI
* Build SQL completion
* Authorization of non-gcp

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1153

### How should this be tested?
copy conf/zeppelin-site.xml.template to conf/zeppelin-site.xml
Add org.apache.zeppelin.bigquery.bigQueryInterpreter to property zeppelin.interpreters in zeppelin-site.xml
Start Zeppelin
Add BigQuery Interpreter with your project ID
Create new note with %bsql.sql and run your SQL against public datasets in bigquery.

### Screenshots (if appropriate)
![screenshot from 2016-07-12 14 27 30](https://cloud.githubusercontent.com/assets/4242273/16785302/31b104e2-4842-11e6-87c0-b79763dd85c0.png)

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

Author: Babu Prasad Elumalai <babupe@google.com>
Author: babupe <babupe@google.com>
Author: Alexander Bezzubov <bzz@apache.org>

Closes #1170 from babupe/babupe-bigquery and squashes the following commits:

ffed801 [Babu Prasad Elumalai] pushing BQ Exception to logs and Interpreter error output
d3c2316 [babupe] Merge pull request #2 from bzz/babupe-add-auth-docs
64525b8 [Alexander Bezzubov] Fix typos in docs
03a777f [Alexander Bezzubov] add docs for BigQuery auth outside of GCE
fcab6b7 [babupe] Merge pull request #1 from bzz/babupe-final
6a95333 [Alexander Bezzubov] Rename Apach2.0 license for google's code to adhere naming conventions
7d4f40b [Alexander Bezzubov] Add exidentaly removed licenses due to merge conflict
3be1912 [Babu Prasad Elumalai] New changes
41e076e [Babu Prasad Elumalai] Fixed formatting with readme file
97874a4 [Babu Prasad Elumalai] Pushing cropped screenshots
64affbb [babupe] Added cropped interpreter screenshot
4a1d29c [Babu Prasad Elumalai] Removed unnecessary dependencies in pom.xml
e520b7b [Babu Prasad Elumalai] Exclude constants.json file for rat plugin since its static config file
69cb724 [Babu Prasad Elumalai] Fixed license header and added manual unit test documentation
bbf26cc [Babu Prasad Elumalai] Added path and specific wording
4a3153f [Babu Prasad Elumalai] removed bad package from import
d0c8e01 [Babu Prasad Elumalai] Added technical description to bigquery.md
b6d181c [Babu Prasad Elumalai] Trying to add screenshot in README
569757f [Babu Prasad Elumalai] Incorporated feedback
764385c [Babu Prasad Elumalai] Interpreter modification, License, doc changes
d85abd2 [Babu Prasad Elumalai] Modified code and license
17f6d89 [Babu Prasad Elumalai] ZEPPELIN-1153 comments committed
8fa647b [Babu Prasad Elumalai] BigQuery Interpreter for Apazhe Zeppelin
22e3487 [babupe] Update LICENSE
e88b017 [babupe] Created a new license file
d90e10f [babupe] Removed BigQuery from notice
aa52553 [Babu Prasad Elumalai] Merge branch 'master' of https://github.com/apache/zeppelin
ae096d2 [Babu Prasad Elumalai] License changes
20962d2 [Babu Prasad Elumalai] Pushing license changes
3d5f8e7 [Babu Prasad Elumalai] Modified license header
5a2e674 [Babu Prasad Elumalai] Added license info for Jackson library and added BQ API source
4db74c1 [Babu Prasad Elumalai] Adding license stuff
31c373f [Babu Prasad Elumalai] Fixed formatting with readme file
287744c [Babu Prasad Elumalai] Merge branch 'babupe-bigquery' of https://github.com/babupe/zeppelin into babupe-bigquery
f318b20 [Babu Prasad Elumalai] Pushing cropped screenshots
17fd4e8 [babupe] Added cropped interpreter screenshot
f872aa0 [Babu Prasad Elumalai] Removed unnecessary dependencies in pom.xml
5983e36 [Babu Prasad Elumalai] Exclude constants.json file for rat plugin since its static config file
11e88dc [Babu Prasad Elumalai] Replaced license header with formatting
4b82abd [Babu Prasad Elumalai] Fixed license header and added manual unit test documentation
87f5efe [Babu Prasad Elumalai] Added path and specific wording
6132d78 [Babu Prasad Elumalai] Fixing License and skipping failing tests
2254a49 [Babu Prasad Elumalai] removed bad package from import
73e3f6d [Babu Prasad Elumalai] Added technical description to bigquery.md
089820b [Babu Prasad Elumalai] Trying to add screenshot in README
a00b48e [Babu Prasad Elumalai] Incorporated feedback
17846f1 [Babu Prasad Elumalai] Interpreter modification, License, doc changes
50c41fc [Babu Prasad Elumalai] Modified code and license
75d8ee6 [Babu Prasad Elumalai] ZEPPELIN-1153 comments committed
2a2bedc [Babu Prasad Elumalai] BigQuery Interpreter for Apazhe Zeppelin
2016-07-31 01:14:21 +09:00
AhyoungRyu
6bd4ede7e5 [DOC][MINOR] Add shell interpreter docs to _navigation.html
### What is this PR for?
After #1087 merged, a new docs `shell.md` was added. But in the docs website, still Shell interpreter link points to `pleasecontribute.html`. So I changed this link, applied TOC and added more descriptions.

### What type of PR is it?
Documentation

### Todos
* [x] - Change `pleasecontribute.html` -> `shell.html`
* [x] - Apply TOC(table of contents)
* [x] - Add more description to `shell.md`

### 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>

Closes #1138 from AhyoungRyu/improve/shell-docs and squashes the following commits:

69d567d [AhyoungRyu] Address @felixcheung feedback
fca76a6 [AhyoungRyu] Apply TOC to rest-credential.md
c8e988b [AhyoungRyu] Change docs group manual -> interpreter
a0bf1d5 [AhyoungRyu] Add shell.html to _navigation.html
2016-07-13 00:08:06 +09:00
AhyoungRyu
d87f2e5dfb [ZEPPELIN-1054] Improve "Credentials" UI
### What is this PR for?
Currently, users can add new their credential info for data source authentication in Zeppelin "Credentials" menu. Even though it was saved successfully, they can't see the whole list of credentials in Zeppelin UI.
This PR enables to `get` all credential list, `edit` and `remove` via UI.

*NOTE : Since this patch was implemented based on #1030 API, should be tested after #1030 merged.*

### What type of PR is it?
Improvement & Documentation

### Todos
* [x] - rename `interpreter_authorization.md` -> `datasource_authorization.md`
* [x] - remove `Interpreter Authorization` section (since we don't have this feature yet : [ZEPPELIN-945](https://issues.apache.org/jira/browse/ZEPPELIN-945))
* [x] - rebase after #1030 & #1064 merged
* [ ] - address reviews

### What is the Jira issue?
[ZEPPELIN-1054](https://issues.apache.org/jira/browse/ZEPPELIN-1054)

### How should this be tested?
1. Apply this patch and build `zeppelin-web` as described in [here](https://github.com/apache/zeppelin/tree/master/zeppelin-web#configured-environment).
2. Go to `Credentials` menu.
3. Add new credentials -> you can see the credential info in the credential list table.
4. You can edit & delete them. -> Compare with `conf/credentials.json`

### Screenshots (if appropriate)
- Before
<img width="952" alt="screen shot 2016-06-28 at 12 37 10 am" src="https://cloud.githubusercontent.com/assets/10060731/16407604/69b0c4d8-3cc9-11e6-8284-9abe2969cdc1.png">

- After
![add_credential](https://cloud.githubusercontent.com/assets/10060731/16576765/3671aa16-42cc-11e6-9d9f-dfe1f33f8d37.gif)
If there is no credential
<img width="957" alt="screen shot 2016-06-28 at 12 19 46 am" src="https://cloud.githubusercontent.com/assets/10060731/16407620/7838995e-3cc9-11e6-90ba-1bd0173a1b49.png">

- `datasource_authorization.md`
<img width="845" alt="screen shot 2016-06-28 at 7 58 24 pm" src="https://cloud.githubusercontent.com/assets/10060731/16439169/d4026034-3d6a-11e6-930f-86de12e5fc49.png">
<img width="851" alt="screen shot 2016-06-28 at 7 58 44 pm" src="https://cloud.githubusercontent.com/assets/10060731/16439170/d62f2842-3d6a-11e6-9d3f-ecc5cda29c77.png">
<img width="846" alt="screen shot 2016-06-28 at 8 00 20 pm" src="https://cloud.githubusercontent.com/assets/10060731/16439200/fed58390-3d6a-11e6-9aa2-8cff5a1b7b66.png">

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

Author: AhyoungRyu <fbdkdud93@hanmail.net>

Closes #1100 from AhyoungRyu/ZEPPELIN-1054 and squashes the following commits:

7c38c90 [AhyoungRyu] Fix checkstyle error with jscs rule
ab9814c [AhyoungRyu] Remove cancelCredentialInfoUpdate()
899bb15 [AhyoungRyu] Fix a bug reported by @Leemoonsoo
57cb280 [AhyoungRyu] Make focusing to text inputbox after update cancel
cea8c93 [AhyoungRyu] Fix typos in datasource_authorization.md
cc72ae8 [AhyoungRyu] update xeditable license version
c100a64 [AhyoungRyu] Delete interpreter_authorization.md
304e684 [AhyoungRyu] Add datasource_authorization.md docs
5768604 [AhyoungRyu] Add datasource_authorization.md to index & navi menu
64bf6fe [AhyoungRyu] Update angular-xeditable version
573c3d1 [AhyoungRyu] Enable credential info to get list, edit and remove via UI
2016-07-11 18:18:42 +09:00
AhyoungRyu
3ad809f6b5 [DOC][ZEPPELIN-732] Helium Application
### What is this PR for?
After #836 and #1031 merged into master branch, I also applied TOC(table of contents) to newly added `writingzeppelinapplication.md`. And also added this docs link under `index.md`'s docs list.

### What type of PR is it?
Documentation

### Todos
* [x] - Apply TOC(table of contents) to `writingzeppelinapplication.md` and add this docs to `index.md`

### 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>

Closes #1133 from AhyoungRyu/docs/ZEPPELIN-732 and squashes the following commits:

9fc746f [AhyoungRyu] Fix a grammar error
e144e0d [AhyoungRyu] Apply toc to writingzeppelinapplication.md
7dc0b95 [AhyoungRyu] Add writingzeppelinapplication.md to index.md
2016-07-07 07:39:51 -07:00
Lee moon soo
9463fb8547 [ZEPPELIN-732] Helium Application
### What is this PR for?
This PR implements pluggable Application Framework.

Here's summary of the change.

**Applicaiton**

Base class of user application. User application should extends `org.apache.zeppelin.helium.Application`.

It looks like

```java
public abstract class Application {

  /**
   * When application loaded
   * params context Application context
   */
  public Application(ApplicationContext context) {
    this.context = context;
  }

  /**
   * This method can be invoked multiple times before unload(),
   * Invoked just after application loaded or when paragraph output is updated
   * param args Required resources from paragraph
   */
  public abstract void run(ResourceSet args)
      throws ApplicationException, IOException;

  /**
   * this method is invoked just before application is removed
   */
  public abstract void unload() throws ApplicationException;
}
```

**HeliumPackage**

`org.apache.zeppelin.helium.HeliumPackage` keeps information of application package.
Package informations includes

```
{
  type : "APPLICATION",                            // type of this package
  name : "zeppelin.app",                           // application name. [organizationName].[appName] format
  description : "App description",                 // description
  artifact : "groupId:artifactId:version",         // artifact name for maven repository
  className : "org.apache.zeppelin.helium.MyApp",  // application class that extends org.apache.zeppelin.helium.Application
  resources : [[]],                                // required resource
  icon : '<i class="fa fa-clock-o"></i>'           // icon
}
```

`resources` field defines what kind of data this application requires, from ResourcePool.
"resourceName" and ":className" works in the array.
inner array combines each resourceName, :className with 'AND'
outer array combines inner array with 'OR'.

For example,

```
resources : [
    [ "name1", ":java.util.Date"],
    [ "name1", "name2"]
]
```

Then Zeppelin searches ResourcePool, first for resource name "name1" and resource type "java.util.Date" from resourcePool then resource name "name1" and "name2".

Once resources are found, they'll be passed to `Application.run()` method

**Package Registry**

`org.apache.zeppelin.helium.HeliumRegistry` provides list of available HeliumPackages.
Currently `HeliumLocalRegistry` is implemented and it provides list by reading HeliumPackage json files under ./helium directory in the file system. Later there will be some class like `HeliumOnlineRegistry'  which reads available package from a community managed online central registry.

**Development mode**
`org.apache.zeppelin.interpreter.dev.*` package is provided for development support.
Developer can run their app inside of their IDE, that connects to running Zeppelin instance and display output.

**Application Suggestion**
Once paragraph becomes FINISHED status after run, Zeppelin searches resources from ResourcesPool that belongs to current paragraph. And compare all HeliumPackage if these resources satisfies their requirements ('resources' field). If there're available app, Helium button will be displayed.

![image](https://cloud.githubusercontent.com/assets/1540981/14518452/d8f85d5a-020f-11e6-8313-00b37eb4f077.png)

User can see and select available application for this paragraph.
![image](https://cloud.githubusercontent.com/assets/1540981/14518465/ee607fce-020f-11e6-8ad4-fe98723c7c94.png)

**Application selection**
After application is loaded, application icon will be displayed. So user can select and switch between apps.

![image](https://cloud.githubusercontent.com/assets/1540981/14518547/6f3fd766-0210-11e6-9a08-0dc2ba6d15e3.png)

if built-in visualization is available, application icon will be displayed next to built-in visualizations
![image](https://cloud.githubusercontent.com/assets/1540981/14518500/27505746-0210-11e6-9738-fb514376b906.png)

**Experimental**

While this is new feature and API and specification may change, i'd suggest mark this feature as a experimental for a while.

### What type of PR is it?
Feature

### Todos
* [x] - Helium Application framework
* [x] - App launcher
* [x] - App display and selectors
* [x] - Package registry
* [x] - Development mode
* [x] - Make CI green
* [x] - Improve comment in source codes
* [x] - Documentation
* [x] - Examples
* [x] - Mark experimental
* [ ] - Review

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-732

### How should this be tested?
Will be updated with examples

### Screenshots (if appropriate)
![helium](https://cloud.githubusercontent.com/assets/1540981/14518685/49c2a788-0211-11e6-81c8-6cae48bf8a48.gif)

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

Author: Lee moon soo <moon@apache.org>

Closes #836 from Leemoonsoo/ZEPPELIN-732-up and squashes the following commits:

3577777 [Lee moon soo] Address Ahyoung's comment
0665380 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
83b529c [Lee moon soo] Update unittest
e1b0e79 [Lee moon soo] Update unittest
6785441 [Lee moon soo] interpreter order changed
3249ddb [Lee moon soo] Remove incubating
4030fff [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
4e98cfe [Lee moon soo] Update DependencyResolver
c714a19 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
d558591 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
0467077 [Lee moon soo] update test
d43ab57 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
f999f71 [Lee moon soo] Update getParagraphXpath
eaa68c6 [Lee moon soo] print processes
5b5f6c8 [Lee moon soo] trigger ci
1bdea70 [Lee moon soo] Print error message in the test
562f083 [Lee moon soo] CLose interpreter after test
385dab3 [Lee moon soo] Fix xpath in the SparkParagraphIt test
ac963ff [Lee moon soo] Remove unnecessary stacktrace and provide more meaningful message
644add4 [Lee moon soo] Takecare csv/tsv download button position after merge
6a5a19e [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
5bef173 [Lee moon soo] Update NoteTest
e54d633 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
88dbc71 [Lee moon soo] change style
6f1343f [Lee moon soo] add license header
4571781 [Lee moon soo] double quote the keys in json
710487b [Lee moon soo] fix syntax error
6c5019e [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
3619afd [Lee moon soo] Exclude test data file from rat check
b6811a6 [Lee moon soo] set SPARK_HOME to find bin/interpreter.sh
9110897 [Lee moon soo] arrange buttons
14efb6c [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
76de11c [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
bff2217 [Lee moon soo] Fix SparkParagraphIT
e60cd8e [Lee moon soo] Add docs
7f174e3 [Lee moon soo] Add more comments
0671dfd [Lee moon soo] Fix compile error
bfcdf34 [Lee moon soo] Fix style
1dc4409 [Lee moon soo] Remove incubating from example pom.xml
e36d2fb [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
e0a2046 [Lee moon soo] Add annotation to api
93fa766 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
99dd0b0 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
e89177e [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
f782fb0 [Lee moon soo] clean pom.xml file
b974eb1 [Lee moon soo] Add horizontal bar visualization example
5225551 [Lee moon soo] let instead of var
b068065 [Lee moon soo] Replace . to _
b6e4141 [Lee moon soo] helper for printing javascript and inject $z
8186daf [Lee moon soo] Update Application Status from RemoteInterpreterProcess event
f07ada1 [Lee moon soo] Construct classpath correctly
7451479 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
ab1de03 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
51fc113 [Lee moon soo] Include examples in CI build
83eba98 [Lee moon soo] UnloadApp on interpreter restart
3b891de [Lee moon soo] Provide resource pool for testing
0730ece [Lee moon soo] Add license into package json
620f79f [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
01a1646 [Lee moon soo] Add example
1f1a3b5 [Lee moon soo] Fix test
864bea1 [Lee moon soo] Merge branch 'master' into ZEPPELIN-732-up
c30f53c [Lee moon soo] null check
03be3a1 [Lee moon soo] Pass required resource to run() method
fade3c1 [Lee moon soo] Handle output update in angular mode
0e4d81c [Lee moon soo] Remove unnecessary log
ec2fdea [Lee moon soo] Match classname correctly
b4ff52f [Lee moon soo] Put last value of scala repl into resource pool
f2ab95d [Lee moon soo] Prevent unnecessary output update
71f814d [Lee moon soo] Better way to find resource dir for InterpreterOutput watcher
024d7fc [Lee moon soo] Dev mode
98f3872 [Lee moon soo] Managed interpreter process and Running interpreter process
b47ca74 [Lee moon soo] Fix tests
5503f9c [Lee moon soo] Improved
be3a1fa [Lee moon soo] Add license header
412480a [Lee moon soo] Fix style
16f6887 [Lee moon soo] Angular object update for helium app
6223cd4 [Lee moon soo] App output display
bd0f467 [Lee moon soo] Style
94b490d [Lee moon soo] initial rest api impl
134bbe6 [Lee moon soo] Change HeliumRegistry constructor argument type
7aeb64a [Lee moon soo] Unload app on paragraph / note removal as well as interpreter unbind
4eaeea7 [Lee moon soo] sync -> async api
9f5c493 [Lee moon soo] Application output
b239f1b [Lee moon soo] Helium application factory
b891b98 [Lee moon soo] HeliumRegistry
568ee54 [Lee moon soo] ApplicationLoader
7424af2 [Lee moon soo] Remove resource on note / paragraph removal
2016-07-04 08:35:07 -07:00
astroshim
c348161df0 [ZEPPELIN-1023] Add more credential apis.
### What is this PR for?
This PR is for supporting various Credential APIs for users.

### What type of PR is it?
Improvement

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1023

### How should this be tested?
  - to create credential information.
```
curl -XPUT -H "Content-Type: application/json" "http://localhost:8080/api/credential" -d '{"entity" : "e1", "username" : "user1", "password" : "testpass"}'
```

  - to get credential information.
```
curl -XGET -H "Content-Type: application/json" "http://localhost:8080/api/credential"
```

  - to remove credential entity information.
```
curl -XDELETE -H "Content-Type: application/json" "http://localhost:8080/api/credential/e1"
```

  - to remove all credential information.
```
curl -XDELETE -H "Content-Type: application/json" "http://localhost:8080/api/credential"
```

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

Author: astroshim <hsshim@nflabs.com>
Author: AhyoungRyu <fbdkdud93@hanmail.net>
Author: HyungSung <hsshim@nflabs.com>

Closes #1030 from astroshim/ZEPPELIN-1023 and squashes the following commits:

1b94ae1 [astroshim] Merge branch 'master' into ZEPPELIN-1023
a580476 [astroshim] erase comment code
0609931 [astroshim] update credentialsMap
0f503fd [astroshim] to fix ci
d0c2bac [astroshim] changed syncronizedmap to concurrenthashmap
7b2a7c5 [HyungSung] Merge pull request #7 from AhyoungRyu/ZEPPELIN-1023-docs
80d8a30 [AhyoungRyu] Add rest-credential.md to index.md & dropdown menu
f546532 [astroshim] add rest-credential document
26433f2 [astroshim] change using syncronizedMap.
9b2c1c9 [astroshim] add checking null and blank values in the putCredentials method.
0371701 [astroshim] add more credential apis.
2016-06-30 17:19:20 +09:00
AhyoungRyu
09f0ebda9b [DOC] Update doc image in Explore Zeppelin UI page
### What is this PR for?
There were several changes in Zeppelin UI after #860, #1006, #1013, #1081 so update screenshot of documents accordingly.

### What type of PR is it?
Documentation

### 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: Mina Lee <mina.hyeji.lee@gmail.com>
Author: Mina Lee <minalee@apache.org>

Closes #1089 from minahlee/doc/ZEPPELIN-1002 and squashes the following commits:

b237caf [Mina Lee] Merge pull request #1 from AhyoungRyu/doc/ZEPPELIN-1002/again
b18544a [AhyoungRyu] Update screenshot images in interpreters.md
add97fb [AhyoungRyu] Update screenshot images in notebookashomepage.md
cdaeb30 [AhyoungRyu] Update screenshot images in index.md
b21444a [AhyoungRyu] Update screenshot images in notebook_authorization.md
b23f7e4 [AhyoungRyu] Update screenshot images in dependencymanagement.md
e7a85f3 [AhyoungRyu] Update screenshot images in lens.md
cecd161 [AhyoungRyu] Update screenshot images in ignite.md
9f8cb71 [AhyoungRyu] Update screenshot images in elasticsearch.md
0c9a688 [AhyoungRyu] Hide dynamicinterpreterloading.md temporarily
a17f31f [Mina Lee] Update doc image in Explore Zeppelin UI page
2016-06-26 22:32:14 -07:00
AhyoungRyu
5975125f18 [ZEPPELIN-1018] Apply auto "Table of Contents" generator to Zeppelin docs website
### What is this PR for?
I added auto TOC(Table of Contents) generator for Zeppelin documentation website. TOC can help people looking through whole contents at a glance and finding what they want quickly.

I just added `<div id="toc"></div>`  to the each documentation header. [`toc`](https://github.com/apache/zeppelin/compare/master...AhyoungRyu:ZEPPELIN-1018?expand=1#diff-85af09fb498a5667ea455391533f945dR3)  recognize `<h2>` & `<h3>` as a title in the docs  and it automatically generate TOC. So I set a rule for this work. (I'll write this rule on `docs/CONTRIBUTING.md` or [docs/howtocontributewebsite](https://zeppelin.apache.org/docs/0.6.0-SNAPSHOT/development/howtocontributewebsite.html)).

```
# Level-1 Heading  <- Use only for the main title of the page
## Level-2 Heading <- Start with this one
### Level-3 heading <- Only use this one for child of Level-2

toc only recognize Level-2 & Level-3
```

Please see the below attached screenshot image.

### What type of PR is it?
Improvement & Documentation

### Todos
* [x] - Add TOC generator
* [x] - Apply TOC(`<div id="toc"></div>`) to every documentation and reorganize each headers(apply the above rule)
* [x] - Fix some broken code block in several docs
* [x] - Apply TOC to `r.md` (Currently R docs has some duplicated info since [this one](d5e87fb8ba) and [this one](7d6cc7e991) )
* [x] - Apply TOC to `install.md` after #1010 merged
* [x] - Apply TOC to `interpreterinstallation.md` after #1042 merged

### What is the Jira issue?
[ZEPPELIN-1018](https://issues.apache.org/jira/browse/ZEPPELIN-1018)

### How should this be tested?
1. Apply this patch and build `docs/` with [this guide](https://github.com/apache/zeppelin/tree/master/docs#build-documentation)
2.  Visit some docs page. Then you can see TOC in the header of page.

### Screenshots (if appropriate)
 - Automatically generated TOC in Spark interpreter docs page
<img width="831" alt="screen shot 2016-06-16 at 9 37 18 pm" src="https://cloud.githubusercontent.com/assets/10060731/16140902/945b9c7a-340a-11e6-91f3-b6174738bed0.png">

### Questions:
* Does the licenses files need update?
No. Actually I used [jekyll-table-of-contents#copyright](https://github.com/ghiculescu/jekyll-table-of-contents#copyright). But I don't need to add a license for this :)
* Is there breaking changes for older versions? No
* Does this needs documentation? Maybe

Author: AhyoungRyu <fbdkdud93@hanmail.net>

Closes #1031 from AhyoungRyu/ZEPPELIN-1018 and squashes the following commits:

e66397b [AhyoungRyu] Apply TOC to interpreterinstallation.md
009579b [AhyoungRyu] Add more info to 'What is the next?' in install.md
04cf501 [AhyoungRyu] Revert 'where to start' section
b7cbe5f [AhyoungRyu] Fix typo
cf0911c [AhyoungRyu] Rename license file
388f35a [AhyoungRyu] Add jekyll-table-of-contents license info
6394c70 [AhyoungRyu] Fix image path in python.md
d00e4b1 [AhyoungRyu] Move interpreter/screenshot/ -> asset/../img/docs-img/
3ffb383 [AhyoungRyu] Remove duplicated info in r.md & apply toc
a03ca99 [AhyoungRyu] Exclude toc.js from pom.xml
3fae7df [AhyoungRyu] Apply auto generated toc to install.md
d114a9d [AhyoungRyu] Address @felixcheung feedback
6a788fe [AhyoungRyu] Resize TOC tab indent
6760c00 [AhyoungRyu] Apply auto TOC to all of docs under docs/storage/
fbde57f [AhyoungRyu] Apply auto TOC to all of docs under docs/quickstart/
db76eb6 [AhyoungRyu] Apply auto TOC to all of docs under docs/install/
f35db47 [AhyoungRyu] Apply auto TOC to all of docs under docs/displaysystem/
b05365f [AhyoungRyu] Apply auto TOC to all of docs under docs/rest-api/
163691c [AhyoungRyu] Apply auto TOC to all of docs under docs/manual/
bef398e [AhyoungRyu] Apply auto TOC to all of docs under docs/development/
9c5f76b [AhyoungRyu] Apply auto TOC to all of docs under docs/interpreter/
587d4ba [AhyoungRyu] Apply auto TOC to all of docs under docs/security/
1f10b97 [AhyoungRyu] Change toc configuration
78dca9e [AhyoungRyu] Add toc.js for auto generating TOC
2016-06-25 22:57:44 -07:00
Lee moon soo
4efb39f450 [ZEPPELIN-1046] bin/install-interpreter.sh for netinst package
### What is this PR for?
Implementation of bin/install-interpreter.sh for netinst package which suggested in the [discussion](http://apache-zeppelin-users-incubating-mailing-list.75479.x6.nabble.com/Ask-opinion-regarding-0-6-0-release-package-tp3298p3314.html).

Some usages will be

```
# download all interpreters provided by Apache Zeppelin project
bin/install-interpreter.sh --all

# download an interpreter with name (for example markdown interpreter)
bin/install-interpreter.sh --name md

# download an (3rd party) interpreter with specific maven artifact name
bin/install-interpreter.sh --name md -t org.apache.zeppelin:zeppelin-markdown:0.6.0-SNAPSHOT
```

If it looks fine, i'll continue the work (refactor code, and add test)

### What type of PR is it?
Feature

### Todos
* [x] - working implementation
* [x] - refactor
* [x] - add test

### What is the Jira issue?
* Open an issue on Jira https://issues.apache.org/jira/browse/ZEPPELIN/
* Put link here, and add [ZEPPELIN-*Jira number*] in PR title, eg. [ZEPPELIN-533]

### How should this be tested?
Outline the steps to test the PR here.

### Screenshots (if appropriate)

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

Author: Lee moon soo <moon@apache.org>
Author: AhyoungRyu <fbdkdud93@hanmail.net>

Closes #1042 from Leemoonsoo/netinst and squashes the following commits:

f81d16e [Lee moon soo] address mina's comment
049bc89 [Lee moon soo] Update docs
7307c67 [Lee moon soo] Merge remote-tracking branch 'AhyoungRyu/netinst-docs' into netinst
7e749ad [Lee moon soo] Address mina's comment
0eedd2a [AhyoungRyu] Address @minahlee feedback
13f2d04 [Lee moon soo] generate netinst package
03c664e [AhyoungRyu] Add a new line
5d0a971 [AhyoungRyu] Revert install.md to latest version
13899fb [AhyoungRyu] Reorganize interpreter installation docs
4c1f029 [Lee moon soo] Proxy support
9079580 [Lee moon soo] fix artifact name
1077296 [Lee moon soo] update test
aebca17 [Lee moon soo] Add docs
d547551 [Lee moon soo] Remove test entries
6ee06b8 [Lee moon soo] Make DependencyResolver in zeppelin-interpreter module not aware of ZEPPELIN_HOME
7b1b36a [Lee moon soo] update usage
49f0568 [Lee moon soo] Add conf/interpreter-list
1b558fd [Lee moon soo] update some text
ec7d152 [Lee moon soo] add tip
2c81a3f [Lee moon soo] update
78a7c52 [Lee moon soo] Refactor and add test
47f5706 [Lee moon soo] Install multiple interpreters at once
38e2556 [Lee moon soo] Initial implementation of install-interpreter.sh
2016-06-23 20:58:10 -07:00
AhyoungRyu
5ddc1ef87e [ZEPPELIN-996] Improve first page and dropdown menu in documentation site
### What is this PR for?
Current Zeppelin documentation site is little bit hard to find a way for Zeppelin beginners. It will not easy  to improve this at a time, but I did the below as a start of this work.

1. Restructured dropdown menu and added each category names
2. Added a overview list(with short description) to first page of website (index.md) so that people can look through the overall contents in Zeppelin website at a glance. (as [Apache Spark](http://spark.apache.org/docs/latest/#where-to-go-from-here) and [Apache Mesos](http://mesos.apache.org/documentation/latest/) does)

Please see the attached screenshot images :)

### What type of PR is it?
Improvement & Documentation

### Todos
* [x] - Change outdated screenshot images
* [x] - Combine `text.md`, `table.md` and `html.md` to `basicdisplaysystem.md`
* [x] - Fix dead link in `virtual_machine.md`
* [x] - Improve dropdown menu and reorder
* [x] - Improve first page(`index.md`)
* [x] - Combine with #995 after it is merged into master

### What is the Jira issue?
[ZEPPELIN-996](https://issues.apache.org/jira/browse/ZEPPELIN-996)

### How should this be tested?
1. Apply this patch and [build the docs website with jekyll](https://github.com/apache/zeppelin/tree/master/docs#build-documentation)
2. Check the first page(index.html) and dropdown menu

### Screenshots (if appropriate)
 - Dropdown menu
![dropdown](https://cloud.githubusercontent.com/assets/10060731/16061421/b44f8034-3241-11e6-88fd-43aa5031b453.gif)

 - First page
<img width="717" alt="screen shot 2016-06-14 at 1 28 58 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058631/3ab2cb6c-3234-11e6-95f4-180290df3d02.png">
<img width="694" alt="screen shot 2016-06-14 at 1 29 11 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058639/43d68918-3234-11e6-921c-28436bfca33d.png">
<img width="649" alt="screen shot 2016-06-14 at 1 29 39 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058650/501ec6d6-3234-11e6-9292-53ae84acc18a.png">
<img width="684" alt="screen shot 2016-06-14 at 1 29 57 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058643/4637c8f2-3234-11e6-9b12-a233906f4c8b.png">
<img width="650" alt="screen shot 2016-06-14 at 1 30 12 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058655/56c5af22-3234-11e6-8d29-9b7937728948.png">
<img width="636" alt="screen shot 2016-06-14 at 1 30 22 pm" src="https://cloud.githubusercontent.com/assets/10060731/16058656/58d1187e-3234-11e6-9171-ab7390b4a526.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>

Closes #1004 from AhyoungRyu/ZEPPELIN-996 and squashes the following commits:

1dbf805 [AhyoungRyu] Add 'Apache' before 'Zeppelin'
6153a50 [AhyoungRyu] Remove useless dash
61a5ad6 [AhyoungRyu] Revert to Text -> HTML -> Table in navbar
1886f8c [AhyoungRyu] Fix indentation
af70939 [AhyoungRyu] Apply scrollable menu to 'more' tab & fix UI issue
2654d92 [AhyoungRyu] Combine overflow-x & overflow-y to overflow
904acd6 [AhyoungRyu] Resize dropdown menu maxheight
6e62e31 [AhyoungRyu] Change dynamicform image
230c670 [AhyoungRyu] Revert to Text -> HTML -> Table
ad53799 [AhyoungRyu] Adjust image size
c75c3a0 [AhyoungRyu] Add HDFS logo to available interpreter image
6a2f40b [AhyoungRyu] Address @bzz feedback
649a14d [AhyoungRyu] Address @coureadoug feedback
67cff3a [AhyoungRyu] Add all documentation list with short description to first page
ce4b122 [AhyoungRyu] Limit image width
6ff4db6 [AhyoungRyu] Improve dropdown menu and reorder menus
61da430 [AhyoungRyu] Fix dead link in virtual_machine.md
6251558 [AhyoungRyu] Change 'Zeppelin Configuration' section placement so that it can be separated
4eecab8 [AhyoungRyu] Combine text.md, html.md, table.md
4d021af [AhyoungRyu] Delete outdated images and add new images
2016-06-14 23:47:46 -07:00