1. 程式人生 > >《從0到1學習Flink》—— Flink 配置檔案詳解

《從0到1學習Flink》—— Flink 配置檔案詳解

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

安裝目錄下主要有 flink-conf.yaml 配置、日誌的配置檔案、zk 配置、Flink SQL Client 配置。

基礎配置

# 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
# 指示是否從 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 介紹

7、《從0到1學習Flink》—— 如何自定義 Data Sink ?

8、《從0到1學習Flink》—— Flink Data transformation(轉換)