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.addresshistoryserver.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配置(简单三步完成)的主要内容,如果未能解决你的问题,请参考以下文章

flink-1.12.2 ha 集群配置

flink-1.12.2 ha 集群配置

docker 搭建 flink 并上传任务

Flink学习笔记:搭建Flink on Yarn环境并运行Flink应用

USDP使用笔记Flink配置及简单测试

USDP使用笔记Flink配置及简单测试