[jira] [Commented] (TEZ-1488) Implement HashComparator in TezBytesComparator

2014-08-29 Thread Siddharth Seth (JIRA)

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

Siddharth Seth commented on TEZ-1488:
-

+1, renames etc look good. (the patch doesn't apply though)
I think you missed the unit test file in the last patch.

> Implement HashComparator in TezBytesComparator
> -
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1516) Log transfer rate for Broadcast Fetch

2014-08-29 Thread Rajesh Balamohan (JIRA)

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

Rajesh Balamohan commented on TEZ-1516:
---

+1 
very minor comments
- HttpConnection.connect(connecionTimeout) already logs the time taken to 
connect to specific URL. Should the connect time logging in 
broadcast/scatter-gather fetcher be removed?
- In ShuffleScheduler, I believe you meant to set "double mbs = (double) 
totalBytesShuffledTillNow / (1024 * 1024);"
- In ShuffleScheduler, average transfer time could be slightly misleading as 
there would be time when fetchers are not pulling data (could be due to lack of 
events or blocked on merge). 

> Log transfer rate for Broadcast Fetch
> -
>
> Key: TEZ-1516
> URL: https://issues.apache.org/jira/browse/TEZ-1516
> Project: Apache Tez
>  Issue Type: Improvement
>Reporter: Siddharth Seth
>Assignee: Siddharth Seth
> Attachments: TEZ-1516.1.txt
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1508) Log a warning if Xmx is configured incorrectly.

2014-08-29 Thread Jonathan Eagles (JIRA)

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

Jonathan Eagles updated TEZ-1508:
-

Attachment: TEZ-1508-v1.patch

> Log a warning if Xmx is configured incorrectly. 
> 
>
> Key: TEZ-1508
> URL: https://issues.apache.org/jira/browse/TEZ-1508
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Hitesh Shah
>Assignee: Jonathan Eagles
>  Labels: newbie
> Attachments: TEZ-1508-v1.patch
>
>
> Users may incorrectly configure Xmx for tasks. Xmx should in most cases be 
> less than the container/task size given that YARN will kill containers that 
> exceed the memory limits. 
> Given that we already parse the java opts to detect Xmx in the java opts, it 
> should be trivial to add a check if the value is valid and log a warning if 
> not ( for both the Tez AM and the vertices in a DAG).  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1516) Log transfer rate for Broadcast Fetch

2014-08-29 Thread Siddharth Seth (JIRA)

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

Siddharth Seth updated TEZ-1516:


Attachment: TEZ-1516.2.txt

Thanks for the review.
- Removed the fetcher changes.
- Fixed to double
- Have changed the log message to indicate what is being printed 
(CumulativeDataFetched/TimeSinceInputStarted)


> Log transfer rate for Broadcast Fetch
> -
>
> Key: TEZ-1516
> URL: https://issues.apache.org/jira/browse/TEZ-1516
> Project: Apache Tez
>  Issue Type: Improvement
>Reporter: Siddharth Seth
>Assignee: Siddharth Seth
> Attachments: TEZ-1516.1.txt, TEZ-1516.2.txt
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TEZ-1522) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Rajesh Balamohan (JIRA)
Rajesh Balamohan created TEZ-1522:
-

 Summary: Enhance natural order scheduler to prevent downstream 
vertex from monopolizing the cluster resources
 Key: TEZ-1522
 URL: https://issues.apache.org/jira/browse/TEZ-1522
 Project: Apache Tez
  Issue Type: Bug
Reporter: Rajesh Balamohan


M2 M7
\  /
(sg) \/
   R3/ (b)
\   /
 (b) \ /
  \   /
M5
|
R6 

Plz refer to the attachment (task runtime SVG). In this case, M5 got scheduled 
much earlier than R3 (green color in the diagram) and retained lots of 
containers.
R3 got less containers to work with. 

Attaching the output from the status monitor when the job ran;  Map_5 has taken 
up almost all of cluster resource, whereas Reducer_3 got fraction of the 
capacity.

Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000   
Reducer_6: 0/1
Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000   
Reducer_6: 0/1
Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000   
Reducer_6: 0/1

Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 14(+7)/8000  
Reducer_6: 0/1
Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 63(+14)/8000 
Reducer_6: 0/1
Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
159(+22)/8000Reducer_6: 0/1
Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
308(+29)/8000Reducer_6: 0/1
...


