[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-05-06 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

The latest patch is getting close. I think the naming of 
Abstract(App)?TopologyElementsFactory is both long and imprecise, as a 
ContainerRequest is not a topology element but a topology aware object. How 
about we simply call it (App)?TopologyAwareFactory? 

This a straightforward patch to make (hierarchical) topology pluggable. I'll 
commit this patch this week if there is no further objections. This is needed 
for YARN-19.

> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, Pluggable topologies with NodeGroup for YARN.pdf, 
> YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, YARN-18-v3.2.patch, 
> YARN-18-v3.patch, YARN-18-v4.1.patch, YARN-18-v4.2.patch, YARN-18-v4.3.patch, 
> YARN-18-v4.patch, YARN-18-v5.1.patch, YARN-18-v5.patch, YARN-18-v6.1.patch, 
> YARN-18-v6.2.patch, YARN-18-v6.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-05-06 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

Please find the summary/writeup in the attached "Pluggable topologies with 
NodeGroup for YARN.pdf"


> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, Pluggable topologies with NodeGroup for YARN.pdf, 
> YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, YARN-18-v3.2.patch, 
> YARN-18-v3.patch, YARN-18-v4.1.patch, YARN-18-v4.2.patch, YARN-18-v4.3.patch, 
> YARN-18-v4.patch, YARN-18-v5.1.patch, YARN-18-v5.patch, YARN-18-v6.1.patch, 
> YARN-18-v6.2.patch, YARN-18-v6.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-877) Allow for black-listing resources in FifoScheduler

2013-06-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-877:
--

The change is straightforward and the patch looks good. +1. Will commit shortly.

> Allow for black-listing resources in FifoScheduler
> --
>
> Key: YARN-877
> URL: https://issues.apache.org/jira/browse/YARN-877
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-877-2.patch, YARN-877.patch
>
>
> YARN-750 already addressed black-list staff in YARN API and CS scheduler, 
> this jira add implementation for FifoScheduler.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-877) Allow for black-listing resources in FifoScheduler

2013-06-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-877:
--

Committed to trunk, branch-2 and 2.1-beta. Thanks Junping!

> Allow for black-listing resources in FifoScheduler
> --
>
> Key: YARN-877
> URL: https://issues.apache.org/jira/browse/YARN-877
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-877-2.patch, YARN-877.patch
>
>
> YARN-750 already addressed black-list staff in YARN API and CS scheduler, 
> this jira add implementation for FifoScheduler.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (YARN-914) Support graceful decommission of nodemanager

2013-07-10 Thread Luke Lu (JIRA)
Luke Lu created YARN-914:


 Summary: Support graceful decommission of nodemanager
 Key: YARN-914
 URL: https://issues.apache.org/jira/browse/YARN-914
 Project: Hadoop YARN
  Issue Type: Improvement
Affects Versions: 2.0.4-alpha
Reporter: Luke Lu
Assignee: Junping Du


When NNs are decommissioned for non-fault reasons (capacity change etc.), it's 
desirable to minimize the impact to running applications.

Currently if a NN is decommissioned, all running containers on the NN need to 
be rescheduled on other NNs. Further more, for finished map tasks, if their map 
output are not fetched by the reducers of the job, these map tasks will need to 
be rerun as well.

We propose to introduce a mechanism to optionally gracefully decommission a 
node manager.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-914) Support graceful decommission of nodemanager

2013-07-15 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-914:
-

Description: 
When NNs are decommissioned for non-fault reasons (capacity change etc.), it's 
desirable to minimize the impact to running applications.

Currently if a NM is decommissioned, all running containers on the NM need to 
be rescheduled on other NMs. Further more, for finished map tasks, if their map 
output are not fetched by the reducers of the job, these map tasks will need to 
be rerun as well.

We propose to introduce a mechanism to optionally gracefully decommission a 
node manager.

  was:
When NNs are decommissioned for non-fault reasons (capacity change etc.), it's 
desirable to minimize the impact to running applications.

Currently if a NN is decommissioned, all running containers on the NN need to 
be rescheduled on other NNs. Further more, for finished map tasks, if their map 
output are not fetched by the reducers of the job, these map tasks will need to 
be rerun as well.

We propose to introduce a mechanism to optionally gracefully decommission a 
node manager.


> Support graceful decommission of nodemanager
> 
>
> Key: YARN-914
> URL: https://issues.apache.org/jira/browse/YARN-914
> Project: Hadoop YARN
>  Issue Type: Improvement
>Affects Versions: 2.0.4-alpha
>Reporter: Luke Lu
>Assignee: Junping Du
>
> When NNs are decommissioned for non-fault reasons (capacity change etc.), 
> it's desirable to minimize the impact to running applications.
> Currently if a NM is decommissioned, all running containers on the NM need to 
> be rescheduled on other NMs. Further more, for finished map tasks, if their 
> map output are not fetched by the reducers of the job, these map tasks will 
> need to be rerun as well.
> We propose to introduce a mechanism to optionally gracefully decommission a 
> node manager.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-914) Support graceful decommission of nodemanager

2013-07-15 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-914:
-

Description: 
When NMs are decommissioned for non-fault reasons (capacity change etc.), it's 
desirable to minimize the impact to running applications.

Currently if a NM is decommissioned, all running containers on the NM need to 
be rescheduled on other NMs. Further more, for finished map tasks, if their map 
output are not fetched by the reducers of the job, these map tasks will need to 
be rerun as well.

We propose to introduce a mechanism to optionally gracefully decommission a 
node manager.

  was:
