

# 历史服务器

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


Flink有一个历史记录服务器，可用于在关闭相应的Flink群集后查询已完成作业的统计信息。

此外，它公开了一个REST API，它接受HTTP请求并使用JSON数据进行响应。

## 概览

HistoryServer允许您查询已由JobManager归档的已完成作业的状态和统计信息。

配置HistoryServer _和_ JobManager后，可以通过相应的启动脚本启动和停止HistoryServer：



```
# Start or stop the HistoryServer

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)

bin/historyserver.sh (start|start-foreground|stop)
```



默认情况下，此服务器绑定`localhost`并侦听端口`8082`。

目前，您只能将其作为独立进程运行。

## 配置

配置键`jobmanager.archive.fs.dir`，`historyserver.archive.fs.refresh-interval`需要进行调整以存档和显示存档的作业。

**JobManager**

已完成作业的归档发生在JobManager上，JobManager将归档的作业信息上载到文件系统目录。您可以`flink-conf.yaml`通过设置目录来配置目录以存档已完成的作业`jobmanager.archive.fs.dir`。



```
# Directory to upload completed job information

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)

jobmanager.archive.fs.dir: hdfs:///completed-jobs
```



**HistoryServer**

可以将HistoryServer配置为监视via中以逗号分隔的目录列表`historyserver.archive.fs.dir`。为新存档定期轮询已配置的目录; 轮询间隔可以通过配置`historyserver.archive.fs.refresh-interval`。



```
# Monitor the following directories for completed jobs

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)

historyserver.archive.fs.dir: hdfs:///completed-jobs

# Refresh every 10 seconds

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)

historyserver.archive.fs.refresh-interval: 10000
```



包含的存档将下载并缓存在本地文件系统中。通过此配置本地目录`historyserver.web.tmpdir`。

查看配置页面以获取[完整的配置选项列表](https://flink.sojb.cn/ops/config.html#history-server)。

## 可用请求

以下是可用请求列表，其中包含示例JSON响应。所有请求都是样本表单`http://hostname:8082/jobs`，下面我们仅列出URL 的_路径_部分。

尖括号中的值是变量，例如`http://hostname:port/jobs/&lt;jobid&gt;/exceptions`必须请求例如`http://hostname:port/jobs/7684be6004e4e955c2a558a9bc463f65/exceptions`。

*   `/config`
*   `/jobs/overview`
*   `/jobs/&lt;jobid&gt;`
*   `/jobs/&lt;jobid&gt;/vertices`
*   `/jobs/&lt;jobid&gt;/config`
*   `/jobs/&lt;jobid&gt;/exceptions`
*   `/jobs/&lt;jobid&gt;/accumulators`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/subtasktimes`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/taskmanagers`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/accumulators`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/subtasks/accumulators`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/subtasks/&lt;subtasknum&gt;`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/subtasks/&lt;subtasknum&gt;/attempts/&lt;attempt&gt;`
*   `/jobs/&lt;jobid&gt;/vertices/&lt;vertexid&gt;/subtasks/&lt;subtasknum&gt;/attempts/&lt;attempt&gt;/accumulators`
*   `/jobs/&lt;jobid&gt;/plan`

