Jason Lowe commented on YARN-3144:

Seems reasonable to allow the timeline service, which is not highly-available 
and often not critical to the job completing, to be configured as "use it if 
you can, but don't prevent the job from running if you can't."

bq. Otherwise, if we know the app has used the timeline service, should we make 
it fail at when submitting the job instead of failing at runtime?

How do we know if the job has used the service if we're trying to get the 
delegation token?  Isn't that the first thing the job needs to do before using 
the timeline service?  Sorry, I'm probably missing something obvious.

Comments on the patch itself:
* timelineServiceBestEffort should be package-private instead of public.  That 
precludes the need for the @Private annotation on it.
* Nit: "crate" s/b "create" in the test
* The spy of YarnClientImpl seems unnecessary?
* Nit: Would it be cleaner if YarnClientImpl had a protected method to create 
the timelineClient rather than completely overriding serviceInit to inject our 
own for tests?  Otherwise we're half-initializing the YarnClientImpl which 
might be problematic if changes are made to YarnClientImpl.serviceInit in the 
future.  Not a must-fix, just wondering if that option was considered.

> Configuration for making delegation token failures to timeline server 
> not-fatal
> -------------------------------------------------------------------------------
>                 Key: YARN-3144
>                 URL: https://issues.apache.org/jira/browse/YARN-3144
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: Jonathan Eagles
>            Assignee: Jonathan Eagles
>         Attachments: YARN-3144.1.patch
> Posting events to the timeline server is best-effort. However, getting the 
> delegation tokens from the timeline server will kill the job. This patch adds 
> a configuration to make get delegation token operations "best-effort".

This message was sent by Atlassian JIRA

Reply via email to