When NNs are decommissioned for non-fault reasons (capacity change etc.), it's 
desirable to minimize the impact to running applications.

Currently if a NM is decommissioned, all running containers on the NM need to 
be rescheduled on other NMs. Further more, for finished map tasks, if their map 
output are not fetched by the reducers of the job, these map tasks will need to 
be rerun as well.

We propose to introduce a mechanism to optionally gracefully decommission a 
node manager.


> Support graceful decommission of nodemanager
> 
>
> Key: YARN-914
> URL: https://issues.apache.org/jira/browse/YARN-914
> Project: Hadoop YARN
>  Issue Type: Improvement
>Affects Versions: 2.0.4-alpha
>Reporter: Luke Lu
>Assignee: Junping Du
>
> When NMs are decommissioned for non-fault reasons (capacity change etc.), 
> it's desirable to minimize the impact to running applications.
> Currently if a NM is decommissioned, all running containers on the NM need to 
> be rescheduled on other NMs. Further more, for finished map tasks, if their 
> map output are not fetched by the reducers of the job, these map tasks will 
> need to be rerun as well.
> We propose to introduce a mechanism to optionally gracefully decommission a 
> node manager.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-914) Support graceful decommission of nodemanager

2013-07-15 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-914:
--

[~atm]: Nice catch! Of course :)

> Support graceful decommission of nodemanager
> 
>
> Key: YARN-914
> URL: https://issues.apache.org/jira/browse/YARN-914
> Project: Hadoop YARN
>  Issue Type: Improvement
>Affects Versions: 2.0.4-alpha
>Reporter: Luke Lu
>Assignee: Junping Du
>
> When NMs are decommissioned for non-fault reasons (capacity change etc.), 
> it's desirable to minimize the impact to running applications.
> Currently if a NM is decommissioned, all running containers on the NM need to 
> be rescheduled on other NMs. Further more, for finished map tasks, if their 
> map output are not fetched by the reducers of the job, these map tasks will 
> need to be rerun as well.
> We propose to introduce a mechanism to optionally gracefully decommission a 
> node manager.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-347) YARN node CLI should also show CPU info as memory info in node status

2013-07-26 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-347:
--

The patch lgtm. +1. Will commmit shortly.

> YARN node CLI should also show CPU info as memory info in node status
> -
>
> Key: YARN-347
> URL: https://issues.apache.org/jira/browse/YARN-347
> Project: Hadoop YARN
>  Issue Type: Improvement
>  Components: client
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-347.patch, YARN-347-v2.patch, YARN-347-v3.patch
>
>
> With YARN-2 checked in, CPU info are taken into consideration in resource 
> scheduling. yarn node -status  should show CPU used and capacity info 
> as memory info.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-347) YARN node CLI should also show CPU info besides memory info in node status

2013-07-26 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-347:
-

Summary: YARN node CLI should also show CPU info besides memory info in 
node status  (was: YARN node CLI should also show CPU info as memory info in 
node status)

> YARN node CLI should also show CPU info besides memory info in node status
> --
>
> Key: YARN-347
> URL: https://issues.apache.org/jira/browse/YARN-347
> Project: Hadoop YARN
>  Issue Type: Improvement
>  Components: client
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-347.patch, YARN-347-v2.patch, YARN-347-v3.patch, 
> YARN-347-v4.patch
>
>
> With YARN-2 checked in, CPU info are taken into consideration in resource 
> scheduling. yarn node -status  should show CPU used and capacity info 
> as memory info.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-347) YARN CLI should show CPU info besides memory info in node status

2013-07-26 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-347:
-

Summary: YARN CLI should show CPU info besides memory info in node status  
(was: YARN node CLI should also show CPU info besides memory info in node 
status)

> YARN CLI should show CPU info besides memory info in node status
> 
>
> Key: YARN-347
> URL: https://issues.apache.org/jira/browse/YARN-347
> Project: Hadoop YARN
>  Issue Type: Improvement
>  Components: client
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-347.patch, YARN-347-v2.patch, YARN-347-v3.patch, 
> YARN-347-v4.patch
>
>
> With YARN-2 checked in, CPU info are taken into consideration in resource 
> scheduling. yarn node -status  should show CPU used and capacity info 
> as memory info.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-1024) Define a virtual core unambigiously

2013-08-09 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-1024:
---

As many have already pointed out, using vcore to express "unit of computation" 
causes more confusion than the "predictability" it tries to address. 
(whatever)core as a unit of thread-affinity/locality is an important concept to 
preserve. OTOH, I can see the need to define a YCU (YARN Computation Unit) for 
the properties that Arun tried to address. YCU can be implemented as deployment 
specific mapping to fractional cores, which preserves both thread-locality and 
cpu/core-slicing. 

> Define a virtual core unambigiously
> ---
>
> Key: YARN-1024
> URL: https://issues.apache.org/jira/browse/YARN-1024
> Project: Hadoop YARN
>  Issue Type: Improvement
>Reporter: Arun C Murthy
>Assignee: Arun C Murthy
>
> We need to clearly define the meaning of a virtual core unambiguously so that 
> it's easy to migrate applications between clusters.
> For e.g. here is Amazon EC2 definition of ECU: 
> http://aws.amazon.com/ec2/faqs/#What_is_an_EC2_Compute_Unit_and_why_did_you_introduce_it
> Essentially we need to clearly define a YARN Virtual Core (YVC).
> Equivalently, we can use ECU itself: *One EC2 Compute Unit provides the 
> equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.*

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration

2013-08-15 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

It'll better if the node resource config is grouped into a repeated field, so 
that you can config multiple nodes in one RPC, which is the common case for 
cluster management systems.

