A solution would be to place your users into groups, and use
group.name identifier to be the  poolnameproperty. Would this work for
you instead?

On Wed, Jan 25, 2012 at 8:00 PM, praveenesh kumar <[email protected]> wrote:
> Also, with the above mentioned method, my problem is I am having one
> pool/user (thats obviously not a good way of configuring schedulers)
> How can I allocate multiple users to one pool in the xml properties, so
> that I don't have to care giving any options inside my codes.
>
> Thanks,
> Praveenesh
>
> On Wed, Jan 25, 2012 at 7:55 PM, praveenesh kumar <[email protected]>wrote:
>
>> I am looking for the solution where we can do it permanently without
>> specify these things inside jobs.
>> I want to keep these things hidden from the end-user.
>> End-user would just write pig scripts and all the jobs submitted by the
>> particular user will get submit to their respective pools automatically.
>>
>> What I am doing write now is something like this
>>
>>  <allocations>
>>   <pool name="ABC">
>>     <minMaps>10</minMaps>
>>     <minReduces>10</minReduces>
>>     <maxMaps>192</maxMaps>
>>     <maxReduces>96</maxReduces>
>>     <minSharePreemptionTimeout>300</minSharePreemptionTimeout>
>>   </pool>
>>   <user name="ABC">
>>
>>     <maxRunningJobs>6</maxRunningJobs>
>>   </user>
>>   <userMaxJobsDefault>3</userMaxJobsDefault>
>>   <fairSharePreemptionTimeout>600</fairSharePreemptionTimeout>
>>
>>   <pool name="XYZ">
>>     <minMaps>10</minMaps>
>>     <minReduces>10</minReduces>
>>     <maxMaps>192</maxMaps>
>>     <maxReduces>96</maxReduces>
>>     <minSharePreemptionTimeout>300</minSharePreemptionTimeout>
>>   </pool>
>>   <user name="XYZ">
>>
>>    <maxRunningJobs>6</maxRunningJobs>
>>   </user>
>>   <userMaxJobsDefault>3</userMaxJobsDefault>
>>   <fairSharePreemptionTimeout>600</fairSharePreemptionTimeout>
>>
>> </allocations>
>>
>> By doing this, I am able to see different pools per user, without
>> mentioning anything inside the jobs.
>> Automatically jobs are going to the respective pools.
>>
>> But what I wanted to know , is this the right method to do ?
>>
>> Thanks,
>> Praveenesh
>>
>>
>>
>> On Wed, Jan 25, 2012 at 7:36 PM, Harsh J <[email protected]> wrote:
>>
>>> Set the property in Pig with the 'set' command or other ways:
>>> http://pig.apache.org/docs/r0.9.1/cmds.html#set or
>>> http://pig.apache.org/docs/r0.9.1/start.html#properties
>>>
>>> As Srinivas covered earlier, pool allocation can be done per-user if
>>> you set the scheduler poolnameproperty to "user.name". Per group if
>>> you set the property to "group.name".
>>>
>>> Then you can provide per-poolname config overrides via the "pool"
>>> element config described in
>>>
>>> http://hadoop.apache.org/common/docs/current/fair_scheduler.html#Allocation+File+%28fair-scheduler.xml%29
>>>
>>> On Wed, Jan 25, 2012 at 7:01 PM, praveenesh kumar <[email protected]>
>>> wrote:
>>> > I am running pig jobs, how can I specify on which pool, it should run ?
>>> > Also do you mean, the pool allocation is done job wise, not user wise ?
>>> >
>>> >
>>> > On Wed, Jan 25, 2012 at 6:14 PM, Srinivas Surasani <[email protected]>
>>> wrote:
>>> >
>>> >> Praveenesh,
>>> >>
>>> >> You can try specifying "mapred.fairscheduler.pool" to your pool name
>>> while
>>> >> running the job. By default, mapred.faircheduler.poolnameproperty set
>>> to
>>> >> user.name ( each job run by user is allocated to his named pool ) and
>>> you
>>> >> can also change this property to group.name.
>>> >>
>>> >> Srinivas --
>>> >>
>>> >> Also, you can set
>>> >>
>>> >> On Wed, Jan 25, 2012 at 6:24 AM, praveenesh kumar <
>>> [email protected]
>>> >> >wrote:
>>> >>
>>> >> > Understanding Fair Schedulers better.
>>> >> >
>>> >> > Can we create mulitple pools in Fair Schedulers. I guess Yes. Please
>>> >> > correct me.
>>> >> >
>>> >> > Suppose I have 2 pools in my fair-scheduler.xml
>>> >> >
>>> >> > 1. Hadoop-users : Min map : 10, Max map : 50, Min Reduce : 10, Max
>>> >> Reduce :
>>> >> > 50
>>> >> > 2. Admin-users: Min map : 20, Max map : 80, Min Reduce : 20, Max
>>> Reduce :
>>> >> > 80
>>> >> >
>>> >> > I have 5 users, who will be using these pools. How will I allocate
>>> >> specific
>>> >> > pools to specific users ?
>>> >> >
>>> >> > Suppose I want user1,user2 to use "Hadoop-users" pool and
>>> >> user3,user4,user5
>>> >> > to use "Admin users"
>>> >> >
>>> >> > In
>>> http://hadoop.apache.org/common/docs/r0.20.205.0/fair_scheduler.html
>>> >> > they have mentioned allocations something like this.
>>> >> >
>>> >> > <?xml version="1.0"?>
>>> >> > <allocations>
>>> >> >  <pool name="sample_pool">
>>> >> >    <minMaps>5</minMaps>
>>> >> >    <minReduces>5</minReduces>
>>> >> >    <maxMaps>25</maxMaps>
>>> >> >    <maxReduces>25</maxReduces>
>>> >> >    <minSharePreemptionTimeout>300</minSharePreemptionTimeout>
>>> >> >  </pool>
>>> >> >  <user name="sample_user">
>>> >> >    <maxRunningJobs>6</maxRunningJobs>
>>> >> >  </user>
>>> >> >  <userMaxJobsDefault>3</userMaxJobsDefault>
>>> >> >  <fairSharePreemptionTimeout>600</fairSharePreemptionTimeout>
>>> >> > </allocations>
>>> >> >
>>> >> > I tried creating more pools, its happening, but how to allocate
>>> users to
>>> >> > use specific pools ?
>>> >> >
>>> >> > Thanks,
>>> >> > Praveenesh
>>> >> >
>>> >>
>>>
>>>
>>>
>>> --
>>> Harsh J
>>> Customer Ops. Engineer, Cloudera
>>>
>>
>>



-- 
Harsh J
Customer Ops. Engineer, Cloudera

Reply via email to