[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14735105#comment-14735105
 ] 

Jason Lowe commented on MAPREDUCE-5870:
---------------------------------------

Thanks for updating the patch!

We cannot change ClientProtocol.setJobPriority to take an integer rather than a 
String.  That's a backwards-incompatible change.

Why are we adding ClientProtocol.getJobPriority?  We are already returning the 
job priority via getJobStatus, so I'm a little confused on why we are extending 
the protocol to get information the client can already retrieve.

Does it make more sense to have LocalJobRunner.getJobPriority return a normal 
or default priority?  Returning null seems disruptive, as priorities really 
don't matter in the local job mode scenario.  In a similar sense, I'm wondering 
if we should have LocalJobRunner.setJobPriority simply track or ignore the 
priority rather than explode.  Since it already exploded for setJobPriority 
before we can tackle that in a separate JIRA if desired.

Why does JobConf.setPriorityAsInteger take a boxed type rather than a normal 
int and call Integer.toString?

I think the new TypeConverter functions are a little too generically named.  
It's a bit dangerous to have a toYarn that takes something as generic as a 
String and returns an int -- it could easily me misused in other contexts that 
have nothing to do with job priorities.  I'd name these fromYarnPriority, 
toYarnPriority, etc. so there's no chance of accidental collision.

convertPriorityToInteger needs to handle the case where the string is itself an 
integer, otherwise setJobPriorityAsInteger followed by getJobPriorityAsInteger 
doesn't work as expected.  Trying to do JobPriority.valueOf on a string that 
may not contain a valid enum is going to throw an IllegalArgumentException.  
Please add unit tests for the various get/set as integer scenarios on both Job 
and JobConf to make sure we're handling them properly.

Why was the call to testChangingJobPriority removed from TestMRJobClient?  The 
function is still there, although in practice is never called.


> Support for passing Job priority through Application Submission Context in 
> Mapreduce Side
> -----------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5870
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5870
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: client
>            Reporter: Sunil G
>            Assignee: Sunil G
>         Attachments: 0001-MAPREDUCE-5870.patch, 0002-MAPREDUCE-5870.patch, 
> 0003-MAPREDUCE-5870.patch, 0004-MAPREDUCE-5870.patch, 
> 0005-MAPREDUCE-5870.patch, 0006-MAPREDUCE-5870.patch, Yarn-2002.1.patch
>
>
> Job Prioirty can be set from client side as below [Configuration and api].
>                       a.      JobConf.getJobPriority() and 
> Job.setPriority(JobPriority priority) 
>                       b.      We can also use configuration 
> "mapreduce.job.priority".
>               Now this Job priority can be passed in Application Submission 
> context from Client side.
>               Here we can reuse the MRJobConfig.PRIORITY configuration. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to