Flink Configuration | flink-conf.yaml中的配置 Basic Setup | 常用配置Hostnames / PortsMemory Sizes(内存大小)Parallelism (并行度)Checkpointing(检查点)Web UIOther Common Setup Options | 通用的配置Hosts and PortsFault Toleranc(容错)Checkpoints and State Backends(检查点和状态后端)
引流:FLINK 的命令 FLINK 的配置 Flink执行说明
本篇博客只对flink-conf.yaml中的配置进行介绍 持续更新…
参考文章:
Flink Configuration - flink-conf.yaml 中的配置
Flink 配置文件 flink-conf.yaml 中的配置基本都是通过键值对的方式进行配置
当 Flink 进程启动时,配置会被解析和配置,因此配置文件是全局配置,更改配置文件需要重新启动 Flink 相关的进程
Flink 使用的 JAVA_HOME 为当前环境默认的 JAVA 环境,如果要使用自定义的 JAVA ,需要在该配置文件中通过 env.java.home 进行配置
Flink 解压后有一个 conf 文件夹,我们一般在该文件夹中 flink-conf.yaml 配置文件进行配置。对于非会话部署模式,我们也可以复制该文件夹到其他的地方,并通过环境变量 FLINK_CONF_DIR 指定配置文件夹的位置,从而实现不同的作业使用不同的配置
Basic Setup | 常用配置默认配置支持在不做任何更改的情况下启动单节点 Flink 会话集群
这里主要是常用的配置
Hostnames / Ports这个配置用于 standalone 或 Session 模式,如果使用 YARN, hostnames 和 ports 会自动配置和发现
# 该配置用于客户端 client 连接 Flink, 将此设置为 JobManager 运行的主机名和端口(该配置决定WEB的地址和端口) # 默认为 '0.0.0.0' rest.address # 默认为 '8081' rest.port # 该配置用于 TaskManager 连接 JobManager, 一般将此设置为 JobManager 运行的主机名(该配置决定TaskManager连接JobManager时的地址和端口) # 默认为 'localhost' jobmanager.rpc.address # 默认为 '6123' jobmanager.rpc.port # 我们在 FLINK bin 目录中开启一个会话模式,测试一下默认不开启时的情况 # 该命令在 node02 执行 bin/yarn-session.sh启动后提示WEB 的地址为图中所示,我们访问下该地址
由此说明,该配置如果没有开启,那么 hostname 和 port 随机指定
# 配置后重新开启会话 rest.address : 127.0.0.1 rest.port : 8081
Memory Sizes(内存大小)
默认内存大小支持简单的流/批处理应用程序,但太低可能无法为更复杂的应用程序产生良好的性能
# JobManager(JobMaster / ResourceManager / Dispatcher) 进程的总内存大小 jobmanager.memory.process.size: 1600m # taskmanager 进程的总内存大小 taskmanager.memory.process.size: 1728m该内存大小为 JAVA 进程的内存,Flink 会为 JVM 自身的内存需求(元空间等)减去一些内存,在其组件之间自动划分和配置其余部分(JVM 堆、堆外,对于任务管理器,还有网络、托管内存等)
配置的格式一般为 xxm 或 xxg , 例如 2048m 或 2g
Parallelism (并行度)
TaskManager 提供的槽数(默认值:1),每个插槽可以接受一个任务,TaskManager 中拥有多个插槽有助于在并行 task 或 pipeline 之间分摊某些恒定开销(JVM、应用程序库或网络连接)
运行多个较小的 TaskManager,每个都有一个插槽是一个很好的策略,可以让任务之间的保持最佳隔离
运行少量较大的 TaskManager,每个 TaskManager 都有多个 slots,可以提高资源利用率,但代价是任务之间的隔离较弱(多个任务共享一个JVM)
# taskmanager 提供的 slots 数量 taskmanager.numberOfTaskSlots: 1 # 默认的并行度 parallelism.default: 1Checkpointing(检查点)
我们一般会在应用中通过代码配置检查点,为了防止代码中没有配置检查点,因此在配置文件中增加了检查点的默认配置(默认不开启,如需开启需要配置)
代码中的检查点配置的优先级大于配置文件中的检查点配置
# 要使用的状态后端, 此处定义用于创建快照的数据结构机制, 常用的是文件系统或rocksdb state.backend: filesystem # 检查点数据的写出目录, 例如:hdfs://namenode:port/flink/checkpoints state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints # 检查点的保存目录 state.savepoints.dir: hdfs://namenode-host:port/flink-savepoints # 检查点的写出时间间隔, 当在配置文件中开启后, 需要设置该配置, 通常配置的值大于0 execution.checkpointing.interval: 10Web UI
FLINK 的 WEB 界面的一些配置
# 启用通过 Flink UI 上传和启动作业(默认为 true) # 注意: 即使禁用此功能,会话集群仍会通过 REST 请求(HTTP 调用)接受作业, 该配置仅保护在 UI 中上传作业的功能 web.submit.enable: true # 启用通过 Flink UI 取消作业(默认为 true) # 注意: 即使禁用此功能,会话集群仍会通过 REST 请求(HTTP 调用)取消作业, 该配置仅保护取消 UI 中的作业的功能 web.cancel.enable # 存储上传作业的目录, 仅在 web.submit.enable 为 true 时使用 web.upload.dir # 设置打印 Flink 为作业处理的最近失败的异常历史记录的大小 web.exception-history-sizeOther # Flink 存放本地数据的目录, 默认为系统临时目录(java.io.tmpdir 属性), 如果配置了目录列表,Flink 将在目录之间轮换文件 # 默认情况下,放在这些目录中的数据包括 RocksDB 创建的文件、溢出的中间结果(批处理算法)和缓存的 jar 文件 # 此数据不依赖于持久性/恢复,但如果此数据被删除,通常会导致重量级恢复操作, 因此建议将其设置为不会自动定期清除的目录 io.tmp.dirs Common Setup Options | 通用的配置 Hosts and Ports
为不同 Flink Components 配置主机名和端口的选项
JobManager 主机名和端口仅与没有高可用性的独立设置相关
在该设置中,TaskManager 使用配置值来查找(并连接到)JobManager
在所有高可用设置中,TaskManagers 通过 High-Availability-Service(例如 ZooKeeper)发现 JobManager
注意:不需要配置任何 TaskManager 主机和端口,除非设置需要使用特定的端口范围或特定的网络接口来绑定
这些配置选项控制 Flink 在执行过程中出现故障时的重启行为。 通过在 flink-conf.yaml 中配置这些选项,我们以定义集群的默认重启策略
注意:只有在没有通过 ExecutionConfig 配置作业特定的重启策略时,默认重启策略才会生效
No Restart Strategy
作业直接失败, 不尝试重新启动
restart-strategy: noneFixed Delay Restart Strategy
restart-strategy: fixed-delay restart-strategy.fixed-delay.attempts: 3 restart-strategy.fixed-delay.delay: 10 sFailure Rate Restart Strategy
失败率重启策略在失败后重新启动作业, 但是当超过失败率(每个时间间隔的失败次数)时, 作业最终会失败
在两次连续重启尝试之间,重启策略会等待固定的时间
# 重试策略设置为: failure-rate restart-strategy: failure-rate restart-strategy.failure-rate.max-failures-per-interval: 3 restart-strategy.failure-rate.failure-rate-interval: 5 min restart-strategy.failure-rate.delay: 10 sExponential Delay Restart Strategy
指数延迟重启策略尝试无限重启作业, 延迟增加直到最大延迟
工作永远不会失败, 在两次连续的重启尝试之间, 重启策略保持指数增长, 直到达到最大次数, 它将延迟保持在最大数量
当作业正确执行时, 指数延迟值会在一段时间后重置, 这个阈值是可配置的
restart-strategy: exponential-delay restart-strategy.exponential-delay.initial-backoff: 10 s restart-strategy.exponential-delay.max-backoff: 2 min restart-strategy.exponential-delay.backoff-multiplier: 2.0 restart-strategy.exponential-delay.reset-backoff-threshold: 10 min restart-strategy.exponential-delay.jitter-factor: 0.1
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #Flink #配置文件 #运行命令详细介绍Flink #configuration #setup