> Dynamic resource configuration
> --
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-CoreAndAdmin.patch, 
> YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> More background and design details can be found in attached proposal.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-151) Browser thinks RM main page JS is taking too long

2012-10-14 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-151:
--

The most straight forward fix would be upgrading to a more recent version of 
datatables and turn on defered rendering (not creating dom nodes for all rows, 
even they are hidden): 
http://datatables.net/release-datatables/examples/ajax/defer_render.html

Sorting, searching through in js itself can easily handle up to 100k rows on 
modest hardware.

> Browser thinks RM main page JS is taking too long
> -
>
> Key: YARN-151
> URL: https://issues.apache.org/jira/browse/YARN-151
> Project: Hadoop YARN
>  Issue Type: Bug
>Affects Versions: 0.23.3
>Reporter: Robert Joseph Evans
>
> The main RM page with the default settings of 10,000 applications can cause 
> browsers to think that the JS on the page is stuck and ask you if you want to 
> kill it.  This is a big usability problem.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-151) Browser thinks RM main page JS is taking too long

2012-10-30 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-151:
--

10k apps is a small amount of data (a few hundred KB to a few MB) and that you 
don't need implement the logic (api that supports searching/sorting/paging) at 
server side and that you have better user response time (instant search 
experience) as the data is at the client side. The server side stuff would be 
better if we need to support more than 100K apps. If you come up with a patch, 
I'm happy to review it :)

> Browser thinks RM main page JS is taking too long
> -
>
> Key: YARN-151
> URL: https://issues.apache.org/jira/browse/YARN-151
> Project: Hadoop YARN
>  Issue Type: Bug
>Affects Versions: 0.23.3
>Reporter: Robert Joseph Evans
>Assignee: Ravi Prakash
>
> The main RM page with the default settings of 10,000 applications can cause 
> browsers to think that the JS on the page is stuck and ask you if you want to 
> kill it.  This is a big usability problem.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (YARN-265) Allow locality preference for launching AM

2012-12-07 Thread Luke Lu (JIRA)
Luke Lu created YARN-265:


 Summary: Allow locality preference for launching AM
 Key: YARN-265
 URL: https://issues.apache.org/jira/browse/YARN-265
 Project: Hadoop YARN
  Issue Type: Improvement
  Components: client
Reporter: Luke Lu


There are many usage scenarios would like to convey the preference of the 
original placement of ApplicationMaster. e.g., small jobs that are executed in 
AM; Topology preference from external cluster management system etc.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-265) Allow locality preference for launching AM

2012-12-07 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-265:
-

Description: There are many usage scenarios that would like to convey the 
preference of the original placement of ApplicationMaster. e.g., small jobs 
that are executed in AM; Topology preference from external cluster management 
system etc.  (was: There are many usage scenarios would like to convey the 
preference of the original placement of ApplicationMaster. e.g., small jobs 
that are executed in AM; Topology preference from external cluster management 
system etc.)

> Allow locality preference for launching AM
> --
>
> Key: YARN-265
> URL: https://issues.apache.org/jira/browse/YARN-265
> Project: Hadoop YARN
>  Issue Type: Improvement
>  Components: client
>Reporter: Luke Lu
>
> There are many usage scenarios that would like to convey the preference of 
> the original placement of ApplicationMaster. e.g., small jobs that are 
> executed in AM; Topology preference from external cluster management system 
> etc.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-265) Allow locality preference for launching AM

2012-12-07 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-265:
--

Looks like this is a superset of YARN-238, as I'm trying to allow resource 
request to be fully specified at client side. 

> Allow locality preference for launching AM
> --
>
> Key: YARN-265
> URL: https://issues.apache.org/jira/browse/YARN-265
> Project: Hadoop YARN
>  Issue Type: Improvement
>  Components: client
>Reporter: Luke Lu
>
> There are many usage scenarios that would like to convey the preference of 
> the original placement of ApplicationMaster. e.g., small jobs that are 
> executed in AM; Topology preference from external cluster management system 
> etc.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-223) Change processTree interface to work better with native code

2012-12-19 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-223:
--

# The changes to eliminate usage of ResourceCalculatorPlugin is incorrect. 
Process tree is an impl detail of ResourceCalculatorPlugin. Many systems don't 
have process tree or equivalent at all.
# You only need to change the interface of ResourceCalculatorProcessTree and 
impl of ProcfsBasedProcessTree.


> Change processTree interface to work better with native code
> 
>
> Key: YARN-223
> URL: https://issues.apache.org/jira/browse/YARN-223
> Project: Hadoop YARN
>  Issue Type: Bug
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>Priority: Critical
> Attachments: pstree-update4.txt, pstree-update6.txt, 
> pstree-update6.txt
>
>
> Problem is that on every update of processTree new object is required. This 
> is undesired when working with processTree implementation in native code.
> replace ProcessTree.getProcessTree() with updateProcessTree(). No new object 
> allocation is needed and it simplify application code a bit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-223) Change processTree interface to work better with native code

2012-12-19 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-223:
--

Upon second look, though the current ResourceCalculatorProcessTree interface is 
not ideal (checkPidPgrpidMatches threw me off, which should simply be 
checkOwnership), it's general enough I think.

+1 for the patch. Will commit shortly.



> Change processTree interface to work better with native code
> 
>
> Key: YARN-223
> URL: https://issues.apache.org/jira/browse/YARN-223
> Project: Hadoop YARN
>  Issue Type: Bug
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>Priority: Critical
> Attachments: pstree-update4.txt, pstree-update6.txt, 
> pstree-update6.txt
>
>
> Problem is that on every update of processTree new object is required. This 
> is undesired when working with processTree implementation in native code.
> replace ProcessTree.getProcessTree() with updateProcessTree(). No new object 
> allocation is needed and it simplify application code a bit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-223) Change processTree interface to work better with native code

