《從0到1學習Flink》—— 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 目錄下的所有配置。
你也可以通過官網這裡學習更多:https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html
關注我
本篇文章地址是:http://www.54tianzhisheng.cn/2018/10/27/flink-config/
另外我自己整理了些 Flink 的學習資料,目前已經全部放到微信公眾號了。你可以加我的微信:zhisheng_tian,然後回覆關鍵字:Flink 即可無條件獲取到。
相關文章
1、《從0到1學習Flink》—— Apache Flink 介紹
2、《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建執行簡單程式入門
3、《從0到1學習Flink》—— Flink 配置檔案詳解
4、《從0到1學習Flink》—— Data Source 介紹
5、《從0到1學習Flink》—— 如何自定義 Data Source ?
6、《從0到1學習Flink》—— Data Sink 介紹