Uh oh!
There was an error while loading. Please reload this page.
[SPARK-16520] [WEBUI] Link executors to corresponding worker pages - #14204
[SPARK-16520] [WEBUI] Link executors to corresponding worker pages#14204nblintao wants to merge 19 commits into
Conversation
nblintao
commented
Jul 14, 2016
SparkQA
commented
Jul 14, 2016
Test build #62327 has finished for PR 14204 at commit
|
nblintao
commented
Jul 14, 2016
retest this please |
SparkQA
commented
Jul 14, 2016
Test build #62329 has finished for PR 14204 at commit
|
ajbozarth
commented
Jul 19, 2016
I'll try to take a look at this tomorrow, but you're failing MiMa tests because you added a param to |
nblintao
commented
Jul 19, 2016
@ajbozarth Thanks for pointing out how to fix this. I'll try to fix it tomorrow. |
Merge the updates
SparkQA
commented
Jul 20, 2016
Test build #62572 has finished for PR 14204 at commit
|
SparkQA
commented
Jul 20, 2016
Test build #62575 has finished for PR 14204 at commit
|
ajbozarth
commented
Jul 20, 2016
From some quick testing and look through of your code I think this will be good, but you'll need to redo work it a bit to work with the new executors page that was just merged. The page is displayed using JQuery DataTables now. I'll take a more detailed look after you update this. |
# Conflicts: # core/src/main/scala/org/apache/spark/ui/exec/ExecutorsPage.scal1a
nblintao
commented
Jul 21, 2016
I have fixed the conflicts with #13670. |
SparkQA
commented
Jul 21, 2016
Test build #62680 has finished for PR 14204 at commit
|
Updates to the code look good but you need to update the two failing tests still. I also created SPARK-16673 for the issues discussed in #13670 and am mentioning it since it affects this pr's original intended functionality. I am ok with saying this LGTM once you address the tests and letting SPARK-16673 cover adding the display condition. |
ajbozarth
commented
Jul 21, 2016
@nblintao I'm not sure if you're aware but you can actually run the same tests Jenkins runs locally before pushing, there's a build/test script dev/run-tests, thought I'd mention it since you're test fixes didn't fix everything |
Thanks for your reminding, @ajbozarth. I committed without testing locally this time because I thought it was a small fix and could pass the test. Unluckily, it still needs to be updated. |
ajbozarth
commented
Jul 22, 2016
You're good, not everyone knows about dev/run-tests so I thought I'd mention it |
SparkQA
commented
Jul 22, 2016
Test build #62697 has finished for PR 14204 at commit
|
| val unpersistRdd = SparkListenerUnpersistRDD(12345) | ||
| val logUrlMap = Map("stderr" -> "mystderr", "stdout" -> "mystdout").toMap | ||
| val workerUrlMap = Map("url" -> "spark://Worker@192.168.1.104:32790", | ||
| "ui_url" -> "http://192.168.1.104:46445").toMap |
There was a problem hiding this comment.
I feel like these ip's should be something more generic, maybe check if there any other places in the test code that have strings with ip and ports that you could copy? Not an actual problem though since whats in the string only has to match the string below.
There was a problem hiding this comment.
Good idea. I've updated referring to the test cases in ClientSuite.scala. Thanks!
SparkQA
commented
Jul 22, 2016
Test build #62700 has finished for PR 14204 at commit
|
SparkQA
commented
Jul 22, 2016
Test build #62719 has finished for PR 14204 at commit
|
yhuai
commented
Jul 24, 2016
@nblintao I tried |
SparkQA
commented
Aug 29, 2016
Test build #64583 has finished for PR 14204 at commit
|
nblintao
commented
Aug 29, 2016
Interesting, test again please. |
nblintao
commented
Aug 30, 2016
retest this, please |
SparkQA
commented
Aug 30, 2016
Test build #64615 has finished for PR 14204 at commit
|
ajbozarth
commented
Oct 13, 2016
@nblintao Are you willing to rebase this and see if we can try to get it merged? |
SparkQA
commented
Dec 29, 2016
Test build #70696 has finished for PR 14204 at commit
|
nblintao
commented
Dec 29, 2016
@ajbozarth I finally have a chance to rebase it in the winter break. Could you please have a look? Thanks! |
SparkQA
commented
Dec 29, 2016
Test build #70697 has finished for PR 14204 at commit
|
ajbozarth
left a comment
There was a problem hiding this comment.
Just one comment for now, I'll try to check this out and make sure it still looks good sometime this week.
| }, | ||
| { | ||
| "targets": [ 17 ], | ||
| "visible": workersExist(response) |
There was a problem hiding this comment.
We ran into an issue recently with columnDefs, it only runs on initial page load and doesn't catch changes on refresh. So for columns with non-static visibility you should add a line like this one below dt.column(15).visible(logsExist(response));
There was a problem hiding this comment.
Thanks, but this code is redundant now so it should be removed
SparkQA
commented
Jan 3, 2017
Test build #70825 has finished for PR 14204 at commit
|
ajbozarth
commented
Jan 18, 2017
SparkQA
commented
Jan 18, 2017
Test build #71557 has finished for PR 14204 at commit
|
vanzin
commented
Jan 18, 2017
So, if I understand this correctly, in non-standalone mode you'll have a completely empty column in the UI taking up space? Why is it important to collect the worker URL (not the UI address)? There's nothing users can do with that. I'm also not a fan of exposing things that are particular to one specific cluster manager in the REST API. I'd be a little more ok with this patch if it hid that information from the UI when it's not available. But in fact I don't really see much value in exposing that link. To me, it just clutters up the UI, so you might as well just have a link to the Master UI somewhere and tell users to find the worker there if they need it. |
ajbozarth
commented
Jan 18, 2017
vanzin
commented
Jan 18, 2017
That's one way of looking at it (although I haven't looked at that change). I took a quick look at the worker UI and didn't see anything interesting there. It has links to the executor's log files, but those already exist in the app UI. |
ajbozarth
commented
Jan 18, 2017
yhuai
commented
Jan 19, 2017
ok I agree. Originally, I thought it will be helpful to figure out the worker that an executor belongs to. But, if it does not provide very useful information. I am fine to drop it. |
ajbozarth
commented
Jan 19, 2017
Closesapache#15736Closesapache#16309Closesapache#16485Closesapache#16502Closesapache#16196Closesapache#16498Closesapache#12380Closesapache#16764Closesapache#14394Closesapache#14204Closesapache#14027Closesapache#13690Closesapache#16279 Author: Sean Owen <sowen@cloudera.com> Closesapache#16778 from srowen/CloseStalePRs.

What changes were proposed in this pull request?
Added a new column named "Worker" in the Executor Page of the web UI. For each executor (except the driver), it will provide a link to the web UI of the worker it belongs to.
This PR also retrieved worker URLs (besides worker UI URLs) from
ExecutorRunnertoExecutorsPage. This would help if we want to show then on the Executor Page later. (See #14204 (comment))Because the data of the URLs had not been retrieved to the executor UI (even not in the executor), passing them have the following effects:
ExecutorInfois changed. A new argument,workerUrl: Map[String, String], is added in the constructor of that class. But it is set toMap.emptyby default, so calling the old API still works. The executors for local and Mesos are stilling using call the old API.ExecutorInfois update.How was this patch tested?
Run Spark as a "local cluster" by
./bin/spark-shell --master=local-cluster[2,1,1024]. Then view the Executor Page on http://localhost:4040/executors/.You might need to clear the cache at the browser since some resources are changed. (especially
/static/executorspage-template.html.)See the column "Worker" on the right of the Executors Table. For each executor, click the hypertext link, jump to the web UI of the worker it belongs to.
Screenshot:
