《從0到1學習Flink》—— Flink 配置檔案詳解
前面文章我們已經知道 Flink 是什麼東西了,安裝好 Flink 後,我們再來看下安裝路徑下的配置檔案吧。
安裝目錄下主要有 flink-conf.yaml 配置、日誌的配置檔案、zk 配置、Flink SQL Client 配置。
flink-conf.yaml
基礎配置
1# jobManager 的IP地址 2jobmanager.rpc.address: localhost 3 4# JobManager 的埠號 5jobmanager.rpc.port: 6123 6 7# JobManager JVM heap 記憶體大小 8jobmanager.heap.size: 1024m 9 10# TaskManager JVM heap 記憶體大小 11taskmanager.heap.size: 1024m 12 13# 每個 TaskManager 提供的任務 slots 數量大小 14 15taskmanager.numberOfTaskSlots: 1 16 17# 程式預設平行計算的個數 18parallelism.default: 1 19 20# 檔案系統來源 21# fs.default-scheme
高可用性配置
1# 可以選擇 'NONE' 或者 'zookeeper'. 2# high-availability: zookeeper 3 4# 檔案系統路徑,讓 Flink 在高可用性設定中持久儲存元資料 5# high-availability.storageDir: hdfs:///flink/ha/ 6 7# zookeeper 叢集中仲裁者的機器 ip 和 port 埠號 8# high-availability.zookeeper.quorum: localhost:2181 9 10# 預設是 open,如果 zookeeper security 啟用了該值會更改成 creator 11# high-availability.zookeeper.client.acl: open
容錯和檢查點 配置
1# 用於儲存和檢查點狀態 2# state.backend: filesystem 3 4# 儲存檢查點的資料檔案和元資料的預設目錄 5# state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints 6 7# savepoints 的預設目標目錄(可選) 8# state.savepoints.dir: hdfs://namenode-host:port/flink-checkpoints 9 10# 用於啟用/禁用增量 checkpoints 的標誌 11# state.backend.incremental: false
web 前端配置
1# 基於 Web 的執行時監視器偵聽的地址. 2#jobmanager.web.address: 0.0.0.0 3 4#Web 的執行時監視器埠 5rest.port: 8081 6 7# 是否從基於 Web 的 jobmanager 啟用作業提交 8# jobmanager.web.submit.enable: false
高階配置
1# io.tmp.dirs: /tmp 2 3# 是否應在 TaskManager 啟動時預先分配 TaskManager 管理的記憶體 4# taskmanager.memory.preallocate: false 5 6# 類載入解析順序,是先檢查使用者程式碼 jar(“child-first”)還是應用程式類路徑(“parent-first”)。 預設設定指示首先從使用者程式碼 jar 載入類 7# classloader.resolve-order: child-first 8 9 10# 用於網路緩衝區的 JVM 記憶體的分數。 這決定了 TaskManager 可以同時擁有多少流資料交換通道以及通道緩衝的程度。 如果作業被拒絕或者您收到系統沒有足夠緩衝區的警告,請增加此值或下面的最小/最大值。 另請注意,“taskmanager.network.memory.min”和“taskmanager.network.memory.max”可能會覆蓋此分數 11 12# taskmanager.network.memory.fraction: 0.1 13# taskmanager.network.memory.min: 67108864 14# taskmanager.network.memory.max: 1073741824
Flink 叢集安全配置
1# 指示是否從 Kerberos ticket 快取中讀取 2# security.kerberos.login.use-ticket-cache: true 3 4# 包含使用者憑據的 Kerberos 金鑰表文件的絕對路徑 5# security.kerberos.login.keytab: /path/to/kerberos/keytab 6 7# 與 keytab 關聯的 Kerberos 主體名稱 8# security.kerberos.login.principal: flink-user 9 10# 以逗號分隔的登入上下文列表,用於提供 Kerberos 憑據(例如,`Client,KafkaClient`使用憑證進行 ZooKeeper 身份驗證和 Kafka 身份驗證) 11# security.kerberos.login.contexts: Client,KafkaClient
Zookeeper 安全配置
1# 覆蓋以下配置以提供自定義 ZK 服務名稱 2# zookeeper.sasl.service-name: zookeeper 3 4# 該配置必須匹配 "security.kerberos.login.contexts" 中的列表(含有一個) 5# zookeeper.sasl.login-context-name: Client
HistoryServer
1# 你可以通過 bin/historyserver.sh (start|stop) 命令啟動和關閉 HistoryServer 2 3# 將已完成的作業上傳到的目錄 4# jobmanager.archive.fs.dir: hdfs:///completed-jobs/ 5 6# 基於 Web 的 HistoryServer 的地址 7# historyserver.web.address: 0.0.0.0 8 9# 基於 Web 的 HistoryServer 的埠號 10# historyserver.web.port: 8082 11 12# 以逗號分隔的目錄列表,用於監視已完成的作業 13# historyserver.archive.fs.dir: hdfs:///completed-jobs/ 14 15# 重新整理受監控目錄的時間間隔(以毫秒為單位) 16# historyserver.archive.fs.refresh-interval: 10000
檢視下另外兩個配置 slaves / master
2、slaves
裡面是每個 worker 節點的 IP/Hostname,每一個 worker 結點之後都會執行一個 TaskManager,一個一行。
1localhost
3、masters
host:port
1localhost:8081
4、zoo.cfg
1# 每個 tick 的毫秒數 2tickTime=2000 3 4# 初始同步階段可以採用的 tick 數 5initLimit=10 6 7# 在傳送請求和獲取確認之間可以傳遞的 tick 數 8syncLimit=5 9 10# 儲存快照的目錄 11# dataDir=/tmp/zookeeper 12 13# 客戶端將連線的埠 14clientPort=2181 15 16# ZooKeeper quorum peers 17server.1=localhost:2888:3888 18# server.2=host:peer-port:leader-port
5、日誌配置
Flink 在不同平臺下執行的日誌檔案
1log4j-cli.properties 2log4j-console.properties 3log4j-yarn-session.properties 4log4j.properties 5logback-console.xml 6logback-yarn.xml 7logback.xml
sql-client-defaults.yaml
1execution: 2# 'batch' or 'streaming' execution 3type: streaming 4# allow 'event-time' or only 'processing-time' in sources 5time-characteristic: event-time 6# interval in ms for emitting periodic watermarks 7periodic-watermarks-interval: 200 8# 'changelog' or 'table' presentation of results 9result-mode: changelog 10# parallelism of the program 11parallelism: 1 12# maximum parallelism 13max-parallelism: 128 14# minimum idle state retention in ms 15min-idle-state-retention: 0 16# maximum idle state retention in ms 17max-idle-state-retention: 0 18 19deployment: 20# general cluster communication timeout in ms 21response-timeout: 5000 22# (optional) address from cluster to gateway 23gateway-address: "" 24# (optional) port from cluster to gateway 25gateway-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
原文釋出時間為:2018-11-12
本文作者:zhisheng
本文來自雲棲社群合作伙伴“ ofollow,noindex">zhisheng ”,瞭解相關資訊可以關注“ zhisheng ”。