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

Matei Zaharia commented on MAPREDUCE-707:
-----------------------------------------

I don't think that does what you want it to do, because it just sets 
poolNameProperty to a different value. What you want is for each *individual* 
job's pool to be determined based on which properties are in its JobConf (if it 
has mapred.fairscheduler.pool, use that; otherwise use whatever property 
poolNameProperty is set to; and if that doesn't exist in the JobConf either, 
use DEFAULT_POOL_NAME). The XML code I posted makes the job's JobConf implement 
this logic, by having the "pool" property be whatever the user sets it to if 
the user provides a setting, and making it default to the value of user.name 
otherwise. But there's no way to achieve this same behavior by just changing 
PoolManager.initialize to set poolNameProperty another way.

Having thought about this some more, I think the most elegant implementation is 
to actually change PoolManger.getPoolName(JobInProgress job) to explicitly 
check whether the job's JobConf has the key "mapred.fairscheduler.pool" set, 
and if so, return that value; otherwise, it should return 
conf.get(poolNameProperty) as it does now. This should be a simple change to 
PoolManager.getPoolName. You will also need to change PoolManager.setPool() to 
set the "mapred.fairscheduler.pool" property rather than the poolNameProperty 
property on the job. Let me know if this makes sense.

> Provide a jobconf property for explicitly assigning a job to a pool
> -------------------------------------------------------------------
>
>                 Key: MAPREDUCE-707
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-707
>             Project: Hadoop Map/Reduce
>          Issue Type: New Feature
>          Components: contrib/fair-share
>            Reporter: Matei Zaharia
>            Priority: Trivial
>
> A common use case of the fair scheduler is to have one pool per user, but 
> then to define some special pools for various production jobs, import jobs, 
> etc. Therefore, it would be nice if jobs went by default to the pool of the 
> user who submitted them, but there was a setting to explicitly place a job in 
> another pool. Today, this can be achieved through a sort of trick in the 
> JobConf:
> {code}
> <property>
>   <name>mapred.fairscheduler.poolnameproperty</name>
>   <value>pool.name</value>
> </property>
> <property>
>   <name>pool.name</name>
>   <value>${user.name}</value>
> </property>
> {code}
> This JIRA proposes to add a property called mapred.fairscheduler.pool that 
> allows a job to be placed directly into a pool, avoiding the need for this 
> trick.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to