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

zhisheng發表於2019-09-21

前面文章我們已經知道 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

關注我

本篇文章地址是:www.54tianzhisheng.cn/2018/10/27/…

微信公眾號:zhisheng

另外我自己整理了些 Flink 的學習資料,目前已經全部放到微信公眾號(zhisheng)了,你可以回覆關鍵字:Flink 即可無條件獲取到。另外也可以加我微信 你可以加我的微信:yuanblog_tzs,探討技術!

更多私密資料請加入知識星球!

Github 程式碼倉庫

github.com/zhisheng17/…

以後這個專案的所有程式碼都將放在這個倉庫裡,包含了自己學習 flink 的一些 demo 和部落格

部落格

1、Flink 從0到1學習 —— Apache Flink 介紹

2、Flink 從0到1學習 —— Mac 上搭建 Flink 1.6.0 環境並構建執行簡單程式入門

3、Flink 從0到1學習 —— Flink 配置檔案詳解

4、Flink 從0到1學習 —— Data Source 介紹

5、Flink 從0到1學習 —— 如何自定義 Data Source ?

6、Flink 從0到1學習 —— Data Sink 介紹

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

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

9、Flink 從0到1學習 —— 介紹 Flink 中的 Stream Windows

10、Flink 從0到1學習 —— Flink 中的幾種 Time 詳解

11、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 ElasticSearch

12、Flink 從0到1學習 —— Flink 專案如何執行?

13、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 Kafka

14、Flink 從0到1學習 —— Flink JobManager 高可用性配置

15、Flink 從0到1學習 —— Flink parallelism 和 Slot 介紹

16、Flink 從0到1學習 —— Flink 讀取 Kafka 資料批量寫入到 MySQL

17、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 RabbitMQ

18、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 HBase

19、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 HDFS

20、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 Redis

21、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 Cassandra

22、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 Flume

23、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 InfluxDB

24、Flink 從0到1學習 —— Flink 讀取 Kafka 資料寫入到 RocketMQ

25、Flink 從0到1學習 —— 你上傳的 jar 包藏到哪裡去了

26、Flink 從0到1學習 —— 你的 Flink job 日誌跑到哪裡去了

27、阿里巴巴開源的 Blink 實時計算框架真香

28、Flink 從0到1學習 —— Flink 中如何管理配置?

29、Flink 從0到1學習—— Flink 不可以連續 Split(分流)?

30、Flink 從0到1學習—— 分享四本 Flink 國外的書和二十多篇 Paper 論文

31、Flink 架構、原理與部署測試

32、為什麼說流處理即未來?

33、OPPO 資料中臺之基石:基於 Flink SQL 構建實時資料倉儲

34、流計算框架 Flink 與 Storm 的效能對比

35、Flink狀態管理和容錯機制介紹

36、Apache Flink 結合 Kafka 構建端到端的 Exactly-Once 處理

37、360深度實踐:Flink與Storm協議級對比

38、如何基於Flink+TensorFlow打造實時智慧異常檢測平臺?只看這一篇就夠了

39、Apache Flink 1.9 重大特性提前解讀

40、Flink 全網最全資源(視訊、部落格、PPT、入門、實戰、原始碼解析、問答等持續更新)

41、Flink 靈魂兩百問,這誰頂得住?

42、Flink 從0到1學習 —— 如何使用 Side Output 來分流?

43、你公司到底需不需要引入實時計算引擎?

44、一文讓你徹底瞭解大資料實時計算引擎 Flink

原始碼解析

1、Flink 原始碼解析 —— 原始碼編譯執行

2、Flink 原始碼解析 —— 專案結構一覽

3、Flink 原始碼解析—— local 模式啟動流程

4、Flink 原始碼解析 —— standalone session 模式啟動流程

5、Flink 原始碼解析 —— Standalone Session Cluster 啟動流程深度分析之 Job Manager 啟動

6、Flink 原始碼解析 —— Standalone Session Cluster 啟動流程深度分析之 Task Manager 啟動

7、Flink 原始碼解析 —— 分析 Batch WordCount 程式的執行過程

8、Flink 原始碼解析 —— 分析 Streaming WordCount 程式的執行過程

9、Flink 原始碼解析 —— 如何獲取 JobGraph?

10、Flink 原始碼解析 —— 如何獲取 StreamGraph?

11、Flink 原始碼解析 —— Flink JobManager 有什麼作用?

12、Flink 原始碼解析 —— Flink TaskManager 有什麼作用?

13、Flink 原始碼解析 —— JobManager 處理 SubmitJob 的過程

14、Flink 原始碼解析 —— TaskManager 處理 SubmitJob 的過程

15、Flink 原始碼解析 —— 深度解析 Flink Checkpoint 機制

16、Flink 原始碼解析 —— 深度解析 Flink 序列化機制

17、Flink 原始碼解析 —— 深度解析 Flink 是如何管理好記憶體的?

18、Flink Metrics 原始碼解析 —— Flink-metrics-core

19、Flink Metrics 原始碼解析 —— Flink-metrics-datadog

20、Flink Metrics 原始碼解析 —— Flink-metrics-dropwizard

21、Flink Metrics 原始碼解析 —— Flink-metrics-graphite

22、Flink Metrics 原始碼解析 —— Flink-metrics-influxdb

23、Flink Metrics 原始碼解析 —— Flink-metrics-jmx

24、Flink Metrics 原始碼解析 —— Flink-metrics-slf4j

25、Flink Metrics 原始碼解析 —— Flink-metrics-statsd

26、Flink Metrics 原始碼解析 —— Flink-metrics-prometheus

26、Flink Annotations 原始碼解析

27、Flink 原始碼解析 —— 如何獲取 ExecutionGraph ?

28、大資料重磅炸彈——實時計算框架 Flink

29、Flink Checkpoint-輕量級分散式快照

30、Flink Clients 原始碼解析原文出處:zhisheng的部落格,歡迎關注我的公眾號:zhisheng

相關文章