Flink 从 0 到 1 学习 —— Flink 配置文件详解
前面文章我们已经知道 flink 是什么东西了,安装好 flink 后,我们再来看下安装路径下的配置文件吧。
安装目录下主要有 flink-conf.yaml 配置、日志的配置文件、zk 配置、flink sql client 配置。
flink-conf.yaml
基础配置
# jobmanager 的ip地址 jobmanager.rpc.address: localhost # jobmanager 的端口号 jobmanager.rpc.port: 6123 # jobmanager jvm heap 内存大小 jobmanager.heap.size: 1024m # taskmanager jvm heap 内存大小 taskmanager.heap.size: 1024m # 每个 taskmanager 提供的任务 slots 数量大小 taskmanager.numberoftaskslots: 1 # 程序默认并行计算的个数 parallelism.default: 1 # 文件系统来源 # fs.default-scheme
高可用性配置
# 可以选择 'none' 或者 'zookeeper'. # high-availability: zookeeper # 文件系统路径,让 flink 在高可用性设置中持久保存元数据 # high-availability.storagedir: hdfs:///flink/ha/ # zookeeper 集群中仲裁者的机器 ip 和 port 端口号 # high-availability.zookeeper.quorum: localhost:2181 # 默认是 open,如果 zookeeper security 启用了该值会更改成 creator # high-availability.zookeeper.client.acl: open
容错和检查点 配置
# 用于存储和检查点状态 # state.backend: filesystem # 存储检查点的数据文件和元数据的默认目录 # state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints # savepoints 的默认目标目录(可选) # state.savepoints.dir: hdfs://namenode-host:port/flink-checkpoints # 用于启用/禁用增量 checkpoints 的标志 # state.backend.incremental: false
web 前端配置
# 基于 web 的运行时监视器侦听的地址. #jobmanager.web.address: 0.0.0.0 # web 的运行时监视器端口 rest.port: 8081 # 是否从基于 web 的 jobmanager 启用作业提交 # jobmanager.web.submit.enable: false
高级配置
# io.tmp.dirs: /tmp # 是否应在 taskmanager 启动时预先分配 taskmanager 管理的内存 # taskmanager.memory.preallocate: false # 类加载解析顺序,是先检查用户代码 jar(“child-first”)还是应用程序类路径(“parent-first”)。 默认设置指示首先从用户代码 jar 加载类 # classloader.resolve-order: child-first # 用于网络缓冲区的 jvm 内存的分数。 这决定了 taskmanager 可以同时拥有多少流数据交换通道以及通道缓冲的程度。 如果作业被拒绝或者您收到系统没有足够缓冲区的警告,请增加此值或下面的最小/最大值。 另请注意,“taskmanager.network.memory.min”和“taskmanager.network.memory.max”可能会覆盖此分数 # taskmanager.network.memory.fraction: 0.1 # taskmanager.network.memory.min: 67108864 # taskmanager.network.memory.max: 1073741824
flink 集群安全配置
# 指示是否从 kerberos ticket 缓存中读取 # security.kerberos.login.use-ticket-cache: true # 包含用户凭据的 kerberos 密钥表文件的绝对路径 # security.kerberos.login.keytab: /path/to/kerberos/keytab # 与 keytab 关联的 kerberos 主体名称 # security.kerberos.login.principal: flink-user # 以逗号分隔的登录上下文列表,用于提供 kerberos 凭据(例如,`client,kafkaclient`使用凭证进行 zookeeper 身份验证和 kafka 身份验证) # security.kerberos.login.contexts: client,kafkaclient
zookeeper 安全配置
# 覆盖以下配置以提供自定义 zk 服务名称 # zookeeper.sasl.service-name: zookeeper # 该配置必须匹配 "security.kerberos.login.contexts" 中的列表(含有一个) # zookeeper.sasl.login-context-name: client
historyserver
# 你可以通过 bin/historyserver.sh (start|stop) 命令启动和关闭 historyserver # 将已完成的作业上传到的目录 # jobmanager.archive.fs.dir: hdfs:///completed-jobs/ # 基于 web 的 historyserver 的地址 # historyserver.web.address: 0.0.0.0 # 基于 web 的 historyserver 的端口号 # historyserver.web.port: 8082 # 以逗号分隔的目录列表,用于监视已完成的作业 # historyserver.archive.fs.dir: hdfs:///completed-jobs/ # 刷新受监控目录的时间间隔(以毫秒为单位) # historyserver.archive.fs.refresh-interval: 10000
查看下另外两个配置 slaves / master
2、slaves
里面是每个 worker 节点的 ip/hostname,每一个 worker 结点之后都会运行一个 taskmanager,一个一行。
localhost
3、masters
host:port
localhost:8081
4、zoo.cfg
# 每个 tick 的毫秒数 ticktime=2000 # 初始同步阶段可以采用的 tick 数 initlimit=10 # 在发送请求和获取确认之间可以传递的 tick 数 synclimit=5 # 存储快照的目录 # datadir=/tmp/zookeeper # 客户端将连接的端口 clientport=2181 # zookeeper quorum peers server.1=localhost:2888:3888 # server.2=host:peer-port:leader-port
5、日志配置
flink 在不同平台下运行的日志文件
log4j-cli.properties log4j-console.properties log4j-yarn-session.properties log4j.properties logback-console.xml logback-yarn.xml logback.xml
sql-client-defaults.yaml
execution: # 'batch' or 'streaming' execution type: streaming # allow 'event-time' or only 'processing-time' in sources time-characteristic: event-time # interval in ms for emitting periodic watermarks periodic-watermarks-interval: 200 # 'changelog' or 'table' presentation of results result-mode: changelog # parallelism of the program parallelism: 1 # maximum parallelism max-parallelism: 128 # minimum idle state retention in ms min-idle-state-retention: 0 # maximum idle state retention in ms max-idle-state-retention: 0 deployment: # general cluster communication timeout in ms response-timeout: 5000 # (optional) address from cluster to gateway gateway-address: "" # (optional) port from cluster to gateway gateway-port: 0
flink sql client :你可以从官网这里了解 https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/sqlclient.html
总结
本文拿安装目录文件下的配置文件讲解了下 flink 目录下的所有配置。
你也可以通过官网这里学习更多:
关注我
本篇文章地址是:
微信公众号:zhisheng
另外我自己整理了些 flink 的学习资料,目前已经全部放到微信公众号(zhisheng)了,你可以回复关键字:flink 即可无条件获取到。另外也可以加我微信 你可以加我的微信:yuanblog_tzs,探讨技术!
更多私密资料请加入知识星球!
github 代码仓库
以后这个项目的所有代码都将放在这个仓库里,包含了自己学习 flink 的一些 demo 和博客
博客
1、flink 从0到1学习 —— apache flink 介绍
2、flink 从0到1学习 —— mac 上搭建 flink 1.6.0 环境并构建运行简单程序入门
3、flink 从0到1学习 —— flink 配置文件详解
4、flink 从0到1学习 —— data source 介绍
5、flink 从0到1学习 —— 如何自定义 data source ?
6、flink 从0到1学习 —— data sink 介绍
7、flink 从0到1学习 —— 如何自定义 data sink ?
8、flink 从0到1学习 —— flink data transformation(转换)
9、flink 从0到1学习 —— 介绍 flink 中的 stream windows
10、flink 从0到1学习 —— flink 中的几种 time 详解
11、flink 从0到1学习 —— flink 读取 kafka 数据写入到 elasticsearch
12、flink 从0到1学习 —— flink 项目如何运行?
13、flink 从0到1学习 —— flink 读取 kafka 数据写入到 kafka
14、flink 从0到1学习 —— flink jobmanager 高可用性配置
15、flink 从0到1学习 —— flink parallelism 和 slot 介绍
16、flink 从0到1学习 —— flink 读取 kafka 数据批量写入到 mysql
17、flink 从0到1学习 —— flink 读取 kafka 数据写入到 rabbitmq
18、flink 从0到1学习 —— flink 读取 kafka 数据写入到 hbase
19、flink 从0到1学习 —— flink 读取 kafka 数据写入到 hdfs
20、flink 从0到1学习 —— flink 读取 kafka 数据写入到 redis
21、flink 从0到1学习 —— flink 读取 kafka 数据写入到 cassandra
22、flink 从0到1学习 —— flink 读取 kafka 数据写入到 flume
23、flink 从0到1学习 —— flink 读取 kafka 数据写入到 influxdb
24、flink 从0到1学习 —— flink 读取 kafka 数据写入到 rocketmq
25、flink 从0到1学习 —— 你上传的 jar 包藏到哪里去了
26、flink 从0到1学习 —— 你的 flink job 日志跑到哪里去了
28、flink 从0到1学习 —— flink 中如何管理配置?
29、flink 从0到1学习—— flink 不可以连续 split(分流)?
30、flink 从0到1学习—— 分享四本 flink 国外的书和二十多篇 paper 论文
32、为什么说流处理即未来?
33、oppo 数据中台之基石:基于 flink sql 构建实时数据仓库
36、apache flink 结合 kafka 构建端到端的 exactly-once 处理
38、如何基于flink+tensorflow打造实时智能异常检测平台?只看这一篇就够了
40、flink 全网最全资源(视频、博客、ppt、入门、实战、源码解析、问答等持续更新)
42、flink 从0到1学习 —— 如何使用 side output 来分流?
43、
源码解析
4、flink 源码解析 —— standalone session 模式启动流程
5、flink 源码解析 —— standalone session cluster 启动流程深度分析之 job manager 启动
6、flink 源码解析 —— standalone session cluster 启动流程深度分析之 task manager 启动
7、flink 源码解析 —— 分析 batch wordcount 程序的执行过程
8、flink 源码解析 —— 分析 streaming wordcount 程序的执行过程
9、flink 源码解析 —— 如何获取 jobgraph?
10、flink 源码解析 —— 如何获取 streamgraph?
11、flink 源码解析 —— flink jobmanager 有什么作用?
12、flink 源码解析 —— flink taskmanager 有什么作用?
13、flink 源码解析 —— jobmanager 处理 submitjob 的过程
14、flink 源码解析 —— taskmanager 处理 submitjob 的过程
15、flink 源码解析 —— 深度解析 flink checkpoint 机制
16、flink 源码解析 —— 深度解析 flink 序列化机制
17、flink 源码解析 —— 深度解析 flink 是如何管理好内存的?
18、flink metrics 源码解析 —— flink-metrics-core
19、flink metrics 源码解析 —— flink-metrics-datadog
20、flink metrics 源码解析 —— flink-metrics-dropwizard
21、flink metrics 源码解析 —— flink-metrics-graphite
22、flink metrics 源码解析 —— flink-metrics-influxdb
23、flink metrics 源码解析 —— flink-metrics-jmx
24、flink metrics 源码解析 —— flink-metrics-slf4j
25、flink metrics 源码解析 —— flink-metrics-statsd
26、flink metrics 源码解析 —— flink-metrics-prometheus
27、flink 源码解析 —— 如何获取 executiongraph ?
30、flink clients 源码解析
原文出处:,欢迎关注我的公众号:zhisheng