2012-12-19 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-223:
--

Committed to trunk and branch-2. Thanks Radim for the patch and Chris and Bikas 
for the review.

> Change processTree interface to work better with native code
> 
>
> Key: YARN-223
> URL: https://issues.apache.org/jira/browse/YARN-223
> Project: Hadoop YARN
>  Issue Type: Bug
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>Priority: Critical
> Attachments: pstree-update4.txt, pstree-update6.txt, 
> pstree-update6.txt
>
>
> Problem is that on every update of processTree new object is required. This 
> is undesired when working with processTree implementation in native code.
> replace ProcessTree.getProcessTree() with updateProcessTree(). No new object 
> allocation is needed and it simplify application code a bit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-223) Change processTree interface to work better with native code

2012-12-20 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-223:
--

Sorry folks! I got too used to seeing mapreduce code in YARN :)

> Change processTree interface to work better with native code
> 
>
> Key: YARN-223
> URL: https://issues.apache.org/jira/browse/YARN-223
> Project: Hadoop YARN
>  Issue Type: Bug
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>Priority: Critical
> Fix For: 3.0.0, 2.0.3-alpha, 0.23.6
>
> Attachments: pstree-update4.txt, pstree-update6.txt, 
> pstree-update6.txt
>
>
> Problem is that on every update of processTree new object is required. This 
> is undesired when working with processTree implementation in native code.
> replace ProcessTree.getProcessTree() with updateProcessTree(). No new object 
> allocation is needed and it simplify application code a bit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-223) Change processTree interface to work better with native code

2012-12-20 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-223:
--

I think the PreCommit test patch system should either handle cross project 
patches or outright reject such patches.

> Change processTree interface to work better with native code
> 
>
> Key: YARN-223
> URL: https://issues.apache.org/jira/browse/YARN-223
> Project: Hadoop YARN
>  Issue Type: Bug
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>Priority: Critical
> Fix For: 3.0.0, 2.0.3-alpha, 0.23.6
>
> Attachments: pstree-update4.txt, pstree-update6.txt, 
> pstree-update6.txt
>
>
> Problem is that on every update of processTree new object is required. This 
> is undesired when working with processTree implementation in native code.
> replace ProcessTree.getProcessTree() with updateProcessTree(). No new object 
> allocation is needed and it simplify application code a bit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration on NM

2013-01-02 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

A simpler and more straightforward alternative would be changing the node 
resource on RM directly via JMX. No protocol changes would be necessary. 
Changing resource on NM and propagating the change to RM would lead to nasty 
race conditions where RM still thinks that an NM has enough resource and 
schedule new containers on the already downsized NM, which should fail and RM 
would need to reschedule the containers elsewhere, which is not pretty, 
especially when large number of NMs are affected, even if all the corner cases 
are handled.

bq. we should do RPC and optionally the web-services to the NM directly. And we 
should add command line util too.

Since the only near term user of the feature is *external* admin processes that 
prefer not having Hadoop jar dependencies, JMX change alone (a much smaller 
patch that doesn't impact major production code paths) would suffice. YARN RPC 
changes can be in a separate JIRA, when YARN itself needs to change per node 
resources. I'm not sure how useful a YARN CLI interface for this is, given it's 
impractical for people to manually change per node resources (when number of 
nodes is greater than 10). OTOH, I'm fine with having everything in, as long as 
it doesn't delay the inclusion of the basic functionality.




> Dynamic resource configuration on NM
> 
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration on NM

2013-01-03 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

Regarding the race condition, I meant that you could change the resource on NM 
in the middle of a heartbeat, where RM already assigned some containers to NM 
from the last heartbeat but you don't actually have the resource to launch 
these containers. It's relatively harmless now as NM is not enforcing its 
resource limit when launching containers, but the race condition can rear its 
ugly head if someone later decides to add code to enforce the limit when adding 
more resource features for things like GPU etc. The race condition would not be 
obvious to later maintainers.

With the RM only approach, I think that it's OK/harmless not to change 
totalResource at all at NM side and leave it as the original resource limit, as 
long as we set the resource limit <= the original limit, even if limit 
enforcement is added later. This makes the change an order of magnitude smaller 
and less invasive, as it doesn't have to change the node update code paths. It 
would also be wasteful to heartbeat the node resource (especially when later 
enhanced to including features besides memory) that doesn't change most of the 
time.




> Dynamic resource configuration on NM
> 
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-03-11 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

Preliminary comments:
# We should use net.topology.nodegroup.aware instead of 
net.topology.with.nodegroup for configuration to be consistent with branch-1 
code.
# We should probably use yarn.resourcemanager.topology.aware.factory.impl to 
specify factory class for topology aware objects.
# The topologoy aware objects should include ScheduledRequests and 
AppSchedulingInfo, which are currently not managed by the factory.
# Pluggable interface/class should be public with the InterfaceAudience.Private 
annotation.

> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, 
> YARN-18-v3.2.patch, YARN-18-v3.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-03-19 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

Juping, you're right that ScheduledRequests is an app side construct. My 
reaction to exposing the class was that it was a private class (hence 
implementation detail) of RMContainerAllocator. I was/am worried about exposing 
this detail (class name) to end-user config. We shouldn't have to change an end 
user config simply because we change the detail of implementation. How about we 
introduce a similar yarn.app.topology.aware.factory.impl which would be a more 
stable config property, so that the user-facing configuration stay the same if 
we later rename or add new topology aware classes for apps?

I think we're getting close.

> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, 
> YARN-18-v3.2.patch, YARN-18-v3.patch, YARN-18-v4.1.patch, YARN-18-v4.2.patch, 
> YARN-18-v4.3.patch, YARN-18-v4.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-03-26 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

The original patch were already broken up into YARN-18 and YARN-19. YARN-18 
makes topology aware classes pluggable. The patch itself is fairly 
straightforward: server side factory and app side factory to create topology 
aware classes. There is no behavior change by default. The latest looks big but 
fair amount of changes were trivial amendments due to the timeout requirement 
in unit tests.



> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, 
> YARN-18-v3.2.patch, YARN-18-v3.patch, YARN-18-v4.1.patch, YARN-18-v4.2.patch, 
> YARN-18-v4.3.patch, YARN-18-v4.patch, YARN-18-v5.1.patch, YARN-18-v5.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration on NM

2013-03-31 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

Resource scheduling is fundamentally centralized at RM. The global resource 
view is currently bootstrapped via the node registration process, which is more 
of a historical artifact based on convenience, since the resource view can also 
be constructed directly on RM via an inventory database. It's a round about, 
inconvenient and inefficient way to (re)construct the resource view by 
modifying per node config explicitly and propagate partial views to RM, if you 
already have an inventory database.

For a practical example: if you have OLTP workload (say HBase) sharing the same 
hardware with YARN and there is a load surge on HBase, we need to stop 
scheduling tasks/containers immediately on relevant (potentially all) nodes. 
The current patch (JMX is just used as a portable protocol for external 
management client to communicate with RM) can take effect immediately most 
efficiently. If we explicitly modify each nodemanager config and let the NM-RM 
protocol to propagate the change to RM, it would waste resource (CPU and 
network bandwidth) to contact (potentially) all the nodemanagers and cause 
unnecessary scheduling delays if the propagation is via regular heartbeat 
and/or DDoS the RM if (potentially) all the NMs need to re-register out-of-band.

This is not about JMX based tricks. This is about changing global resource view 
directly where the scheduler is vs the Rube Goldbergish way of changing NM 
config individually and propagate changes to RM to reconstruct the resource 
view. IMO, the direct way is better because NM doesn't really care about what 
resource it really has.

> Dynamic resource configuration on NM
> 
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-18) Make locatlity in YARN's container assignment and task scheduling pluggable for other deployment topology

2013-03-31 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-18:
-

bq. I see a lot of factories and then no changes to actually support 
node-group..

YARN-18 is explicitly for making the topology pluggable based on previous 
review requests. So there is little node group specific changes, which are 
implemented in YARN-19.

bq. we need to abstract the notion of topology in the Scheduler without having 
to make changes every time we need to add another layer in the topology.

This is a goal of the JIRA. You should be able to add another layer without 
having to modify scheduler code after this patch is committed. I'm not sure 
that we could make arbitrary topology pluggable without scheduler change. 
However, it should work for common class of topologies, e.g., hierarchical 
network topology.


> Make locatlity in YARN's container assignment and task scheduling pluggable 
> for other deployment topology
> -
>
> Key: YARN-18
> URL: https://issues.apache.org/jira/browse/YARN-18
> Project: Hadoop YARN
>  Issue Type: New Feature
>Affects Versions: 2.0.3-alpha
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: 
> HADOOP-8474-ContainerAssignmentTaskScheduling-pluggable.patch, 
> MAPREDUCE-4309.patch, MAPREDUCE-4309-v2.patch, MAPREDUCE-4309-v3.patch, 
> MAPREDUCE-4309-v4.patch, MAPREDUCE-4309-v5.patch, MAPREDUCE-4309-v6.patch, 
> MAPREDUCE-4309-v7.patch, YARN-18.patch, YARN-18-v2.patch, YARN-18-v3.1.patch, 
> YARN-18-v3.2.patch, YARN-18-v3.patch, YARN-18-v4.1.patch, YARN-18-v4.2.patch, 
> YARN-18-v4.3.patch, YARN-18-v4.patch, YARN-18-v5.1.patch, YARN-18-v5.patch
>
>
> There are several classes in YARN’s container assignment and task scheduling 
> algorithms that relate to data locality which were updated to give preference 
> to running a container on other locality besides node-local and rack-local 
> (like nodegroup-local). This propose to make these data structure/algorithms 
> pluggable, like: SchedulerNode, RMNodeImpl, etc. The inner class 
> ScheduledRequests was made a package level class to it would be easier to 
> create a subclass, ScheduledRequestsWithNodeGroup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration on NM

2013-04-01 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

bq. The NM is the node controller and responsible for managing the node 
resources.

There is actually no/zero code in NM itself (other than picking up resource 
config and report to RM) so far that cares about how much resource the node 
has. NM is responsible for managing the containers that scheduler assigns to 
it. It does not need to know how much resource it really has. Only scheduler 
needs to care about how much resource a node has. Making NM oblivious to the 
total resource it has obviate the unnecessary split brain situation.

bq. if it had more work to schedule and there were free resources then it would 
have already done so

The point was about scheduling latency. There could be a window of OLTP surge 
where the nodes have free resource and large job is submitted. OLTP workload is 
real time. Also contacting NM to reconfig resource node by node is inefficient 
and wasteful.

bq. the currently running tasks will hamper the HBase case even if future work 
is not scheduled.

This is orthogonal to scheduling, which this JIRA is about. Management agent 
can suspend/move/kill the containers if necessary.

