Flink2.0 配置 historyserver 主要是去修改config.yaml配置文件 主要修改的点有两个 网上很多文档都是写的只配置一个 都是坑啊
historyserver :历史服务器
运行 Flink job 的集群一旦停止(例如yarn模式,程序一旦停止,集群也就关闭了),只能去 yarn 或本地磁盘上查看日志,不再可以查看作业挂掉之前的运行的 Web UI,很难清楚知道作业在挂的那一刻到底发生了什么。如果我们还没有 Metrics 监控的话,那么完全就只能通过日志去分析和定位问题了,所以如果能还原之前的 Web UI,我们可以通过 UI 发现和定位一些问题。
Flink提供了历史服务器,用来在相应的 Flink 集群关闭后查询已完成作业的统计信息。我们都知道只有当作业处于运行中的状态,才能够查看到相关的WebUI统计信息。通过 History Server 我们才能查询这些已完成作业的统计信息,无论是正常退出还是异常退出。
1:
jobmanager:
# interface, such as 0.0.0.0.
bind-host: 0.0.0.0
rpc:
# JobManager runs.
address: cdh1
# The RPC port where the JobManager is reachable.
port: 6123
memory:
process:
# The total process memory size for the JobManager.
# Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.
size: 1600m
execution:
failover-strategy: region
archive:
fs:
dir: hdfs://cdh1:8020/flink-2.0/completed-jobs // 这个必须配置
2:
historyserver:
web:
# The address under which the web-based HistoryServer listens.
address: 0.0.0.0
# The port under which the web-based HistoryServer listens.
port: 8082
archive:
fs:
# Comma separated list of directories to monitor for completed jobs.
dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
# Interval in milliseconds for refreshing the monitored directories.
fs.refresh-interval: 10000
总结:
1:jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
2:historyserver.web.address: cdh1
2:historyserver.web.port: 8082
2:historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
2:historyserver.archive.fs.refresh-interval: 1000
./historyserver.sh start
1. jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
含义: 这个参数指定了JobManager用于存储作业完成后的归档日志的HDFS目录。当Flink作业完成后,其日志和状态信息会被归档到这个指定的HDFS路径下,以便后续的分析和审计。
用途:
- 日志归档:确保作业执行后的日志和状态信息不会立即被删除,而是被安全地存储在HDFS上。
- 审计和调试:在需要时,可以从HDFS上检索这些归档的日志,用于审计作业的执行情况或调试问题。
2. historyserver.web.address: cdh1
含义: 这个参数指定了Flink HistoryServer绑定的主机名或IP地址。HistoryServer是一个Web服务,用于展示Flink作业的历史记录,包括作业的图、状态、持续时间等信息。
用途:
- 访问HistoryServer:用户可以通过浏览器访问这个地址(通常是http://:),来查看Flink作业的历史记录。
- 作业监控:方便用户监控和分析作业的执行情况,包括作业的成功、失败、重启等信息。
3. historyserver.web.port: 8082
含义: 这个参数指定了Flink HistoryServer监听的端口号。用户需要通过这个端口来访问HistoryServer提供的Web服务。
用途:
- Web服务端口:确保HistoryServer能够在一个特定的端口上监听HTTP请求,从而提供Web界面供用户访问。
- 配置防火墙和安全组:在配置网络防火墙或安全组时,需要确保这个端口是开放的,以便外部用户能够访问HistoryServer。
4. historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
含义: 这个参数与jobmanager.archive.fs.dir类似,但它专门用于HistoryServer。它指定了HistoryServer用于读取作业归档日志的HDFS目录。HistoryServer会从这个目录中读取作业的历史记录,并在Web界面上展示。
用途:
- 历史记录读取:确保HistoryServer能够找到并读取作业的历史记录,以便在Web界面上展示给用户。
- 数据一致性:确保JobManager和HistoryServer使用相同的HDFS目录来存储和读取作业的历史记录,以保持数据的一致性
5. historyserver.archive.fs.refresh-interval: 1000
含义:这个参数指定了HistoryServer刷新HDFS上作业归档日志的间隔时间(以毫秒为单位)。在这个时间间隔内,HistoryServer会定期检查HDFS上的归档日志目录,以获取最新的作业历史记录。
用途:
- 实时性:确保HistoryServer能够及时地获取到最新的作业历史记录,并在Web界面上展示给用户。
- 性能调优:通过调整这个参数,可以在实时性和系统性能之间找到一个平衡点。如果设置得太短,可能会增加HDFS的访问压力;如果设置得太长,则可能导致用户无法及时看到最新的作业历史记录。
具体日志可以去这两个文件查看 flink/log下
flink-root-historyserver-0-cdh1.log
flink-root-historyserver-0-cdh1.out