Creating this JIRA as a placeholder for scheduler enhancement. One possibililty 
could be to
schedule lesser number of tasks in downstream vertices, based on the 
information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Moved] (TEZ-1523) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Rajesh Balamohan (JIRA)

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

Rajesh Balamohan moved HIVE-7910 to TEZ-1523:
-

Key: TEZ-1523  (was: HIVE-7910)
Project: Apache Tez  (was: Hive)

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1523
> URL: https://issues.apache.org/jira/browse/TEZ-1523
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>  Labels: performance
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG).  In this case, M5 got 
> scheduled much earlier than R3 (R3 is mentioned as green color in the 
> diagram) and retained lots of containers.  R3 got less containers to work 
> with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all containers, whereas Reducer_3 got fraction of the 
> capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (TEZ-1523) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Rajesh Balamohan (JIRA)

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

Rajesh Balamohan reassigned TEZ-1523:
-

Assignee: Rajesh Balamohan

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1523
> URL: https://issues.apache.org/jira/browse/TEZ-1523
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Assignee: Rajesh Balamohan
>  Labels: performance
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG).  In this case, M5 got 
> scheduled much earlier than R3 (R3 is mentioned as green color in the 
> diagram) and retained lots of containers.  R3 got less containers to work 
> with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all containers, whereas Reducer_3 got fraction of the 
> capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1523) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Rajesh Balamohan (JIRA)

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

Rajesh Balamohan updated TEZ-1523:
--

Assignee: (was: Rajesh Balamohan)

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1523
> URL: https://issues.apache.org/jira/browse/TEZ-1523
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>  Labels: performance
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG).  In this case, M5 got 
> scheduled much earlier than R3 (R3 is mentioned as green color in the 
> diagram) and retained lots of containers.  R3 got less containers to work 
> with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all containers, whereas Reducer_3 got fraction of the 
> capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1522) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Rajesh Balamohan (JIRA)

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

Rajesh Balamohan updated TEZ-1522:
--

Attachment: task_runtime.svg

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1521) VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang updated TEZ-1521:


Description: The TezEvents may be added to pendingTaskEvents when task is 
not scheduled. In this case, 

> VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log 
> ---
>
> Key: TEZ-1521
> URL: https://issues.apache.org/jira/browse/TEZ-1521
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Jeff Zhang
>Assignee: Jeff Zhang
>
> The TezEvents may be added to pendingTaskEvents when task is not scheduled. 
> In this case, 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1521) VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang updated TEZ-1521:


Description: The TezEvents may be added to pendingTaskEvents when task is 
not scheduled. In this case, VertexDataMovementEventsGeneratedEvent will been 
logged twice.  (was: The TezEvents may be added to pendingTaskEvents when task 
is not scheduled. In this case, )

> VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log 
> ---
>
> Key: TEZ-1521
> URL: https://issues.apache.org/jira/browse/TEZ-1521
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Jeff Zhang
>Assignee: Jeff Zhang
>
> The TezEvents may be added to pendingTaskEvents when task is not scheduled. 
> In this case, VertexDataMovementEventsGeneratedEvent will been logged twice.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1521) VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang updated TEZ-1521:


Description: The TezEvents may be added to pendingTaskEvents and route 
again later when task is not scheduled. In this case, 
VertexDataMovementEventsGeneratedEvent will been logged twice.  (was: The 
TezEvents may be added to pendingTaskEvents when task is not scheduled. In this 
case, VertexDataMovementEventsGeneratedEvent will been logged twice.)

> VertexDataMovementEventsGeneratedEvent may be logged twice in recovery log 
> ---
>
> Key: TEZ-1521
> URL: https://issues.apache.org/jira/browse/TEZ-1521
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Jeff Zhang
>Assignee: Jeff Zhang
>
> The TezEvents may be added to pendingTaskEvents and route again later when 
> task is not scheduled. In this case, VertexDataMovementEventsGeneratedEvent 
> will been logged twice.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1345) Add checks to guarantee all init events are written to recovery to consider vertex initialized

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang commented on TEZ-1345:
-

[~bikassaha][~hitesh]  I think maybe we could add the inputName to the init 
events then when we recover we could know which initializer need to call again 
if we don't find its corresponding init event in recovery log.

> Add checks to guarantee all init events are written to recovery to consider 
> vertex initialized
> --
>
> Key: TEZ-1345
> URL: https://issues.apache.org/jira/browse/TEZ-1345
> Project: Apache Tez
>  Issue Type: Sub-task
>Reporter: Hitesh Shah
>Assignee: Jeff Zhang
> Attachments: Tez-1345-2.patch, Tez-1345.patch
>
>
> Related to issue discovered in TEZ-1033



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (TEZ-1345) Add checks to guarantee all init events are written to recovery to consider vertex initialized

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang edited comment on TEZ-1345 at 8/29/14 1:10 PM:
--

[~bikassaha], [~hitesh]  I think maybe we could add the inputName to the init 
events then when we recover we could know which initializer need to call again 
if we don't find its corresponding init event in recovery log.


was (Author: zjffdu):
[~bikassaha][~hitesh]  I think maybe we could add the inputName to the init 
events then when we recover we could know which initializer need to call again 
if we don't find its corresponding init event in recovery log.

> Add checks to guarantee all init events are written to recovery to consider 
> vertex initialized
> --
>
> Key: TEZ-1345
> URL: https://issues.apache.org/jira/browse/TEZ-1345
> Project: Apache Tez
>  Issue Type: Sub-task
>Reporter: Hitesh Shah
>Assignee: Jeff Zhang
> Attachments: Tez-1345-2.patch, Tez-1345.patch
>
>
> Related to issue discovered in TEZ-1033



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1476) DAGClient waitForCompletion output is confusing

2014-08-29 Thread Jeff Zhang (JIRA)

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

Jeff Zhang commented on TEZ-1476:
-

[~seth.siddha...@gmail.com], [~jeagles] I notice that after this patch the 
vertex status is printed.
2 thoughts:
* Should we add GetVertexStatus to StatusGetOpts as an option for users to 
decide whether to print VertexStatus. Because it will print lots of info if dag 
has many vertices. 
* If VertexStatus is printed, could we add indention in front of VertexStatus 
to differentiate DAGStatus. 


> DAGClient waitForCompletion output is confusing
> ---
>
> Key: TEZ-1476
> URL: https://issues.apache.org/jira/browse/TEZ-1476
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Siddharth Seth
>Assignee: Jonathan Eagles
>Priority: Critical
> Fix For: 0.5.1
>
> Attachments: TEZ-1476-v1.patch, TEZ-1476-v2.patch
>
>
> When a DAG is submitted - "2014-08-21 16:38:06,153 INFO  [main] 
> rpc.DAGClientRPCImpl (DAGClientRPCImpl.java:log(428)) - Waiting for DAG to 
> start running" is logged.
> After this, nothing seems to get logged till the first task completes.
> It would be useful to log when the state changes to RUNNING - as well as at 
> least one line stating the number of tasks, etc (0% progress line). Also, 
> progress could be logged every few seconds irrespective of whether it has 
> changed or not to give the impression that the job has not just gotten stuck.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1522) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Siddharth Seth (JIRA)

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

Siddharth Seth updated TEZ-1522:


Priority: Blocker  (was: Major)
Target Version/s: 0.5.1

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Blocker
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1522) Enhance natural order scheduler to prevent downstream vertex from monopolizing the cluster resources

2014-08-29 Thread Siddharth Seth (JIRA)

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

Siddharth Seth commented on TEZ-1522:
-

This is also critical for local mode, especially since it does not support 
pre-emption.

The semantics for min/max fraction used in ShuffleScheduler would be a good 
start, but keeping in mind all source tasks rather than just the ones from 
ShuffleEdges.
At a later point, this could make use of available cluster capacity to make 
better decisions.

> Enhance natural order scheduler to prevent downstream vertex from 
> monopolizing the cluster resources
> 
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Blocker
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1522) Slow start settings can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha updated TEZ-1522:


Summary: Slow start settings can result in out of order execution and 
slowdown of upstream work  (was: Enhance natural order scheduler to prevent 
downstream vertex from monopolizing the cluster resources)

> Slow start settings can result in out of order execution and slowdown of 
> upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Blocker
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1508) Log a warning if Xmx is configured incorrectly.

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1508:
--

Comments:
   - >= container.size should be a good initial check. Folks may end up setting 
-Xmx7G for a 8g container which would work but will end up logging a lot of 
warns. Maybe, we can just augment the log to say recommended value is heap 
fraction times container.size when we find the Xmx to be set to larger than the 
container size.
   - TezClientUtils seems fine. 
   - Pattern - would be good to optimize its usage.
   - The only other nit I have is regarding where this warning is logged for 
vertices that are configured badly? With this patch, this would be logged 
somewhere in the AM where the container launch context is constructed. Would 
this be more useful if it was caught and logged at DAG submission?

> Log a warning if Xmx is configured incorrectly. 
> 
>
> Key: TEZ-1508
> URL: https://issues.apache.org/jira/browse/TEZ-1508
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Hitesh Shah
>Assignee: Jonathan Eagles
>  Labels: newbie
> Attachments: TEZ-1508-v1.patch
>
>
> Users may incorrectly configure Xmx for tasks. Xmx should in most cases be 
> less than the container/task size given that YARN will kill containers that 
> exceed the memory limits. 
> Given that we already parse the java opts to detect Xmx in the java opts, it 
> should be trivial to add a check if the value is valid and log a warning if 
> not ( for both the Tez AM and the vertices in a DAG).  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1488) Implement HashComparator in TezBytesComparator

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1488:
-

Attachment: TEZ-1488.3.patch

Patch includes renames - will only apply with {{git apply -v -p0 
TEZ-1488.3.patch}}

> Implement HashComparator in TezBytesComparator
> -
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch, TEZ-1488.3.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (TEZ-1488) Rename HashComparator to ProxyComparator and implement in TezBytesComparator

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V resolved TEZ-1488.
--

Resolution: Fixed

commit bfba46724d043dce22e0b313782b0c9e30bc2094
Author: Gopal V 
Date:   Fri Aug 29 11:26:36 2014 -0700

TEZ-1488. Rename HashComparator to ProxyComparator and implement in 
TezBytesComparator. (gopalv)

> Rename HashComparator to ProxyComparator and implement in TezBytesComparator
> 
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch, TEZ-1488.3.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1488) Rename HashComparator to ProxyComparator and implement in TezBytesComparator

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1488:
-

Summary: Rename HashComparator to ProxyComparator and implement in 
TezBytesComparator  (was: Implement HashComparator in 
TezBytesComparator)

> Rename HashComparator to ProxyComparator and implement in TezBytesComparator
> 
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Fix For: 0.6.0
>
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch, TEZ-1488.3.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1488) Rename HashComparator to ProxyComparator and implement in TezBytesComparator

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1488:
-

Fix Version/s: 0.6.0

> Rename HashComparator to ProxyComparator and implement in TezBytesComparator
> 
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Fix For: 0.6.0
>
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch, TEZ-1488.3.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1488) Rename HashComparator to ProxyComparator and implement in TezBytesComparator

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1488:
-

Attachment: TEZ-1488.4.patch

> Rename HashComparator to ProxyComparator and implement in TezBytesComparator
> 
>
> Key: TEZ-1488
> URL: https://issues.apache.org/jira/browse/TEZ-1488
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Fix For: 0.6.0
>
> Attachments: TEZ-1488.1.patch, TEZ-1488.2.patch, TEZ-1488.3.patch, 
> TEZ-1488.4.patch
>
>
> Speed up TezBytesComparator by ~20% when used in PipelinedSorter.
> This moves part of the key comparator into the partition comparator, which is 
> a single register operation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1519) TezTaskRunner should not initialize TezConfiguration in TezChild

2014-08-29 Thread Chen He (JIRA)

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

Chen He commented on TEZ-1519:
--

Hi [~hitesh], Local Mode needs some configurations to be passed from 
DAGAppMaster's AppContext to TezTaskRunner, such as 
TezConfiguration.TEZ_LOCAL_MODE.

> TezTaskRunner should not initialize TezConfiguration in TezChild
> 
>
> Key: TEZ-1519
> URL: https://issues.apache.org/jira/browse/TEZ-1519
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Hitesh Shah
>Priority: Blocker
>
> Should be doing a new Configuration and augmenting with the config data from 
> tez-conf.pb. 
> Need confirmation on tez-conf.pb being localized for all containers. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Gopal V (JIRA)
Gopal V created TEZ-1524:


 Summary: getDAGStatus seems to fork out the entire JVM
 Key: TEZ-1524
 URL: https://issues.apache.org/jira/browse/TEZ-1524
 Project: Apache Tez
  Issue Type: Bug
Affects Versions: 0.6.0
Reporter: Gopal V
 Fix For: 0.6.0


