Skip to content

Pluggable resource pools#816

Closed
fireboy1919 wants to merge 28 commits intoapache:masterfrom
fireboy1919:pool_pluggable
Closed

Pluggable resource pools#816
fireboy1919 wants to merge 28 commits intoapache:masterfrom
fireboy1919:pool_pluggable

Conversation

@fireboy1919
Copy link
Copy Markdown
Contributor

What is this PR for?

This is a step towards creating a REST endpoint from resource pools https://issues.apache.org/jira/browse/ZEPPELIN-699

It allows resources to be saved to disk so that they can be reloaded.

What type of PR is it?

Improvement

Todos

  • - Add ability to use different kinds of resource pools, and show a second type.

What is the Jira issue?

Partially implements this: https://issues.apache.org/jira/browse/ZEPPELIN-699

Note, that this pull request is dependent upon this one:
#782

How should this be tested?

  1. Edit an interpreter
  2. Add a new property to the interpreter - the "ResourcePoolClass" - and assign it to "org.apache.zeppelin.resource.VFSResourcePool"
  3. Run the interpreter

You should see new resource files created in notebook/zeppelin_resources

Screenshots (if appropriate)

Questions:

  • Does the licenses files need update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? No.

fireboy1919 and others added 16 commits March 15, 2016 19:41
### What is this PR for?
Somehow final squashed merge commit for apache#815 - fb8e77b does not include 2 changes out of 3 changes:
 - eeb411e
 - 9baf57b

This PR re-applies Leemoonsoo work on master and should fix the CI

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

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

Author: Alexander Bezzubov <[email protected]>

Closes apache#820 from bzz/re-apply-SparkR-implementation-conflict-815 and squashes the following commits:

60267b4 [Alexander Bezzubov] Change interpreter listing order, re-apply eeb411e
7ec1e2c [Alexander Bezzubov] Change node and npm version, re-apply 9baf57b
### What is this PR for?
2 minor non-code style improvements.
HT anthonycorbacho

### What type of PR is it?
Improvement

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

Author: Alexander Bezzubov <[email protected]>

Closes apache#821 from bzz/fix-minor-style-issues and squashes the following commits:

04e214c [Alexander Bezzubov] Fix minor non-code style issues
@fireboy1919 fireboy1919 mentioned this pull request Apr 6, 2016
1 task
fireboy1919 and others added 6 commits April 6, 2016 14:37
### What is this PR for?
Fix Spark download on CI

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

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

### How should this be tested?
CI must be green

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

Author: Alexander Bezzubov <[email protected]>

Closes apache#818 from bzz/ZEPPELIN-783-stable-ci-part-2 and squashes the following commits:

b4d66b3 [Alexander Bezzubov] ZEPPELIN-783: advanced Spark download failover procedure
### What is this PR for?
Shiro authentication dialog does not appear
This is with reference with shiro authentication dialog not showing up on the mail thread.

https://mail-archives.apache.org/mod_mbox/incubator-zeppelin-users/201603.mbox/%3CCALf24sbx9tY-hSXR7zhGXuAirWujn20Sc9CoZnLBmeBt_NbhDwmail.gmail.com%3E

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

### Todos
* [x] - add ServletContextHandler filter for IniShiroFilter

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

### How should this be tested?
Run zeppelin-server from `zeppelin-distribution/target/zeppelin-0.6.0-incubating-SNAPSHOT/zeppelin-0.6.0-incubating-SNAPSHOT/`
It should honour the `shiro.ini` located inside `zeppelin-distribution/target/zeppelin-0.6.0-incubating-SNAPSHOT/zeppelin-0.6.0-incubating-SNAPSHOT/conf/`

### Screenshots (if appropriate)
N/A

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

Author: Prabhjyot Singh <[email protected]>

Closes apache#824 from prabhjyotsingh/ZEPPELIN-797 and squashes the following commits:

24a8e54 [Prabhjyot Singh] get shiro path from conf.getShiroPath()
8d0704a [Prabhjyot Singh] remove IniShiroFilter as it is depricated
a82a9c8 [Prabhjyot Singh] ZEPPELIN-797: Shiro authentication dialog does not appear
### What is this PR for?
This PR is to improve the result output when having interpreter streaming running.
If you navigate outside the notebook, then come back inside, the streaming output will append below previous result.

