[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Resolution: Fixed Hadoop Flags: Reviewed Fix Version/s: 3.0.0-alpha3 2.9.0 Status: Resolved (was: Patch Available) Thanks [~haibochen] and [~kasha] for reviews. Committed to branch-2 and trunk! > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Fix For: 2.9.0, 3.0.0-alpha3 > > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch, > MAPREDUCE-6871.003.patch, MAPREDUCE-6871.004.patch, MAPREDUCE-6871.005.patch, > MAPREDUCE-6871.005.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.005.patch I was talking to [~templedf] about regexes and he suggested using {{String.format}} to make the regex as one String, which makes it easier to read. The 005 patch does that. > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch, > MAPREDUCE-6871.003.patch, MAPREDUCE-6871.004.patch, MAPREDUCE-6871.005.patch, > MAPREDUCE-6871.005.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.005.patch I was talking to [~templedf] about regexes and he suggested using {{String.format}} to make the regex as one String, which makes it easier to read. The 005 patch does that. > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch, > MAPREDUCE-6871.003.patch, MAPREDUCE-6871.004.patch, MAPREDUCE-6871.005.patch, > MAPREDUCE-6871.005.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.004.patch The 004 patch: - Renames the config to {{mapreduce.job.am.strict-locality}} - Adds a debug logging check - Removes the redundant label setting code in a test (I think that's a holdover from an earlier version) [~kasha], for your feedback about the {{rackRequests}}: it does need to be a map. If someone specifies {{/rack1,/rack1/node1}}, we'd need to update the already created request for rack1 to have the strict locality set to false. > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch, > MAPREDUCE-6871.003.patch, MAPREDUCE-6871.004.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.003.patch Thanks for taking a look [~kasha]. I've addressed your feedback. The 003 patch: - Moves the code to it's own method - Replaces the iterating lookup with a hashmap > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch, > MAPREDUCE-6871.003.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.002.patch Thanks [~haibochen] for taking a look. I've addressed your feedback. The 002 patch: - Uses a regex for parsing the config. I think this makes the code much clearer and more readable because I'm also using named captured groups. - Renames the config property as [~haibochen] suggested. - Refactored the test code to split it up into different tests and added a few more cases. > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch, MAPREDUCE-6871.002.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Attachment: MAPREDUCE-6871.001.patch The 001 patch: - Adds the new property with the behavior as described above - Adds unit tests - I also verified that it behaves correctly in a cluster > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org
[jira] [Updated] (MAPREDUCE-6871) Allow users to specify racks and nodes for strict locality for AMs
[ https://issues.apache.org/jira/browse/MAPREDUCE-6871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Kanter updated MAPREDUCE-6871: - Status: Patch Available (was: Open) > Allow users to specify racks and nodes for strict locality for AMs > -- > > Key: MAPREDUCE-6871 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6871 > Project: Hadoop Map/Reduce > Issue Type: New Feature > Components: client >Reporter: Robert Kanter >Assignee: Robert Kanter > Attachments: MAPREDUCE-6871.001.patch > > > YARN-6050 fixed the YARN API to allow multiple {{ResourceRequest}}'s when > submitting an AM so that you can actually do rack or node locality. We > should allow MapReduce users to take advantage of this by exposing this > functionality in some way. The raw YARN API allows for a lot of flexibility > (e.g. different resources per request, etc), but we don't necessarily want to > allow the user to do too much here so they don't shoot themselves in the foot > and we don't make this overly complicated. > I propose we allow users to specify racks and nodes for strict locality. > This would allow users to restrict an MR AM to specific racks and/or nodes. > We could add a new property, > {{mapreduce.job.am.resource-request.strict.locality}}, which takes a > comma-separated list of entries like: > - {{/}} > - {{//}} > - {{}} (assumes /default-rack) > MapReduce would then use this information to create the corresponding > {{ResourceRequest}}'s. > For example, > {{mapreduce.job.am.resource-request.strict.locality=/rack1/node1}} would > create the following {{ResourceRequest}}'s: > - resourceName=ANY, relaxLocality=false, capability=> - resourceName=/rack1, relaxLocality=false, capability= > - resourceName=node1, relaxLocality=true, capability= > By default, the property would be unset, and you'd get the normal {{ANY}} > {{ResourceRequest}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org