GitHub user minahlee opened a pull request:
https://github.com/apache/incubator-zeppelin/pull/673
[WIP][Zeppelin-630] Introduce new way of dependency loading to intepreter
### What is this PR for?
With this PR user will be able to set external libraries to be loaded to
specific interpreter.
Note that the scope of this PR is downloading libraries to local
repository, not distributing them to other nodes. Only spark interpreter
distributes loaded dependencies to worker nodes at the moment.
Here is a brief explanation how the code works.
1. get rest api request for interpreter dependency setting from front-end
2. download the libraries in `ZEPPELIN_HOME/local-repo` and copy them to
`ZEPPELIN_HOME/local-repo/{interpreterId}`
3. `ZEPPELIN_HOME/local-repo/{interpreterId}/*.jar` are adde to interpreter
classpath when interpreter process starts
### What type of PR is it?
Improvement
### Todos
* [ ] Add tests
* [ ] Update docs
### Is there a relevant Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-630
### How should this be tested?
Outline the steps to test the PR here.
### Screenshots (if appropriate)
* Toggle repository list
<img width="1146" alt="screen shot 2016-01-25 at 12 24 44 pm"
src="https://cloud.githubusercontent.com/assets/8503346/12563475/52f060ac-c35f-11e5-8621-d8eb97b4d6a1.png">
* Add new repository
<img width="1146" alt="screen shot 2016-01-25 at 12 25 23 pm"
src="https://cloud.githubusercontent.com/assets/8503346/12563472/52eb545e-c35f-11e5-9050-a5306d2765f1.png">
* Show repository info
<img width="1146" alt="screen shot 2016-01-25 at 12 25 28 pm"
src="https://cloud.githubusercontent.com/assets/8503346/12563473/52ebab84-c35f-11e5-9acb-3a356c855dc7.png">
* Interpreter dependency
<img width="1146" alt="screen shot 2016-01-25 at 12 27 27 pm"
src="https://cloud.githubusercontent.com/assets/8503346/12563471/52eadd9e-c35f-11e5-8e1a-f583ea8800aa.png">
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions?
- For the users who use rest api for creat/update interpreter setting,
`dependencies` object should be added to request payload.
- %dep interpreter is deprecated. The functionality is still there, but
recommend to load third party dependency via interpreter menu.
* Does this needs documentation? Yes
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/minahlee/incubator-zeppelin ZEPPELIN-630
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-zeppelin/pull/673.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #673
----
commit 848d931916429646cc34f2565fda1d2c02a7deb7
Author: Mina Lee <[email protected]>
Date: 2016-01-20T02:02:11Z
Make external libraries to be added to interpreter process classpath
commit 2cd715c4870451a67c290be5122fb6d038873e3c
Author: Mina Lee <[email protected]>
Date: 2016-01-20T02:11:21Z
Add env variable/property to configuration template files
commit 37005c5a80e1c84af498955aac151143adca8ca7
Author: Mina Lee <[email protected]>
Date: 2016-01-20T05:27:39Z
Remove unused methods and add deprecated message for dep interpreter
commit 1b6a8186e04150a5d65761123a0ec6572348609f
Author: Mina Lee <[email protected]>
Date: 2016-01-20T06:33:10Z
Remove test with unused ZeppelinContext load() method
commit d5c931b91976d1a0f7b8bf8714f0a0a35a3d69b3
Author: Mina Lee <[email protected]>
Date: 2016-01-21T05:17:17Z
Fix test after rebase
commit fe9cb92f574b7f88148bbb9bc011534be17ae554
Author: Mina Lee <[email protected]>
Date: 2016-01-23T21:01:17Z
Enable adding interpreter dependency via GUI
commit bae0c02f11a9b4d702b21acda08cb20bfd00daa0
Author: Mina Lee <[email protected]>
Date: 2016-01-25T20:00:08Z
* Fix DependencyResolver addRepo/delRepo method
* Manage repository information in `conf/interpreter.json`
* Front-end modification to manage repository list
* Add RestApi for adding/deleting repository
* Fix tests
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---