Flink 1.12.2 主要配置文件详解
本地启动集群的测试
- 下载Flink1.12.2, 并解压
- 配置好JAVA_HOME的机器上,到路径
~/flink/bin
- 本地启动:
start-cluster.sh
, 默认加载~/flink/conf/flink/flink-conf.yaml
- 停止:
stop-cluster.sh
flink-conf.yaml详解
# Jobmanager的地址,taskmanager必须要识别并能连上。
# 只有standalone的集群模式起作用,当执行bin/jobmanager.sh --host<hostname>的时候将被覆盖
# 在YARN或者Mesos的集群模式下将自动替换为jobmanager所在节点的hostname.
jobmanager.rpc.address: localhost
# jobmanager的RPC端口,和taskmanger通信端口
jobmanager.rpc.port: 6123
# JobManager能够使用的内存的最大值,包括Java虚拟机的metaspace和其他的开销;
jobmanager.memory.process.size: 1600m
# taskmanager 能够使用的最大内存大小,包括Java虚拟机的metaspace和其他的开销;
taskmanager.memory.process.size: 1728m
# 如果设置taskmanager内存使用不包含虚拟机的metaspace和其他的开销,就需要设置这个参数。不过官方不推荐和taskmanager.memory.process.size同时使用。
# taskmanager.memory.flink.size: 1280m
# 每个TaskManager提供的slot数量,每个slot上能运行一个并行的pipeline任务。
taskmanager.numberOfTaskSlots: 1
# 没有指定并行度的情况下,默认的全局并行度
parallelism.default: 1
# 默认的文件系统的数据结构和授权
# 如果是本地文件,那么格式为: 'file:///'
# 如果是HDFS文件,那么格式为:'hdfs://namenode_name:9870'
# fs.default-scheme
#==============================================================================
# 高可用模型的配置
#==============================================================================
# 高可用模型的选择有:'NONE' 或者 'zookeeper'
# high-availability: zookeeper
# 下面这个参数是指定master恢复所需要的元数据存储的路径。这个路径需要存储像持久化数据流图一样的大对象
# 改参数的指必须是所有节点可持久可访问的路径(e.g. HDFS, S3, Ceph, nfs, ...)
# high-availability.storageDir: hdfs:///flink/ha/
# ZooKeeper集群的地址,用于协调高可用模型的建立,而且必须是列表值(e.g. host1:clientPort,host2:clientPort,...)
# 默认的端口客户端端口是 2181
# high-availability.zookeeper.quorum: localhost:2181
# 如果zookeeper安全策略开启,那么下面这个值就应该是creator,默认是oepn
# high-availability.zookeeper.client.acl: open
#==============================================================================
# 容错和检查点配置
#==============================================================================
# Flink后端会默认存储算子的转态,当checkpointing是开启转态的时候。
# Flink支持的后端存储有 'jobmanager', 'filesystem', 'rocksdb', 或者自定的类<class-name-of-factory>.
# state.backend: filesystem
# checkpoints存储的地址
# state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints
# 默认savepoints存储的地址(可选)
# state.savepoints.dir: hdfs://namenode-host:port/flink-savepoints
# 是否开启增量存储(类似RocksDB存储转态的情况)
# state.backend.incremental: false
# 故障恢复的策略,怎么样从失败的任务重恢复计算。配置可选: full 或者 region
# full: 表示集群中的任务发生故障的时候,所有的task重新启动
# region: 表示集群中的任务发生故障的时候,仅重启被失败失败任务所影响的下游的任务和产生数据的上游任务。
jobmanager.execution.failover-strategy: region
#==============================================================================
# REST和前端设置
#==============================================================================
# REST 的端口配置,默认8081
#rest.port: 8081
# Web Server的地址配置,用于REST api调用
#rest.address: 0.0.0.0
# 配置REST端口绑定的范围
#rest.bind-port: 8080-8090
# 配置Server地址并绑定server
#rest.bind-address: 0.0.0.0
# 配置任务提交是否在网页端开启;默认是开启的
#web.submit.enable: false
#==============================================================================
# 高级配置
#==============================================================================
# 如果指定下面这个参数配置的话,将会覆盖java.io.tmpdir property的配置。
# 如果Flink集群是跑在YARN上,或者Mesos上的话,改参数将不需要配置,调度框架会自动配置。
# 注意:推荐是添加多个文件夹地址(unix系统使用冒号隔开,windows使用逗号隔开),多个文件夹地址可以是相同的,
# 多文件地址的配置致使Flink创建多个线程来出来,提高读写效率和吞度量。
# io.tmp.dirs: /tmp
# 类加载顺序的设定,Flink默认是'child-first',还可以选:'parent-first'
# 'child-first'这种加载机制允许用户在自己的应用中使用不同的依赖或者JAR包的版本。
# classloader.resolve-order: child-first
# 网络堆栈能使用的内存总量的配置。这些配置一般不需要调优。
# 当你遇到"Insufficient number of network buffers" 错误的时候就需要调整下面的参数了。
# 默认最小是64MB, 最大值是 1GB
# taskmanager.memory.network.fraction: 0.1
# taskmanager.memory.network.min: 64mb
# taskmanager.memory.network.max: 1gb
#==============================================================================
# Flink集群安全配置
#==============================================================================
# Kerberos认证,主要用在Hadoop,Zookeeper, connectors上的安全组件
# 通常开启的步骤为:
# 1. 配置本地的krb5.conf文件
# 2. 提供Kerberos的凭证(可以是一个keytab或者一个ticket cache)
# 3. 针对不同的JAAS的登录上下文,激活Kerberos的凭证
# 4. 使用JAAS/SASL配置连接
# 下面这些个配置是说明Kerberos怎么提供安全凭证的。
# 当用户提供了keytab path 和 principal,keytab将用于代贴ticket cache
# security.kerberos.login.use-ticket-cache: true
# security.kerberos.login.keytab: /path/to/kerberos/keytab
# security.kerberos.login.principal: flink-user
# 下面这个配置是定义了kerberos JAAS的登录上下文
# security.kerberos.login.contexts: Client,KafkaClient
#==============================================================================
# Zookeeper 安全配置
#==============================================================================
# 当zookeeper开启了安全模式,下面的配置就是必要的。
# 如果zookeeper配置了服务名称,就需要修改下面这个配置
# zookeeper.sasl.service-name: zookeeper
# 下面这个配置必须是"security.kerberos.login.contexts"的其中给一个值
# zookeeper.sasl.login-context-name: Client
#==============================================================================
# 历史任务服务器配置
#==============================================================================
# HistoryServer 通过bin/historyserver.sh (start|stop)开启和关闭
# 这个配置是用于上传执行完成的job。也是HistoryServer监控的目录。
#jobmanager.archive.fs.dir: hdfs:///completed-jobs/
# HistoryServer的服务地址
#historyserver.web.address: 0.0.0.0
# HistoryServer的服务端口
#historyserver.web.port: 8082
# 指定监控已完成的job所在的地址
#historyserver.archive.fs.dir: hdfs:///completed-jobs/
# 刷新监控的时间间隔
#historyserver.archive.fs.refresh-interval: 10000
下节预告:使用gradle构建最小化的Flink Jar包