GitHub user zentol opened a pull request:

    https://github.com/apache/flink/pull/3460

    [FLINK-1579] Implement History Server

    This PR adds a slightly unpolished HistoryServer implementation. It is 
missing tests and some documentation, but is working.
    
    This PR builds on top of #3377.
    
    The basic idea is as follows:
    
    The ```MemoryArchivist```, upon receiving an ```ExecutionGraph```, writes a 
set of json files into a directory structure resembling the REST API using the 
features introduced in FLINK-5870, FLINK-5852 and FLINK-5941. The target 
location is configurable using ```job-manager.archive.dir```. Each job resides 
in it's own directory, using the job ID as the directory name. As such, each 
archive is consistent on it's own and multiple jobmanagers may use the same 
archive dir.
    
    The ```HistoryServer``` polls certain directories, configured via 
```historyserver.archive.dirs```, in regular intervals, configured via 
```historyserver.refresh-interval```, for new job archives. If a new archive is 
found it is downloaded and integrated into a cache of job archives in the local 
file system, configurable using ```historyserver.web.dir```. These files are 
served to a slightly modified WebFrontend using the 
```HistoryServerStaticFileServerHandler```.
    
    In the end the HistoryServer is little more than an aggregator and archive 
viewer.
    
    None of the directory configuration options have defaults; as it stands the 
entire feature is opt-in.
    
    Should a file that the WebFrontend requests be missing a separate fetch 
routine kicks in which attempts to fetch the missing file. This is primarily 
aimed at eventually-consistent file-systems.
    
    The HistoryServer is started using the new historyserver.sh script, which 
works similarly to job- or taskmanager scripts: ```./bin/historyserver.sh 
[start|stop]```
    
    2 bigger refactorings were made to existing code to increase the amount of 
shared code:
    * the netty setup in the WebRuntimeMonitor was moved into a separate 
NettySetup class which the HistoryServer can use as well
    * an AbstractStaticFileServerHandler was added which the 
(HistoryServer)StaticFileServerHandler extend

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/zentol/flink 1579_history_server_pr

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/3460.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3460
    
----
commit 61a07456f151ac8f5418ac66629751e1a83ada3a
Author: zentol <ches...@apache.org>
Date:   2017-01-24T09:13:24Z

    [FLINK-1579] Implement History Server - Frontend

commit e6316e544fea160f7d050dd1b087301a83345d31
Author: zentol <ches...@apache.org>
Date:   2017-02-21T11:36:17Z

    [FLINK-5645] Store accumulators/metrics for canceled/failed tasks

commit 84fd2746b09ce41c2d9bd5be7f6e8a8cc1a3291d
Author: zentol <ches...@apache.org>
Date:   2017-03-02T12:31:56Z

    Refactor netty setup into separate class

commit 81d7e6b92fe69326d6edf6b63f3f9c95f5ebd0ef
Author: zentol <ches...@apache.org>
Date:   2017-02-22T14:47:07Z

    [FLINK-1579] Implement History Server - Backend

commit 8d1e8c59690ea97be4bbaf1a011c8ec4a68f5892
Author: zentol <ches...@apache.org>
Date:   2017-03-02T11:09:36Z

    Rebuild frontend

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to