bq. What we need is some way to allow HBase higher priority for system 
resources so that tasks do not impede HBase perf. Something like YARN-443.

OS scheduling priority works with CPU and to a degree IO (depending on the IO 
scheduler) but not memory, which is critical for many OLTP workload.

bq. This JIRA is part of HADOOP-9165 but that one has been resolved as invalid.

I don't know what you are trying to say. HADOOP-9165 is resolved due to wrong 
JIRA component. It could be moved to YARN or MAPREDUCE, but the creator chose 
to file new ones instead.

> Dynamic resource configuration on NM
> 
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (YARN-291) Dynamic resource configuration

2013-04-01 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-291:
-

Summary: Dynamic resource configuration  (was: Dynamic resource 
configuration on NM)

bq. I have concerns on changing the available NMs capacity directly in the NMs.

You probably haven't looked at the patch (YARN-311), which actually changes the 
global resource view of RM directly. NMs themselves are untouched. Changed 
title to reduce further confusion.

bq. This would complicate significantly allocation changes/re-computation of 
resources for running applications.

How so? In fact there is no need to change anything in NM, AFAICT. The existing 
containers can either be left alone until completion or suspended/moved/killed 
by a management agent.

bq. An (unmanaged) AM requests unmanaged resources from the RM (a new flag in a 
resource request)...

First this requires modifying existing applications to support the new request 
API, which has significant issues (best-effort, timeout) without preemption.

Second, RM scheduling is fundamentally high latency and best-effort by design 
at container granularity. It's not suitable for low latency workload with high 
memory utilization via fine grained (page-level) memory sharing. Using the 
HBase example again, you'll need to request an "unmanaged resource" with a 
container size of at least the peak memory of the region server JVM, which 
significantly under utilize memory resource, as peak memory size is 
significantly higher than average memory usage.

Note, the existing simple patch doesn't change existing API/protocols. It works 
with any existing unmodified OLTP applications and can achieve maximum resource 
utilization with mainstream hypervisors.



> Dynamic resource configuration
> --
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-291) Dynamic resource configuration

2013-04-01 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-291:
--

bq. Changes in NM capacity triggered from outside of the regular scheduling 
would unbalance existing distribution of allocations potentially triggering 
preemption. You'd need to handle this specially in the RM/scheduler to handle 
such scenarios.

The existing mechanism would/should work by simply killing off containers when 
necessary. The container fault tolerant mechanism would/should take care of the 
rest (including preemption). We can do a better job to differentiate the faults 
induced by preemption, which would be straight-forward if we expose a 
preemption API, when we get around to implement the preemption feature. If 
container suspend/resume API is implemented, we can do that as well.

bq. It depends how you design you AM that handles unmanaged containers. You 
could request several small resources on peak and then release them as you 
don't need them.

This requires many missing features in RM in order to work properly: finer 
grain OS/application resource metrics, application priority, conflict 
arbitration, preemption and related security features (mostly related 
authorization stuff). This approach is also problematic to support coexistence 
of different instances/versions of YARN on the same physical cluster.

bq. It is adding a new one, that is a change.

The change doesn't affect existing/future YARN applications. The management 
protocol allows existing/future cluster schedulers to expose appropriate 
resource views to (multiple instances/versions of) YARN in a straight forward 
manner.

IMO, the solution is orthogonal and to what you have proposed. It allows any 
existing non-YARN applications to efficiently coexist with YARN applications 
without having to write a special AM using "unmanaged resource" API, with no 
new features "required" in YARN now. In other words, it is a simple solution to 
allow YARN to coexist with other schedulers (including other instances/versions 
of YARN) that already have the features people use/want.

I'd be interested in hearing cases, where our approach "breaks" YARN 
applications in any way.



> Dynamic resource configuration
> --
>
> Key: YARN-291
> URL: https://issues.apache.org/jira/browse/YARN-291
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: nodemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
>  Labels: features
> Attachments: Elastic Resources for YARN-v0.2.pdf, 
> YARN-291-AddClientRMProtocolToSetNodeResource-03.patch, 
> YARN-291-all-v1.patch, YARN-291-core-HeartBeatAndScheduler-01.patch, 
> YARN-291-JMXInterfaceOnNM-02.patch, 
> YARN-291-OnlyUpdateWhenResourceChange-01-fix.patch, 
> YARN-291-YARNClientCommandline-04.patch
>
>
> The current Hadoop YARN resource management logic assumes per node resource 
> is static during the lifetime of the NM process. Allowing run-time 
> configuration on per node resource will give us finer granularity of resource 
> elasticity. This allows Hadoop workloads to coexist with other workloads on 
> the same hardware efficiently, whether or not the environment is virtualized. 
> About more background and design details, please refer: HADOOP-9165.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-1042) add ability to specify affinity/anti-affinity in container requests

2013-09-10 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-1042:
---

bq. BTW, it seems the effort is more on application side. Do we think it is 
better to move to MAPREDUCE project?

Although you can do a lot at the app side with container filtering, protocol 
and scheduler support will make it more efficient. I guess the intention of the 
jira is more for the latter, that affinity support should be app independent.

> add ability to specify affinity/anti-affinity in container requests
> ---
>
> Key: YARN-1042
> URL: https://issues.apache.org/jira/browse/YARN-1042
> Project: Hadoop YARN
>  Issue Type: New Feature
>  Components: resourcemanager
>Affects Versions: 3.0.0
>Reporter: Steve Loughran
>Assignee: Junping Du
> Attachments: YARN-1042-demo.patch
>
>
> container requests to the AM should be able to request anti-affinity to 
> ensure that things like Region Servers don't come up on the same failure 
> zones. 
> Similarly, you may be able to want to specify affinity to same host or rack 
> without specifying which specific host/rack. Example: bringing up a small 
> giraph cluster in a large YARN cluster would benefit from having the 
> processes in the same rack purely for bandwidth reasons.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-09-12 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

I think the v6.2 patch looks reasonable. If there is no further objections, I 
plan to commit it over the weekend. 

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v2.patch, YARN-311-v3.patch, 
> YARN-311-v4.patch, YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (YARN-938) Hadoop 2 benchmarking

2013-10-01 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-938:
--

Is jvm reuse (set to -1) turned on for Hadoop 1 runs? Unfortunately, container 
reuse is not in MRv2 yet (MAPREDUCE-3902 appear to be stalled). It'd be 
interesting to see numbers from Tez, which does have container reuse, as well 
for comparison.

> Hadoop 2 benchmarking 
> --
>
> Key: YARN-938
> URL: https://issues.apache.org/jira/browse/YARN-938
> Project: Hadoop YARN
>  Issue Type: Task
>Reporter: Mayank Bansal
>Assignee: Mayank Bansal
> Attachments: Hadoop-benchmarking-2.x-vs-1.x.xls
>
>
> I am running the benchmarks on Hadoop 2 and will update the results soon.
> Thanks,
> Mayank



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-7) Add support for DistributedShell to ask for CPUs along with memory

2013-10-09 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-7:


The latest patch lgtm. +1. 

> Add support for DistributedShell to ask for CPUs along with memory
> --
>
> Key: YARN-7
> URL: https://issues.apache.org/jira/browse/YARN-7
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 2.1.1-beta
>Reporter: Arun C Murthy
>Assignee: Junping Du
>  Labels: patch
> Attachments: YARN-7.patch, YARN-7-v2.patch, YARN-7-v3.patch, 
> YARN-7-v4.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-24 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

v9 patch lgtm. +1.  For the record, we've discussed the changes with Vinod et 
al offline. The consensus is that change is reasonable, low risk and fulfill a 
useful use case (resource arbitration between different resource pools managed 
by YARN or other (versions of) systems including but not limited to Hadoop 1.x 
on the same physical hardware).

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v2.patch, YARN-311-v3.patch, 
> YARN-311-v4.patch, YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, 
> YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-24 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

[~djp]: Upon second thought, I think we should improve the setCapacity API to 
include scheduler hints/options (to deal with running containers when node 
capacity is set lower than the used capacity on the node) in this JIRA, in case 
it gets lost through the crack later.

I recall the options as FINISH_RUNNING, TIMEOUT_RUNNING, TERMINATE_RUNNING. 

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v2.patch, YARN-311-v3.patch, 
> YARN-311-v4.patch, YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, 
> YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-24 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

We can probably infer the option by an overcommit timeout argument < 0: keep 
running; == 0: terminate; > 0 timeout:
{code}
void setTotalCapacity(Resource resource, int overCommitTimeoutMillis);
{code}

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v2.patch, YARN-311-v3.patch, 
> YARN-311-v4.patch, YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, 
> YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-24 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

bq. Other policies/options will be addressed in YARN-999

Agreed. That was the consensus (default policy is to keep containers running 
until they finish) as well.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v2.patch, YARN-311-v3.patch, 
> YARN-311-v4.patch, YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, 
> YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-28 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

I share the same concern with Bikas with the RMNode lock inside the static util 
method. It doesn't appear to be necessary, as long as both 
RMNodeImpl#totalCapacity and overCommitTimeout is volatile (the latter is not 
in the patch), which are simply accessed via get/set (no dependent op like 
increment). The lock could lead to deadlocks latter (after new code/refactor) 
even if it appears to be fine now.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v10.patch, YARN-311-v1.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

Junping: your [previous 
comment|https://issues.apache.org/jira/browse/YARN-311?focusedCommentId=13804690&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13804690]
 actually convinced me that being able independently set overCommitTimeout is a 
reasonable use case and that the condition (resource1, overCommitTimeout2) is a 
reasonable behavior (the later timeout takes effect), given the benefits. 

I was concerned that
# Requiring RMNode lock at usage site is brittle and error-prone.
# Extra RMNode lock per heartbeat could be expensive.

We can even preserve the consistency without locks by using a ResourceConfig 
object which holds the resource and timeout together.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v10.patch, YARN-311-v1.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

IMO, using an immutable ResourceOption object is cleaner than mess with 
read/write locks, which has high constant overhead even when the lock is not 
contended.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v10.patch, YARN-311-v1.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

With ResourceOption, you don't need a separate get/setOverCommitTimeout method. 
You only need one pair of methods for all future resource options (prioritize 
certain containers (last to kill) in over commit situations etc.)
{code}
private volatile ResourceOption totalCapacity;
...
void setTotalCapacity(ResourceOption ro);
void ResourceOption getTotalCapacity();
{code}

{{setTotalCapacity}} is now idempotent. Seems simpler to me.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v10.patch, YARN-311-v1.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-10-29 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

bq. How it sounds to you?

Sounds good to me :), assuming you'll add getResourceOption as well.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v10.patch, YARN-311-v1.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-11-01 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

v12 patch lgtm. +1. Will commit soon.

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v10.patch, 
> YARN-311-v11.patch, YARN-311-v12.patch, YARN-311-v12b.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-11-04 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-311:
--