Tracked down a consistent fork() call to

{code}
at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at 
org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
at 
org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
at 
org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
at 
org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
at 
org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
at 
org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
at 
org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
at 
org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
{code}

[~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1519) TezTaskRunner should not initialize TezConfiguration in TezChild

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1519:
--

For local mode, I would assume that regardless of using TezConfiguration or 
not, the configs cannot be passed to the task without some special code to add 
the new settings. Doing a new TezConfiguation() loads tez-site.xml which I am 
assuming is not modified in local mode.  

> TezTaskRunner should not initialize TezConfiguration in TezChild
> 
>
> Key: TEZ-1519
> URL: https://issues.apache.org/jira/browse/TEZ-1519
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Hitesh Shah
>Priority: Blocker
>
> Should be doing a new Configuration and augmenting with the config data from 
> tez-conf.pb. 
> Need confirmation on tez-conf.pb being localized for all containers. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1524:
--

UGI should be using the Groups class that does caching internally. 

Can you look for these logs in debug mode ( looking at 2.6.0-SNAPSHOT code 
though ):
  - "Returning cached groups for" ( implies obtained from cache )
  - "Returning fetched groups" 



> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
> Fix For: 0.6.0
>
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1524:
--

Nevermind, ran a simple job on a single node cluster. The AM logs show "fetched 
groups" logged once followed by "cached groups". 

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
> Fix For: 0.6.0
>
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1524:
--

[~gopalv] Could you add more details as this points to a bug in UGI if it is 
indeed forking on each ask for groupNames. 

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.6.0
>Reporter: Gopal V
> Fix For: 0.6.0
>
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah updated TEZ-1524:
-

Affects Version/s: (was: 0.6.0)
   0.5.0

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V commented on TEZ-1524:
--

The cache does not cache misses.

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah updated TEZ-1524:
-

Fix Version/s: (was: 0.6.0)

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V commented on TEZ-1524:
--

{code}
2014-08-29 09:27:12,602 WARN [IPC Server handler 0 on 59734] 
org.apache.hadoop.security.ShellBasedUnixGroupsMapping: got exception trying to 
get groups for user foo
org.apache.hadoop.util.Shell$ExitCodeException: id: foo: No such user
...
2014-08-29 09:27:12,602 WARN [IPC Server handler 0 on 59734] 
org.apache.hadoop.security.UserGroupInformation: No groups available for user
{code}

I will submit a patch.



> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1524:
-

Attachment: TEZ-1524.1.patch

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
> Attachments: TEZ-1524.1.patch
>
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1524) getDAGStatus seems to fork out the entire JVM

2014-08-29 Thread Hitesh Shah (JIRA)

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

Hitesh Shah commented on TEZ-1524:
--

Is this in a non-secure cluster with acls disabled? We might be able to work 
around this to invoking getGroups only when needed. It wont prevent calls for 
non-existent users but should help a bit. 

> getDAGStatus seems to fork out the entire JVM
> -
>
> Key: TEZ-1524
> URL: https://issues.apache.org/jira/browse/TEZ-1524
> Project: Apache Tez
>  Issue Type: Bug
>Affects Versions: 0.5.0
>Reporter: Gopal V
> Attachments: TEZ-1524.1.patch
>
>
> Tracked down a consistent fork() call to
> {code}
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
>   at org.apache.hadoop.util.Shell.run(Shell.java:418)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:83)
>   at 
> org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:52)
>   at 
> org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.getGroups(JniBasedUnixGroupsMappingWithFallback.java:50)
>   at org.apache.hadoop.security.Groups.getGroups(Groups.java:139)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:1409)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getRPCUserGroups(DAGClientAMProtocolBlockingPBServerImpl.java:75)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.getDAGStatus(DAGClientAMProtocolBlockingPBServerImpl.java:102)
>   at 
> org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:7375)
> {code}
> [~hitesh] - would it make sense to cache this at all?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1522) Slow start settings can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Siddharth Seth (JIRA)

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

Siddharth Seth commented on TEZ-1522:
-

[~bikassaha] - I don't think slow start settings are the problem here. 
Scheduling the ShuffleVertexManager does not account for other incoming edges, 
which may still have pending tasks.

> Slow start settings can result in out of order execution and slowdown of 
> upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Blocker
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TEZ-1525) BroadcastLoadGen testcase

