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

Xianyin Xin commented on YARN-5302:
-----------------------------------

Thanks [~jianhe]. I'm also in favor of the second approach. Adopting the first 
one just because it change little on the work flow, just update the statestore 
when NM receives new token. We also don't need to worry about the efficiency of 
the operation, because the updating is not frequently (only when token changes, 
typically, this happens on day-level).
[~Naganarasimha], what's your opinion?

> Yarn Application log Aggreagation fails due to NM can not get correct HDFS 
> delegation token II
> ----------------------------------------------------------------------------------------------
>
>                 Key: YARN-5302
>                 URL: https://issues.apache.org/jira/browse/YARN-5302
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: yarn
>            Reporter: Xianyin Xin
>            Assignee: Xianyin Xin
>         Attachments: YARN-5032.001.patch, YARN-5032.002.patch, 
> YARN-5302.003.patch, YARN-5302.004.patch
>
>
> Different with YARN-5098, this happens at NM side. When NM recovers, 
> credentials are read from NMStateStore. When initialize app aggregators, 
> exception happens because of the overdue tokens. The app is a long running 
> service.
> {code:title=LogAggregationService.java}
>   protected void initAppAggregator(final ApplicationId appId, String user,
>       Credentials credentials, ContainerLogsRetentionPolicy 
> logRetentionPolicy,
>       Map<ApplicationAccessType, String> appAcls,
>       LogAggregationContext logAggregationContext) {
>     // Get user's FileSystem credentials
>     final UserGroupInformation userUgi =
>         UserGroupInformation.createRemoteUser(user);
>     if (credentials != null) {
>       userUgi.addCredentials(credentials);
>     }
>    ...
>     try {
>       // Create the app dir
>       createAppDir(user, appId, userUgi);
>     } catch (Exception e) {
>       appLogAggregator.disableLogAggregation();
>       if (!(e instanceof YarnRuntimeException)) {
>         appDirException = new YarnRuntimeException(e);
>       } else {
>         appDirException = (YarnRuntimeException)e;
>       }
>       appLogAggregators.remove(appId);
>       closeFileSystems(userUgi);
>       throw appDirException;
>     }
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to