前面文章我們已經知道 Flink 是什么東西了,安裝好 Flink 后,我們再來看下安裝路徑下的配置文件吧。

安裝目錄下主要有 flink-conf.yaml 配置、日志的配置文件、zk 配置、Flink SQL Client 配置。
flink-conf.yaml
基礎配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
# 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
|
高可用性配置
1 2 3 4 5 6 7 8 9 10 11
|
# 可以選擇 '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
|
容錯和檢查點 配置
1 2 3 4 5 6 7 8 9 10 11
|
# 用於存儲和檢查點狀態 # 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 前端配置
1 2 3 4 5 6 7 8
|
# 基於 Web 的運行時監視器偵聽的地址. #jobmanager.web.address: 0.0.0.0
# Web 的運行時監視器端口 rest.port: 8081
# 是否從基於 Web 的 jobmanager 啟用作業提交 # jobmanager.web.submit.enable: false
|
高級配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
# 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 集群安全配置
1 2 3 4 5 6 7 8 9 10 11
|
# 指示是否從 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 安全配置
1 2 3 4 5
|
# 覆蓋以下配置以提供自定義 ZK 服務名稱 # zookeeper.sasl.service-name: zookeeper
# 該配置必須匹配 "security.kerberos.login.contexts" 中的列表(含有一個) # zookeeper.sasl.login-context-name: Client
|
HistoryServer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
# 你可以通過 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,一個一行。
3、masters
host:port
4、zoo.cfg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
# 每個 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 在不同平台下運行的日志文件
1 2 3 4 5 6 7
|
log4j-cli.properties log4j-console.properties log4j-yarn-session.properties log4j.properties logback-console.xml logback-yarn.xml logback.xml
|
sql-client-defaults.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
execution: |
Flink sql client :你可以從官網這里了解 https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/sqlClient.html
總結
本文拿安裝目錄文件下的配置文件講解了下 Flink 目錄下的所有配置。
你也可以通過官網這里學習更多:https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html