-
Notifications
You must be signed in to change notification settings - Fork 28.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPARK-12299][CORE] Remove history serving functionality from Master #10991
[SPARK-12299][CORE] Remove history serving functionality from Master #10991
Conversation
…elated WebUI and JSON ApiRootResources
Test build #50415 has finished for PR 10991 at commit
|
Removing the history serving from Master is pretty straightforward, but leaves some gaps in the UI and serving JSON requests. I am marking this as WIP to get some discussion on how to best handle a few of these points.
|
cc @andrewor14, @squito for thoughts on above |
Ah, that's too bad. When I first proposed to do this I did not think there would be a REST API. Overall I'm still in favor of removing the functionality from Master. I don't have strong opinions about what we should do about the REST API but I believe that's less important; I don't think many people depend on the specific get SparkUI call from the standalone Master. I believe @JoshRosen has some opinions about how we should move forward in Spark 2.0. |
Hi @JoshRosen , what are your thoughts on the Master REST API if history is no longer available? |
The Master REST API functionality which existed prior to the unification with the Spark driver REST API should still work after this change, so we shouldn't break or remove those methods. I think that there are a few ways to handle this JIRA / task, some more complex than others. The only "must have" requirement for 2.0 is removing the HistoryServer functionality; other cleanup and interface refactoring can be deferred for later. So, I wouldn't try to do any major refactoring or cleanup; just remove the feature so we get the API / functionality change in and address the other pieces later. |
@JoshRosen @andrewor14 , just to be clear what needs to be done here - we want to keep the ability for Master to rebuild a |
I don't think that the Master should have any event-log consumption logic whatsoever. |
Maybe I'm missing something then. Most of the REST API defined in ApiRootResource depends on having a |
There's a more fundamental issue which the history server has too: log replay is too expensive for long-lived applications. replay time is O(jobs)+O(stages), even if GC keeps those numbers in the main UI down. I'm not proposing a solution other than to observe that it's essentially some form of ETL operation, one that may be possible to do prepare for before building the UI up, just running through the events and discarding old/surplus ones. Has anyone played with something like that ? |
@BryanCutler Actually, for simplicity I would recommend simply removing the REST API related to the Master serving history UIs. Then you can just remove the actual history serving functionality itself easily. I don't see any reason we'll possibly add it back after Spark 2.0 so it doesn't make sense to keep around a REST API that does not have a backing functionality. Also I haven't heard of anyone relying on this obscure REST API so I don't think it matters a lot. We should never have added this API in the first place. |
Thanks @andrewor14 , that sounds fine to me also - I just wanted to make sure I didn't remove some functionality that some people relied on. I already had everything removed, just need to clean up and merge with latest. I'm on vacation now, but I should be able to finish this up next week. |
Sure, thanks for your work! |
Also, please update |
This reverts commit 6918f0b.
…ster-SPARK-12299 Conflicts: core/src/main/scala/org/apache/spark/deploy/master/ApplicationInfo.scala core/src/main/scala/org/apache/spark/deploy/master/Master.scala core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala core/src/main/scala/org/apache/spark/status/api/v1/ApplicationListResource.scala
…stead of listing applications, which is no longer supported
Test build #55264 has finished for PR 10991 at commit
|
jenkins retest this please |
Test build #55365 has finished for PR 10991 at commit
|
jenkins retest this please |
Test build #55366 has finished for PR 10991 at commit
|
jenkins retest this please |
Test build #55382 has finished for PR 10991 at commit
|
@andrewor14 or @JoshRosen , this is ready for review whenever you get a chance, thanks! |
…ster-SPARK-12299 Conflicts: core/src/main/scala/org/apache/spark/deploy/master/Master.scala
…ster-SPARK-12299 Conflicts: core/src/main/scala/org/apache/spark/deploy/master/Master.scala
Test build #56243 has finished for PR 10991 at commit
|
Test build #56252 has finished for PR 10991 at commit
|
jenkins retest this please |
Test build #56262 has finished for PR 10991 at commit
|
jenkins retest this please |
Test build #56285 has finished for PR 10991 at commit
|
Ping @andrewor14 , please review. Is this still slated for 2.0 release? Thanks! |
LGTM! @JoshRosen should have a look too. Also retest this please because this hasn't run tests in a while. |
Test build #57697 has finished for PR 10991 at commit
|
Merging into master 2.0. Thanks for your work @BryanCutler. |
Remove history server functionality from standalone Master. Previously, the Master process rebuilt a SparkUI once the application was completed which sometimes caused problems, such as OOM, when the application event log is large (see SPARK-6270). Keeping this functionality out of the Master will help to simplify the process and increase stability. Testing for this change included running core unit tests and manually running an application on a standalone cluster to verify that it completed successfully and that the Master UI functioned correctly. Also added 2 unit tests to verify killing an application and driver from MasterWebUI makes the correct request to the Master. Author: Bryan Cutler <cutlerb@gmail.com> Closes #10991 from BryanCutler/remove-history-master-SPARK-12299. (cherry picked from commit cf2e9da) Signed-off-by: Andrew Or <andrew@databricks.com>
Great, thanks! |
PR apache#10991 removed the built-in history view from Spark Standalone, so the history server is no longer useful to Yarn or Mesos only.
Hello PR #10991 removed the built-in history view from Spark Standalone, so the history server is no longer useful to Yarn or Mesos only. Author: Hervé <dud225@users.noreply.github.com> Closes #17709 from dud225/patch-1. (cherry picked from commit 3476799) Signed-off-by: Sean Owen <sowen@cloudera.com>
Hello PR #10991 removed the built-in history view from Spark Standalone, so the history server is no longer useful to Yarn or Mesos only. Author: Hervé <dud225@users.noreply.github.com> Closes #17709 from dud225/patch-1. (cherry picked from commit 3476799) Signed-off-by: Sean Owen <sowen@cloudera.com>
We've just upgraded our Spark cluster from 1.6.x to 2.x, I found that the REST APIs from Spark MasterUI is unavailable. It's important for us to use the REST APIs to monitor our Applications. I believe that some other people would rely on this function too. Right now, the only way to get them is using the Spark Master WebUI, it's too bad. It would be great that we have some REST APIs to access Master、Workers and Applications information from Master. |
@stanzhai I think you have a good point. I don't think removing the REST API for access to basic app info in the standalone master was really necessary for the original goals of SPARK-12299. But I'd open another jira, for restoring an api with the same info in the master UI, and move discussion there. |
whoops, now I see this is already present as https://issues.apache.org/jira/browse/SPARK-18683 |
Hello PR apache#10991 removed the built-in history view from Spark Standalone, so the history server is no longer useful to Yarn or Mesos only. Author: Hervé <dud225@users.noreply.github.com> Closes apache#17709 from dud225/patch-1.
Remove history server functionality from standalone Master. Previously, the Master process rebuilt a SparkUI once the application was completed which sometimes caused problems, such as OOM, when the application event log is large (see SPARK-6270). Keeping this functionality out of the Master will help to simplify the process and increase stability.
Testing for this change included running core unit tests and manually running an application on a standalone cluster to verify that it completed successfully and that the Master UI functioned correctly. Also added 2 unit tests to verify killing an application and driver from MasterWebUI makes the correct request to the Master.