### What type of PR is it?
Improvement

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

### How should this be tested?
You can run this
```
(1 to 40).foreach{ i=>
    Thread.sleep(1000)
    println("Hello " + i)
}
```
Then navigate to home, then back to the notebook.
You should see the newly streamed result only.

### Screenshots
Before:
![before](https://cloud.githubusercontent.com/assets/710411/14101710/2b3608f6-f5d1-11e5-9501-e9ba7b0bc16c.gif)

After:
![after](https://cloud.githubusercontent.com/assets/710411/14101714/31aaab06-f5d1-11e5-8fc1-645a3324a65e.gif)

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

Author: Damien CORNEAU <[email protected]>

Closes apache#804 from corneadoug/improve/flushStreamingOutput and squashes the following commits:

76a66a4 [Damien CORNEAU] Flush on first text append event
### What is this PR for?
Generate unique temporary files for Python and R Spark interpreters using java.io.File.createTempFile.
Remove the temporary file for the Python interpreter when the interpreter is closed (is already being done in the R interpreter).
Without this fix it is not possible to run more than one Zeppelin interpreter on the same server due to file owner conflicts between instances.

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

### Todos

### What is the Jira issue?
No Jira opened for this

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

Author: Johan Muedsam <[email protected]>

Closes apache#823 from mudsam/master and squashes the following commits:

0c018b4 [Johan Muedsam] Generate unique temporary files for Python and R Spark Interpreters. Add cleanup of Python temporary file on close().
@fireboy1919
Copy link
Copy Markdown
Contributor Author

@felixcheung, @Leemoonsoo:
This pull request, like the one it is based upon, is ready to be reviewed and merged.

doanduyhai and others added 4 commits April 12, 2016 13:19
… if exists

### What is this PR for?
Replace dynamic form with angular object from registry if exists

I updated the `Paragraph.jobRun()` method to look for existing variable from the Angular Object Registry first before displaying the dynamic form.

We look for Angular object having same name:

* first at paragraph scope (note id + paragraph id)
* then at note scope (note id only)

I did not look at **global** scope because Leemoonsoo  was mentioning somewhere that we may likely remove the global scope some day

_This is a sub-task of epic **[ZEPPELIN-635]**_

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

### Todos
* [ ] - Code Review
* [ ] - Simple Test

### Is there a relevant Jira issue?
**[ZEPPELIN-697]**

### How should this be tested?
* `git fetch origin pull/745/head:AngularObjectReplaceDynamicFormVar`
* `git checkout AngularObjectReplaceDynamicFormVar`
* `mvn clean package -DskipTests`
* `bin/zeppelin-daemon.sh restart`
* Create a new note
* In the first paragraph, put the following code

```html
%angular

<form class="form-inline">
  <div class="form-group">
    <label for="superheroId">Super Hero: </label>
    <input type="text" class="form-control" id="superheroId" placeholder="Superhero name ..." ng-model="superhero"></input>
  </div>
  <button type="submit" class="btn btn-primary" ng-click="z.angularBind('superhero', superhero, 'PUT_HERE_PARAGRAPH_ID'); z.runParagraph('PUT_HERE_PARAGRAPH_ID')"> Bind</button>
    <button type="submit" class="btn btn-primary" ng-click="z.angularUnbind('superhero','PUT_HERE_PARAGRAPH_ID'); z.runParagraph('PUT_HERE_PARAGRAPH_ID')"> Unbind</button>
</form>
</form>
```
* Create a second paragraph with the following code:
```scala
%md

### The superhero is : **${superhero}**
```
* In the first paragraph, replace the text PUT_HERE_PARAGRAPH_ID by the paragraph id of the second paragraph
* Execute first the second paragraph to see that the dynamic form system is working as usual
* Now put **Batman** in the input text of the first paragraph and click alternatively on **Bind** to see that dynamic form in the second paragraph is removed
* Click on **Unbind** to see that the dynamic form system is back

### Screenshots (if appropriate)
![replacedynamicform](https://cloud.githubusercontent.com/assets/1532977/14233999/34ea658a-f9d8-11e5-875d-da04dd5d0a9b.gif)

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

[ZEPPELIN-635]: https://issues.apache.org/jira/browse/ZEPPELIN-635
[ZEPPELIN-697]: https://issues.apache.org/jira/browse/ZEPPELIN-697

Author: DuyHai DOAN <[email protected]>

Closes apache#745 from doanduyhai/ZEPPELIN-697 and squashes the following commits:

be4dbd1 [DuyHai DOAN] [ZEPPELIN-697] Replace dynamic form with angular object from registry if exists
### What is this PR for?
Change system.out and system.err into logger.info

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

### Todos
* [x] - Fixed to remove system.out and system.err

### What is the Jira issue?
This is very trivial and minor issue

### How should this be tested?
Check your logs/zeppelin*.out to see "------ Create new SparkContext ..."
Apply this patch
Check your logs/zeppelin*.log to see "------ Create new SparkContext ..."

### 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: Jongyoul Lee <[email protected]>

Closes apache#829 from jongyoul/minor-remove-stdout-stderr and squashes the following commits:

f703fe3 [Jongyoul Lee] [Minor] - Revert test code
180e2c1 [Jongyoul Lee] [MINOR] - Change System.out and System.err into logger.info
…licitly

### What is this PR for?
Set log4j into JVM option for enforcing logging configuration.

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

### Todos
* [x] - Set "-Dlog4j.configuration=..." into JVM option

### What is the Jira issue?
Minor issue

### How should this be tested?

1. Run spark with default log4j setting and check logs/zeppelin*.out. you can see logs from Spark.
1. Apply this patch.
1. Run spark with default log4j setting and check logs/zeppelin-interpreter*.log. you can see logs from Spark.

### 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: Jongyoul Lee <[email protected]>

Closes apache#830 from jongyoul/minor-set-log4j-explicitly and squashes the following commits:

2185284 [Jongyoul Lee] [MINOR] - Added "-Dlog4j.configuration" into JAVA_OPTS and JAVA_INTP_OPTS explicitly
### What is this PR for?
support python edit mode in paragraph.

### What type of PR is it?
Improvement

### Todos
* [x] - support python edit mode.

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

### How should this be tested?
you can refer to screenshot.

### Screenshots (if appropriate)
- before
![image](https://cloud.githubusercontent.com/assets/3348133/14380573/1f6c953e-fdbb-11e5-9132-abf0878b771b.png)

- after
![image](https://cloud.githubusercontent.com/assets/3348133/14379951/f97b7fc8-fdb7-11e5-914e-bac603d43187.png)

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

Author: hsshim <[email protected]>

Closes apache#825 from astroshim/ZEPPELIN-799 and squashes the following commits:

c0d579d [hsshim] fixed for a new interpreter group.
63af8ad [hsshim] add spark.pyspark condition.
b2e23de [hsshim] add python edit mode.
@Leemoonsoo
Copy link
Copy Markdown
Member

@fireboy1919 Thanks for the contribution.

It looks like individual interpreter setting can configure ResourcePool implementation through it's property ResourcePoolClass. How about add some prefix on the property name, to distinguish from any other user defined properties? For example, like zeppelin.interpreter.localRepo, i think zeppelin.interpreter.resourcePoolClass make sense.

And how about add new configuration into ZeppelinConfiguration to set default value of resourcePoolClass globally through conf/zeppelin-env.sh and conf/zeppelin-site.xml ?

@fireboy1919
Copy link
Copy Markdown
Contributor Author

fireboy1919 commented Apr 15, 2016

Great ideas!

Since interpreters don't directly use the Zeppelin Configuration, I'll pass it along by adding it as a property within InterpreterFactory.

Does that seem like a reasonable implementation?

@fireboy1919
Copy link
Copy Markdown
Contributor Author

The implementation that I suggested has been implemented. I did it by actually including all of the things that are in zeppelinconfig that start with zeppelin.interpreter into the properties list.

@Leemoonsoo
Copy link
Copy Markdown
Member

Somehow, the PR includes commits from other contributions. @fireboy1919 could you manage it to not includes them?

@fireboy1919 fireboy1919 deleted the pool_pluggable branch April 18, 2016 14:48
@fireboy1919 fireboy1919 restored the pool_pluggable branch April 18, 2016 14:48
@fireboy1919 fireboy1919 deleted the pool_pluggable branch April 18, 2016 14:50
@fireboy1919 fireboy1919 mentioned this pull request Apr 18, 2016
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants