Uh oh!
There was an error while loading. Please reload this page.
[ZEPPELIN-1165 : WIP] Code-based job workflow - #1799
Conversation
cloverhearts
commented
Jan 2, 2017
create new issue on jira |
@cloverhearts This is very interesting. I have a few questions
|
cloverhearts
commented
Jan 3, 2017
@zjffdu In fact, this feature has a dependency on Spark. Since calls can be made at any time in the code, we can use them together during analysis or in combination with external libraries. By default, this is not a complete implementation of the workflow. or or |
cloverhearts
commented
Jan 3, 2017
@zjffdu |
zjffdu
commented
Jan 3, 2017
@cloverhearts What I mean is that the code like following would be called many times by users It is just like some code templates, so what I suggest is that we can create a high level workflow framework which use these apis internally. And for users, they just need to specify the dependency between paragraphs using this framework, they don't need to check job status like the code above. |
zjffdu
commented
Jan 3, 2017
BTW, in the first phase we can provide the high-level framework to allow user to call it programmatically, And in the second phase, it would be better to allow user to do it though drag & drop in UI. |
cloverhearts
commented
Jan 3, 2017
@zjffdu perhaps, Woluld you give me for many opinion this about? |
zjffdu
commented
Jan 3, 2017
Thanks @cloverhearts , after reading #1176. This PR is the first phase of this feature (implement low level api for workflow), is that correct ? |
@zjffdu |
rasehorn
commented
Jan 3, 2017
From my point of view this kind of functionality shall be provided by the core framework. This is a kind defining the paragraph execution workflow implicitely without the need to program explicitely. |
rasehorn
commented
Jan 3, 2017
I'm also a little bit confused what this PR really is about - the pictures above point to paragraph execution order and control but the discussion also points to Notebook execution workflows. Often paragraphs within notebooks depend on others and therefore they need to be executed in a certain order. I feel like this kind of paragraph execution control shall be handeled by the core framework based on settings for each paragraph within the notebook. Additionally: In some places within the discussion the implementation of that feature on interpreter level was mentioned. It is not clear to me why the notebook workflow definition feature shall be reimplemented in different interpreters in different ways. Instead the internals of a notebook are of no interest when it is executed within a workflow - all that matters is success or failure and a definition at the workflow level what shall happen in case of a failure. So from my point of view the notebook workflow feature should also be implemented in the core code independently from the different interpreters available. |
Leemoonsoo
commented
Jan 3, 2017
How about not repeating or just |
cloverhearts
commented
Jan 3, 2017
Yes, apart from workflow, this feature is essential. (Get paragraph status) And we will separate the functions related to the workflow into other PRs. For example, getting paragraph status, deleting paragraph output. Thank you a lot for your opinion. |
cloverhearts
commented
Jan 3, 2017
@Leemoonsoo |
rasehorn
commented
Jan 3, 2017
As far as I remember another discussion the paragraph IDs will change if you export/import or copy a notebook (not sure which one applies). If that is the case the workflow will be broken after import. If the user in front of the screen is not familiar with the code and logic of the notebook, it might be difficult to fix. What about a simple "z.wait(ordernumber or paragraphId)" function which makes the paragraph wait for the paragraph referenced by the ordernumber or id to finish successfully or cancel the paragraph execution in case of an error? This way all paragraphs without z.wait will be executed in parallel and those calling z.wait would be executed in sequence to the ones they depend on. And additionally this kind of functionality would not be mixed with the job handling on notebook level. |
@rasehorn Case 1 Or Case 2 And would you please more explain regarding |
@cloverhearts Also: I'm only talking about the use case to ensure a certain sequence of paragraph executions when runAll is called for the notebook. If you explicitely call z.run(paragraphId) within a certain notebook after runAll() was called, you propably execute those paragraphs twice. The easiest way to ensure a certain sequence of paragraph execution after runAll() was issued is to make the paragraphs wait for the one they depend on to finish. Lets say we have three paragraphs. From my point of view this would be the easiest way for a ZeppelinUser to ensure a certain sequence of paragraph execution including control which paragraphs are executed in parallel. To answer your particular question: |
zjffdu
commented
Jan 4, 2017
I agree with @rasehorn that workflow execution should be done in a high level framework. User just need to define the workflow (specify the dependencies between paragraphs). I also paste one image to illustrate my current idea. In the following screenshot, we have 4 paragraphs, paragraph 1 needs to run first and paragraph 2,3,4 can be run concurrently after paragraph 1. So on each paragraph's top right area, we can allow user to specify this paragraph's dependencies. Here, paragraph_1 has no dependencies, and paragraph 2,3,4 depends on paragraph 1. After the workflow is defined (dependencies are specified), we can click the button on the top right of the note to run all the paragraphs on the note. We could also provide rest api for run this whole note. |
cloverhearts
commented
Jan 7, 2017
@cloverhearts Stop?? |
close#83close#86close#125close#133close#139close#146close#193close#203close#246close#262close#264close#273close#291close#299close#320close#347close#389close#413close#423close#543close#560close#658close#670close#728close#765close#777close#782close#783close#812close#822close#841close#843close#878close#884close#918close#989close#1076close#1135close#1187close#1231close#1304close#1316close#1361close#1385close#1390close#1414close#1422close#1425close#1447close#1458close#1466close#1485close#1492close#1495close#1497close#1536close#1545close#1561close#1577close#1600close#1603close#1678close#1695close#1739close#1748close#1765close#1767close#1776close#1783close#1799
aviralKumar13
commented
Sep 7, 2020
When can we expect this functionality to be available in zeppelin? |
zjffdu
commented
Sep 7, 2020
@aviralKumar13 I don't think this PR is in progress now. It might be better to do that in other schedule framework. e.g airflow, What zeppelin needs to provide is a simple use api to invoke running paragraph/notes. And this PR would be helpful on that. #3887 |
aviralKumar13
commented
Sep 7, 2020
@zjffdu thanks for the info , I am looking for dependency based execution in zeppelin where in we can have one paragraph waiting for another paragraph execution to finish . Airflow can help me do the schedule , but getting response from zeppelin paragraph whether it got completed or not is not possible as on today , right ? I need to poll the spark job interface for the status of job. |
zjffdu
commented
Sep 7, 2020
@aviralKumar13 You can take a look at #3887 which provide easy api for note/paragraph execution and status polling |
aviralKumar13
commented
Sep 7, 2020
okay it looks great .. is it on track for merge to master ? Roughly when this will be available ? |
zjffdu
commented
Sep 7, 2020
I think it will be merged to master soon. |
cloverhearts
commented
Sep 7, 2020
This PR has stopped functioning. |


What is this PR for?
Code based workflow (work in progress)
Re-implementation on this pr
#1176
or
or
Workflow process feature.
(To ensure the success of each paragraph, it is possible to run consecutively.)
Case 1
Please check the following flowchart.

Case 2
In general, when run a plurality of Paragraph, it performs Note entire run.

This is a good way to run a lot of Paragraph contained in the Note.
However, the problem occurs if the Interpreter of Paragraph different.
For Paragraph each using a different type of one of the Interpreter Note but run in sequence, the end is all different.
For example, Markdown is a very fast Interpreter.
The process is completed very quickly.
This is a problem in the sequential execution Paragraph.
This feature ensures a certain execution order Notebook with each Interpreter.
Case 3
For concurrent job in the workflow ...
If the current functional design is supposed to run at the same time, as follows
It is to share the results of the job.
But if the situation need to run the job at the same time, subject to their execution flow.
** The results will have to succeed, the following paragraph will be executed. **
What type of PR is it?
Improvement
jira
https://issues.apache.org/jira/browse/ZEPPELIN-1165
![cap 2016-07-14 15-11-07-036]
Questions: