You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "Hitesh Shah (JIRA)" <ji...@apache.org> on 2016/09/01 21:59:21 UTC

[jira] [Updated] (TEZ-3405) Support ability for AM to kill itself if there is no client heartbeating to it

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

Hitesh Shah updated TEZ-3405:
-----------------------------
    Attachment: TEZ-3405.5.patch

Patch 5 uploaded. 

bq. Nit: TEZ_AM_CLIENT_HEARTBEAT_TIMEOUT_SECS_MINIMUM - Move to TezConstants?

Done.

bq. Nit: Move logic from TezConfiguration to a separate helper class? TezConfiguration.java does typically serve as documentation as well.

Moved to TezCommonUtils which is tagged private. Also, moved helper function introduced in TEZ-3326 to this class from TezUtils ( as TezUtils is public ) \cc [~ebadger]

bq. Nit: Replace new TimerTask with new Runnable (TimerTask is not serving any purpose)

Done. 

bq. Question: The initial timer is only setup after the AM has recovered, correct?

Yes - setup of timer is done in DAGAppMaster::serviceStart after all services started and the heavy lifting of recovery is done and dag has just about started running.
 


> Support ability for AM to kill itself if there is no client heartbeating to it
> ------------------------------------------------------------------------------
>
>                 Key: TEZ-3405
>                 URL: https://issues.apache.org/jira/browse/TEZ-3405
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Gunther Hagleitner
>            Assignee: Hitesh Shah
>            Priority: Critical
>         Attachments: TEZ-3405.1.patch, TEZ-3405.2.patch, TEZ-3405.3.patch, TEZ-3405.4.patch, TEZ-3405.5.patch
>
>
> HiveServer2 optionally maintains a pool of AMs in either Tez or LLAP mode. This is done to amortize the cost of launching a Tez session.
> We also try in a shutdown hook to kill all these AMs when HS2 goes down. However, there are cases where HS2 doesn't get the chance to kill these AMs before it goes away. As a result these zombie AMs hang around until the timeout kicks in.
> The trouble with the timeout is that we have to set it fairly high. Otherwise the benefit of having pre-launched AMs obviously goes away (in a lightly loaded cluster).
> So, if people kill/restart HS2 they often times run into situations where the cluster/queue doesn't have any more capacity for AMs. They either have to manually kill the zombies or wait.
> The request is therefore for Tez to maintain a heartbeat to the client. If the client goes away the AM should exit. That way we can keep the AMs alive for a long time regardless of activity and at the same time don't have to worry about them if HS2 goes down.



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