Flink 從 0 到 1 學習 —— Flink 配置文件詳解

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

<!--more-->

安裝目錄下主要有 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/project...

總結

本文拿安裝目錄文件下的配置文件講解了下 Flink 目錄下的所有配置。

你也可以通過官網這裏學習更多:https://ci.apache.org/project...

關注我

本篇文章地址是:http://www.54tianzhisheng.cn/2018/10/27/flink-config/

微信公衆號:zhisheng

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

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

Github 代碼倉庫

https://github.com/zhisheng17/flink-learning/

以後這個項目的所有代碼都將放在這個倉庫裏,包含了自己學習 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章