[~djp]: Unfortunately YARN-1343 got in before I tried to merge the patch. Now 
the patch won't compile due to the old RMNodeImpl ctor usage in 
TestRMNodeTransition. Can you rebase the patch?

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-311-v1.patch, YARN-311-v10.patch, 
> YARN-311-v11.patch, YARN-311-v12.patch, YARN-311-v12b.patch, 
> YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, YARN-311-v4.patch, 
> YARN-311-v5.patch, YARN-311-v6.1.patch, YARN-311-v6.2.patch, 
> YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (YARN-311) Dynamic node resource configuration: core scheduler changes

2013-11-05 Thread Luke Lu (JIRA)

 [ 
https://issues.apache.org/jira/browse/YARN-311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Lu updated YARN-311:
-

Fix Version/s: 2.3.0
 Hadoop Flags: Reviewed

Committed to trunk and branch-2. Thanks Junping for the patch!

> Dynamic node resource configuration: core scheduler changes
> ---
>
> Key: YARN-311
> URL: https://issues.apache.org/jira/browse/YARN-311
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: resourcemanager, scheduler
>Reporter: Junping Du
>Assignee: Junping Du
> Fix For: 2.3.0
>
> Attachments: YARN-311-v1.patch, YARN-311-v10.patch, 
> YARN-311-v11.patch, YARN-311-v12.patch, YARN-311-v12b.patch, 
> YARN-311-v13.patch, YARN-311-v2.patch, YARN-311-v3.patch, YARN-311-v4.patch, 
> YARN-311-v4.patch, YARN-311-v5.patch, YARN-311-v6.1.patch, 
> YARN-311-v6.2.patch, YARN-311-v6.patch, YARN-311-v7.patch, YARN-311-v8.patch, 
> YARN-311-v9.patch
>
>
> As the first step, we go for resource change on RM side and expose admin APIs 
> (admin protocol, CLI, REST and JMX API) later. In this jira, we will only 
> contain changes in scheduler. 
> The flow to update node's resource and awareness in resource scheduling is: 
> 1. Resource update is through admin API to RM and take effect on RMNodeImpl.
> 2. When next NM heartbeat for updating status comes, the RMNode's resource 
> change will be aware and the delta resource is added to schedulerNode's 
> availableResource before actual scheduling happens.
> 3. Scheduler do resource allocation according to new availableResource in 
> SchedulerNode.
> For more design details, please refer proposal and discussions in parent 
> JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-938) Hadoop 2 benchmarking

2013-11-14 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-938:
--

Yes, it'd be great if [~mayank_bansal] can share the configs and command lines 
to run the benchmarks, so others can reproduce the results.

> Hadoop 2 benchmarking 
> --
>
> Key: YARN-938
> URL: https://issues.apache.org/jira/browse/YARN-938
> Project: Hadoop YARN
>  Issue Type: Task
>Reporter: Mayank Bansal
>Assignee: Mayank Bansal
> Attachments: Hadoop-benchmarking-2.x-vs-1.x-1.xls, 
> Hadoop-benchmarking-2.x-vs-1.x.xls
>
>
> I am running the benchmarks on Hadoop 2 and will update the results soon.
> Thanks,
> Mayank



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-312) Add updateNodeResource in ResourceManagerAdministrationProtocol

2013-11-15 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-312:
--

v5.1 looks reasonable (the verbosity of pb impl stuff still boggles my mind). 
+1.

> Add updateNodeResource in ResourceManagerAdministrationProtocol
> ---
>
> Key: YARN-312
> URL: https://issues.apache.org/jira/browse/YARN-312
> Project: Hadoop YARN
>  Issue Type: Sub-task
>  Components: api
>Affects Versions: 2.2.0
>Reporter: Junping Du
>Assignee: Junping Du
> Attachments: YARN-312-v1.patch, YARN-312-v2.patch, YARN-312-v3.patch, 
> YARN-312-v4.1.patch, YARN-312-v4.patch, YARN-312-v5.1.patch, YARN-312-v5.patch
>
>
> Add fundamental RPC (ResourceManagerAdministrationProtocol) to support node's 
> resource change. For design detail, please refer parent JIRA: YARN-291.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (YARN-938) Hadoop 2 benchmarking

2013-12-18 Thread Luke Lu (JIRA)

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

Luke Lu commented on YARN-938:
--

Thanks for the results Jeff!. It's interesting to note that the best terasort 
throughput in your configuration is ~140MB/s (mrv1, 96MB/s for mrv2) per 
physical host for a 8TB data set, compared with ~23MB/s (1.x, 21MB/s for 2.2) 
per physical host in Mayank's results for a 1TB (?) data set. Obviously 10Gb 
networking and 12 15K RPM SAS disks per host helped. OTOH, I'd expect Mayank's 
results to be a lot faster as the data set fits into the 260 slave host cluster 
memory (buffer cache).

It'll be interesting to show the Apache 1.2.1 results for Jeff's configuration 
as well, so it's more comparable to Mayank's results, as I suspect that CDH 
mrv1 have more optimizations than Apache.

> Hadoop 2 benchmarking 
> --
>
> Key: YARN-938
> URL: https://issues.apache.org/jira/browse/YARN-938
> Project: Hadoop YARN
>  Issue Type: Task
>Reporter: Mayank Bansal
>Assignee: Mayank Bansal
> Attachments: Hadoop-benchmarking-2.x-vs-1.x-1.xls, 
> Hadoop-benchmarking-2.x-vs-1.x.xls, cdh500beta1_cpu_util.jpg, 
> cdh500beta1_mr1_mr2.xlsx
>
>
> I am running the benchmarks on Hadoop 2 and will update the results soon.
> Thanks,
> Mayank



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)