Flink HistoryServer配置(简单三步完成)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink HistoryServer配置(简单三步完成)相关的知识,希望对你有一定的参考价值。
参考技术A 允许您查询JobManager存档的已完成作业的状态和统计信息。(官网原话)
最适合用于:了解 flink过去完成任务的状态,以及有状态作业的恢复(保存了最后一次的checkpoint地址)
官网地址: https://ci.apache.org/projects/flink/flink-docs-release-1.11/monitoring/historyserver.html
官网配置参数: https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/config.html#history-server
修改flink-1.11.2/conf/flink-conf.yaml文件
两张图:
historyserver.web.tmpdir的默认配置图:
historyserver.web.tmpdir的自定义路径配置图:
在hdfs的/flink目录下创建completed-jobs目录(权限可以改成777)
启动/关闭命令:
1、查看启动状态
2、分别启一个per-job任务、sql任务、基于session启的任务,过一会全部cancel掉,都可以在hdfs路径和/tmp下的自定义目录看到相关数据,最后可以在host:8082上面看到你刚才canceled的任务,如下图:
3、访问hdfs路径:
4、访问 http://host:8082 可以查看到历史完成任务状态:
生产中遇到突然这个服务丢失,然后重启任务失败。通过排查任务是historyserver.web.tmpdir: /tmp/flinkhistoryserver/这个路径被删除了。
flink-1.12.2 ha 集群配置
flink-1.12.2 ha 集群配置
网上很多都是旧版的配置,很多配置项名称已经改变。本文是3个节点(同时也是 hadoop 集群节点)组成的 Flink-1.12.2版本的高可用集群配置,亲测可用:
参考:
Flink HistoryServer配置(简单三步完成)
Flink HA配置
每台机器内容如下:
/etc/profile.d/hacl-flinkcl-env.sh (使生效)
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
export HADOOP_HOME=/opt/hacl/hadoop-3.3.0
export HADOOP_CLASSPATH=`$HADOOP_HOME/bin/hadoop classpath`export FLINK_DATA_ROOT=/hacl/flink-ha/flinkcl
export FLINK_HOME=/opt/hacl/flink-1.12.2
export PATH=$PATH:$FLINK_HOME/bin
$FLINK_HOME/conf/masters
flink01.pepstack.com:8081
flink02.pepstack.com:8081
flink03.pepstack.com:8081
$FLINK_HOME/conf/workers
flink01.pepstack.com
flink02.pepstack.com
flink03.pepstack.com
$FLINK_HOME/conf/flink-conf.yaml
jobmanager.memory.process.size: 2g
taskmanager.memory.process.size: 16g
parallelism.default: 1
fs.default-scheme: hdfs://hacl
io.tmp.dirs: /hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp
jobmanager.archive.fs.dir: hdfs:///flink-ha/flinkcl/completed-jobs
jobmanager.execution.failover-strategy: region
jobmanager.rpc.address: flink01.pepstack.com
jobmanager.rpc.port: 6123
taskmanager.numberOfTaskSlots: 20
env.hadoop.conf.dir: $HADOOP_CONF_DIR
env.log.dir: /hacl/flink-ha/flinkcl/logs
env.log.max: 10
env.yarn.conf.dir: $HADOOP_CONF_DIR
state.backend: filesystem
state.checkpoints.dir: hdfs://hacl/flink-ha/checkpoints
state.savepoints.dir: hdfs://hacl/flink-ha/savepoints
high-availability: ZOOKEEPER
high-availability.cluster-id: /flinkcl
high-availability.storageDir: hdfs:///flink-ha/flinkcl
high-availability.zookeeper.path.root: /flink-ha
high-availability.zookeeper.quorum: flink01.pepstack.com:2181,flink02.pepstack.com:2181,flink03.pepstack.com:2181
high-availability.zookeeper.client.acl: open
yarn.application-attempts: 10
historyserver.archive.fs.dir: hdfs:///flink-ha/flinkcl/completed-jobs
historyserver.web.address: flink01.pepstack.com
historyserver.web.port: 8082
historyserver.web.ssl.enabled: false
historyserver.web.tmpdir: /hacl/flink-ha/flinkcl/tmp/history
在3个节点复制此文件,注意:
jobmanager.rpc.address 和 historyserver.web.address 在每个节点要配置为该节点的hostname。
yarn.application-attempts (=10) 需要大于 yarn.resourcemanager.am.max-attempts (=5, 配置在: $HADOOP_CONF_DIR/yarn-site.xml)
然后手工创建目录:
mkdir -p /hacl/flink-ha/flinkcl/logs
mkdir -p /hacl/flink-ha/flinkcl/tmp/history
在其中一个节点上启动 flink 集群:
$FLINK_HOME/bin/start-cluster.sh
在全部3个节点可用看到下面的进程,说明集群启动成功:
StandaloneSessionClusterEntrypoint
TaskManagerRunner
然后分别在3个节点都启动 historyserver:
$FLINK_HOME/bin/historyserver.sh start
注意,每次启动 historyserver,都需要手工创建 historyserver.web.tmpdir 目录,这里是:
mkdir -p /hacl/flink-ha/flinkcl/tmp/history
最后出现进程,说明启动成功:
HistoryServer
可用到日志目录下查看是否错误:
/hacl/flink-ha/flinkcl/logs
上面的配置依赖于 hadoop,yarn。所以首先 hadoop 集群必须正确安装和启动。例如:HADOOP_CONF_DIR 环境变量指向 /opt/hadoop-3.3.0/etc/hadoop。
以上是关于Flink HistoryServer配置(简单三步完成)的主要内容,如果未能解决你的问题,请参考以下文章