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

Vinod Kumar Vavilapalli commented on YARN-321:
----------------------------------------------

bq. How about starting with an in-memory implementation, which is the easiest 
to do and is useful for testing.
We can have one for testing, but a file-system based impl should exist from the 
beginning.

bq. Here's more ellaboration about the per-application data. There should be 
three objects to record: RMApp, RMAppAttempt and RMContainer. .....
Tx for the detailed analysis, [~zjshen]!

bq. In addition, HistoryStorage APIs may involve a lot of I/O operations such 
that the response of an API will be long. Therefore, it is likely to be good to 
make the API non-blocking.
+1

bq. Are we moving aggregated log management(i.e deletion after expiry) 
responsibility to AHS?
bq. Right now its not clear what needs to be done for log aggregation?
bq. Sorry for misunderstanding your previous question. IMHO, in the recent 
future, we're not moving the aggregated log management, but duplicate it, which 
Both AHS and JHS can serve the same aggregated logs. However, AHS and JHS see 
the same logs from different point of views. AHS simply considers them as 
container logs, no matter what application it is, while JHS know they are the 
MR job logs. Vinod Kumar Vavilapalli, would you please confirm it?
That's an interesting point about JHS knowing that they are MR job logs. But we 
don't do anything special today. I'm thinking of just pull out log-handling and 
use it in both AHS and JHS for the time being.

bq. >>>ResourceManager will push the data to HistoryStorage after an 
application finishes in a separate thread.
bq. Is it per application or only one thread in RM?
I foresee a single thread.

bq. Isn't it be a good idea that as soon as application starts we send the 
information to AHS and let AHS write all the data published by RM for that 
application. In that case it would be very less overhead for RM.
Like I mentioned in my proposal, this could be one implementation of 
HistoryStorage.

bq. What about in the cases where RM restart or crashes in those cases RM has 
to republish all the running applications to AHS or just forget about the 
previous running apps?
This was covered. In the first cut, we'll make best efforts. Losing an app's 
data in such a corner case is bearable.

bq. (Thinking out loud) Are we decided on who all can write to HistoryStorage?
I thought this was clear. Only RM. No per-framework data or data from AMs to 
AHS directly. Yet, at the least.

bq. I think History storage should be written by AHS not RM in that case RM 
will have less load and will be better to scale.
This is an implementation detail. Details on the impl whether the RM writes 
files directly or pushes to AHS. Let's do the APIs first.

Overall, I repeat that we should separate the design for per-framework data. 
Fundamentally because the AHS is a shared service. It needs a radically 
different design from my initial thoughts. Will file a separate JIRA and post 
my thoughts there.
                
> Generic application history service
> -----------------------------------
>
>                 Key: YARN-321
>                 URL: https://issues.apache.org/jira/browse/YARN-321
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: Luke Lu
>            Assignee: Vinod Kumar Vavilapalli
>         Attachments: HistoryStorageDemo.java
>
>
> The mapreduce job history server currently needs to be deployed as a trusted 
> server in sync with the mapreduce runtime. Every new application would need a 
> similar application history server. Having to deploy O(T*V) (where T is 
> number of type of application, V is number of version of application) trusted 
> servers is clearly not scalable.
> Job history storage handling itself is pretty generic: move the logs and 
> history data into a particular directory for later serving. Job history data 
> is already stored as json (or binary avro). I propose that we create only one 
> trusted application history server, which can have a generic UI (display json 
> as a tree of strings) as well. Specific application/version can deploy 
> untrusted webapps (a la AMs) to query the application history server and 
> interpret the json for its specific UI and/or analytics.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to