[
https://issues.apache.org/jira/browse/YARN-2770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14190855#comment-14190855
]
Jian He commented on YARN-2770:
-------------------------------
thanks Zhijie ! some comments:
- {{SecurityUtil#getServerPrincipal}} may be useful.
{code}
if (rmPrincipal != null && rmPrincipal.length() > 0) {
renewer = new KerberosName(rmPrincipal).getServiceName();
}
{code}
- We may replace the token after renew is really succeeded.
{code}
if (!timelineDT.equals(token.getDelegationToken())) {
token.setDelegationToken((Token) timelineDT);
}
{code}
- In cancelDelegationToken, why replacing the token. Also rename the
{{renewDTAction}} to {{cacnelDT}}
{code}
// If the timeline DT to renew is different than cached, replace it.
// Token to set every time for retry, because when exception
happens,
// DelegationTokenAuthenticatedURL will reset it to null;
if (!timelineDT.equals(token.getDelegationToken())) {
token.setDelegationToken((Token) timelineDT);
}
{code}
- the same DelegationTokenAuthenticatedURL is instantiated multiple times, is
it possible to store it as a variable ?
{code}
DelegationTokenAuthenticatedURL authUrl =
new DelegationTokenAuthenticatedURL(authenticator,
connConfigurator);
{code}
- similarly for the timeline client instantiation.
{code}
TimelineClient client = TimelineClient.createTimelineClient();
client.init(conf);
client.start();
{code}
> Timeline delegation tokens need to be automatically renewed by the RM
> ---------------------------------------------------------------------
>
> Key: YARN-2770
> URL: https://issues.apache.org/jira/browse/YARN-2770
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: timelineserver
> Affects Versions: 2.5.0
> Reporter: Zhijie Shen
> Assignee: Zhijie Shen
> Priority: Critical
> Attachments: YARN-2770.1.patch
>
>
> YarnClient will automatically grab a timeline DT for the application and pass
> it to the app AM. Now the timeline DT renew is still dummy. If an app is
> running for more than 24h (default DT expiry time), the app AM is no longer
> able to use the expired DT to communicate with the timeline server. Since RM
> will cache the credentials of each app, and renew the DTs for the running
> app. We should provider renew hooks similar to what HDFS DT has for RM, and
> set RM user as the renewer when grabbing the timeline DT.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)