2014-08-29 Thread Gopal V (JIRA)
Gopal V created TEZ-1525:


 Summary: BroadcastLoadGen testcase
 Key: TEZ-1525
 URL: https://issues.apache.org/jira/browse/TEZ-1525
 Project: Apache Tez
  Issue Type: Test
Affects Versions: 0.6.0
Reporter: Gopal V
Assignee: Gopal V


Broadcast load generator test example



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1525) BroadcastLoadGen testcase

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V updated TEZ-1525:
-

Attachment: TEZ-1525.1.patch

> BroadcastLoadGen testcase
> -
>
> Key: TEZ-1525
> URL: https://issues.apache.org/jira/browse/TEZ-1525
> Project: Apache Tez
>  Issue Type: Test
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1525.1.patch
>
>
> Broadcast load generator test example



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1525) BroadcastLoadGen testcase

2014-08-29 Thread Gopal V (JIRA)

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

Gopal V commented on TEZ-1525:
--

[~sseth]: can you take a quick look?

> BroadcastLoadGen testcase
> -
>
> Key: TEZ-1525
> URL: https://issues.apache.org/jira/browse/TEZ-1525
> Project: Apache Tez
>  Issue Type: Test
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1525.1.patch
>
>
> Broadcast load generator test example



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1508) Log a warning if Xmx is configured incorrectly.

2014-08-29 Thread Jonathan Eagles (JIRA)

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

Jonathan Eagles updated TEZ-1508:
-

Attachment: TEZ-1508-v2.patch

[~hitesh], moved the AM and Vertex java opts verification to the time of dag 
submission. Improved the message to give the user a hint on setting the Xmx 
setting. Optimized the pattern to be static and only compile once.

> Log a warning if Xmx is configured incorrectly. 
> 
>
> Key: TEZ-1508
> URL: https://issues.apache.org/jira/browse/TEZ-1508
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Hitesh Shah
>Assignee: Jonathan Eagles
>  Labels: newbie
> Attachments: TEZ-1508-v1.patch, TEZ-1508-v2.patch
>
>
> Users may incorrectly configure Xmx for tasks. Xmx should in most cases be 
> less than the container/task size given that YARN will kill containers that 
> exceed the memory limits. 
> Given that we already parse the java opts to detect Xmx in the java opts, it 
> should be trivial to add a check if the value is valid and log a warning if 
> not ( for both the Tez AM and the vertices in a DAG).  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1525) BroadcastLoadGen testcase

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha commented on TEZ-1525:
-

lgtm. the division by 6 is counting some overhead?

> BroadcastLoadGen testcase
> -
>
> Key: TEZ-1525
> URL: https://issues.apache.org/jira/browse/TEZ-1525
> Project: Apache Tez
>  Issue Type: Test
>Affects Versions: 0.6.0
>Reporter: Gopal V
>Assignee: Gopal V
> Attachments: TEZ-1525.1.patch
>
>
> Broadcast load generator test example



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1522) ShuffleVertexManager scheduling can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha updated TEZ-1522:


Summary: ShuffleVertexManager scheduling can result in out of order 
execution and slowdown of upstream work  (was: Slow start settings can result 
in out of order execution and slowdown of upstream work)

> ShuffleVertexManager scheduling can result in out of order execution and 
> slowdown of upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Blocker
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (TEZ-1522) ShuffleVertexManager scheduling can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha edited comment on TEZ-1522 at 8/30/14 4:27 AM:
--

I was trying to say the blindly following the slow start setting can result in 
downstream tasks getting scheduled ahead of upstream tasks. Also given that 
this is not a regression, I have made this critical but not a blocker. Unless 
this was made a blocker for local mode?


was (Author: bikassaha):
I was trying to say the blindly following the slow start setting can result in 
downstream tasks getting scheduled ahead of upstream tasks. Also given that 
this is not a regression, I have made this critical but not a blocker. Unless 
this was made a blocker for local mode.

> ShuffleVertexManager scheduling can result in out of order execution and 
> slowdown of upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Critical
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TEZ-1522) ShuffleVertexManager scheduling can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha updated TEZ-1522:


Priority: Critical  (was: Blocker)

> ShuffleVertexManager scheduling can result in out of order execution and 
> slowdown of upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Critical
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1522) ShuffleVertexManager scheduling can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha commented on TEZ-1522:
-

