tgravescs opened a new pull request #26682: [SPARK-29306][CORE] Stage Level 
Sched: Executors need to track what ResourceProfile they are created with 
URL: https://github.com/apache/spark/pull/26682
 
 
   
   ### What changes were proposed in this pull request?
   <!--
   Please clarify what changes you are proposing. The purpose of this section 
is to outline the changes and how this PR fixes the issue. 
   If possible, please consider writing useful notes for better and faster 
reviews in your PR. See the examples below.
     1. If you refactor some codes with changing classes, showing the class 
hierarchy will help reviewers.
     2. If you fix some SQL features, you can provide some references of other 
DBMSes.
     3. If there is design documentation, please add the link.
     4. If there is a discussion in the mailing list, please add the link.
   -->
   
   This is the second PR for the Stage Level Scheduling. This is adding in the 
necessary executor side changes:
   1) executors to know what ResourceProfile they should be using
   2) handle parsing the resource profile settings - these are not in the 
global configs
   3) then reporting back to the driver what resource profile it was started 
with.
   
   This PR adds all the piping for YARN to pass the information all the way to 
executors, but it just uses the default ResourceProfile (which is the global 
applicatino level configs).
   
   At a high level these changes include:
   1) adding a new --resourceProfileId option to the 
CoarseGrainedExecutorBackend
   2) Add the ResourceProfile settings to new internal confs that gets passed 
into the Executor
   3) Executor changes that use the resource profile id passed in to read the 
corresponding ResourceProfile confs and then parse those requests and discover 
resources as necessary
   4) Executor registers to Driver with the Resource profile id so that the 
ExecutorMonitor can track how many executor with each profile are running
   5) YARN side changes to show that passing the resource profile id and confs 
actually works. Just uses the DefaultResourceProfile for now.
   
   I also removed a check from the CoarseGrainedExecutorBackend that used to 
check to make sure there were task requirements before parsing any custom 
resource executor requests.  With the resource profiles this becomes much more 
expensive because we would then have to pass the task requests to each executor 
and the check was just a short cut and not really needed. It was much cleaner 
just to remove it.
   
   
   ### Why are the changes needed?
   <!--
   Please clarify why the changes are needed. For instance,
     1. If you propose a new API, clarify the use case for a new API.
     2. If you fix a bug, you can clarify why it is a bug.
   -->
   
   These changes are needed for the executor to report which ResourceProfile 
they are using so that ultimately the dynamic allocation manager can use that 
information to know how many with a profile are running and how many more it 
needs to request.  Its also needed to get the resource profile confs to the 
executor so that it can run the appropriate discovery script if needed.
   
   ### Does this PR introduce any user-facing change?
   <!--
   If yes, please clarify the previous behavior and the change this PR proposes 
- provide the console output, description and/or an example to show the 
behavior difference if possible.
   If no, write 'No'.
   -->
   
   No
   
   ### How was this patch tested?
   <!--
   If tests were added, say they were added here. Please make sure to add some 
test cases that check the changes thoroughly including negative and positive 
cases if possible.
   If it was tested in a way different from regular unit tests, please clarify 
how you tested step by step, ideally copy and paste-able, so that other 
reviewers can test and check, and descendants can verify in the future.
   If tests were not added, please describe why they were not added and/or why 
it was difficult to add.
   -->
   Unit tests and manually on YARN.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to