I was trying to say the blindly following the slow start setting can result in 
downstream tasks getting scheduled ahead of upstream tasks. Also given that 
this is not a regression, I have made this critical but not a blocker. Unless 
this was made a blocker for local mode.

> ShuffleVertexManager scheduling can result in out of order execution and 
> slowdown of upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Critical
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number of tasks in downstream vertices, based on the 
> information available for the upstream vertex.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TEZ-1522) ShuffleVertexManager scheduling can result in out of order execution and slowdown of upstream work

2014-08-29 Thread Bikas Saha (JIRA)

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

Bikas Saha commented on TEZ-1522:
-

Summarizing a bunch of separate offline discussions on this.
The main issue is that downstream vertex managers (in this case the 
shufflevertexmanager) can end up scheduling their tasks ahead of upstream 
vertex tasks that they depend on. This may be because the upstream vertex 
manager hasnt yet scheduled its own tasks due to its policy.

There are multiple potential solutions at hand with pros and cons

1) Make all scheduling happen via the InputReadyVertexManager like logic that 
ensures that tasks are ready to schedule only when their inputs are ready. This 
could be extended to consider tasks ready when inputs are ready or input tasks 
are ready to be scheduled. 
Pros: Never cause deadlocks (barring retries which will get handled via 
preemption if needed). 
Cons: Can never start a task when its input tasks arent even ready to run. 
Performance is no worse in general than today but there may be corner cases 
where a task could start out of order and fetch data from a completed larger 
input while waiting for a smaller input to get scheduled.

2) Change the VertexImpl state machine to allow downstream vertices to start 
only when some tasks of its own vertex have been scheduled. This does not work 
in general because after a few tasks have been scheduled the remaining could 
again be deadlocked by downstream tasks.

3) Improve preemption to act faster in these situation. [~rajesh.balamohan] In 
the example job, did R3 get scheduled after some M5s got preempted by the task 
scheduler to create space? It would be useful to have the AM logs to find out 
why it took so long for this to happen and show any room for improvement. Can 
you please attach the logs. 
Pros: The scheduling is optimistic and runs anything as soon as available. 
However, if there is resource contention then we can end up wasting work by 
having to preempt the optimistically started work. If the cluster has capacity 
then this may result in the best performance. 
Cons: wasted work. Latency in preemption kicking in.

4) Enhance the DAG scheduler to arbitrate between different vertex tasks that 
are ready to run. The DAG scheduler could look at the all the tasks that are 
ready to run, the available resources and estimate how much can be 
optimistically started and hold of the remaining. 
Pros: Tries to achieve a balance between optimistic execution of tasks out of 
order with potential deadlocks. 
Cons: Cannot guarantee that deadlocks will not occur. In free clusters may end 
up slowing down the execution.
This was the reason the DAG scheduler abstraction was put in place. However, 
for a large and complex DAG with multiple concurrent branches of execution, it 
may be quite difficult to solve for an arbitration decision between all 
possible dependencies that want to get scheduled.


> ShuffleVertexManager scheduling can result in out of order execution and 
> slowdown of upstream work
> --
>
> Key: TEZ-1522
> URL: https://issues.apache.org/jira/browse/TEZ-1522
> Project: Apache Tez
>  Issue Type: Bug
>Reporter: Rajesh Balamohan
>Priority: Critical
>  Labels: performance
> Attachments: task_runtime.svg
>
>
> M2 M7
> \  /
> (sg) \/
>R3/ (b)
> \   /
>  (b) \ /
>   \   /
> M5
> |
> R6 
> Plz refer to the attachment (task runtime SVG). In this case, M5 got 
> scheduled much earlier than R3 (green color in the diagram) and retained lots 
> of containers.
> R3 got less containers to work with. 
> Attaching the output from the status monitor when the job ran;  Map_5 has 
> taken up almost all of cluster resource, whereas Reducer_3 got fraction of 
> the capacity.
> Map_2: 1/1  Map_5: 0(+373)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0/8000 
>   Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 0(+1)/8000 
>   Reducer_6: 0/1
> 
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 14(+7)/8000  Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 63(+14)/8000 Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 159(+22)/8000Reducer_6: 0/1
> Map_2: 1/1  Map_5: 0(+374)/1000 Map_7: 1/1  Reducer_3: 
> 308(+29)/8000Reducer_6: 0/1
> ...
> Creating this JIRA as a placeholder for scheduler enhancement. One 
> possibililty could be to
> schedule lesser number o