您好,登錄后才能下訂單哦!
目錄
1/Zookeeper配置文件詳解
2/kafka配置文件參數詳解
3/生產環境 zk 與 kafka 配置文件備注
4/kafka命令詳解
1/安裝完zookeeper 對其配置文件詳解 zookeeper-3.4.14.tar.gz
在安裝zookeeper的時候我們要去修改zookeeper預裝是conf目錄下面的zoo_sample.cfg這個文件,首先我們要做的事就是重命名這個文件
[hadoop@kafka01-55-11 conf]$ cp zoo_sample.cfg zoo.cfg
[hadoop@kafka01-55-11 conf]$ grep '^[a-Z]' zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
//以上是默認的配置文件參數
預裝的zoo.cfg下面默認有五個屬性,他們分別是:1.tickTime,2.initLimit,3.syncLimit,4.dataDir,5.clientPort
[hadoop@tencent-kafka01-39-110 conf]$ cat zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60 # 如果您需要處理更多客戶端,請增加此值
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3 # 這個參數和上面的參數搭配使用,這個參數指定了需要保留的文件數目。默認是保留3個。
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 #這個參數指定了清理頻率,單位是小時,需要填寫一個1或更大的整數,默認是1,
server.1=10.9.39.110:2888:3888
server.2=10.9.139.65:2888:3888
server.3=10.9.35.206:2888:3888
server.4=10.9.88.40:2888:3888
server.5=10.9.74.126:2888:3888
autopurge.snapRetainCount=20
autopurge.purgeInterval=5
默認情況,tickTime=2sec,那么minSessionTimeout 和 maxSessionTimeout 分別是4sec和40sec
解釋如下:
[hadoop@kafka01-55-11 conf]$ cat zoo_sample.cfg //zk默認必須參數配置如下
# The number of milliseconds of each tick
tickTime=2000 # tick翻譯成中文的話就是滴答滴答的意思,連起來就是滴答滴答的時間,寓意心跳間隔,單位是毫秒,系統默認是2000毫秒 ,也就是間隔兩秒心跳一次。 tickTime的意義:客戶端與服務器或者服務器與服務器之間維持心跳,也就是每個tickTime時間就會發送一次心跳。通過心跳不僅能夠用來監聽機器的工作狀態,還可以通過心跳來控制Flower跟Leader的通信時間,默認情況下FL的會話時常是心跳間隔的兩倍。
# synchronization phase can take
initLimit=10 # 集群中的follower服務器(F)與leader服務器(L)之間初始連接時能容忍的最多心跳數(tickTime的數量)。
# clickhouse 官方文檔使用zk 這個 initLimit=30000
# The number of ticks that can pass between #可以在兩者之間傳遞的滴答數
# sending a request and getting an acknowledgement #發送請求并獲得確認
syncLimit=5 # 集群中flower服務器(F)跟leader(L)服務器之間的請求和答應最多能容忍的心跳數。
# clickhouse官方給出的 syncLimit=10
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper # 該屬性對應的目錄是用來存放myid信息跟一些版本,日志,跟服務器唯一的ID信息等。
# the port at which the clients will connect
clientPort=2181 # 客戶端連接的接口,客戶端連接zookeeper服務器的端口,zookeeper會監聽這個端口,接收客戶端的請求訪問!這個端口默認是2181。
# the maximum number of client connections. # 最大客戶端連接數。
# increase this if you need to handle more clients
#maxClientCnxns=60 # 如果您需要處理更多客戶端,請增加此值 clickhouse官方用的zk中 這個值為2000
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir # 要在dataDir中保留的快照數
#autopurge.snapRetainCount=3 # 這個參數和下面的參數搭配使用,這個參數指定了需要保留的文件數目。默認是保留3個。 clickhouse指定這個值為10 #保留10個文件
# Purge task interval in hours
# Set to "0" to disable auto purge feature #設置為“0”以禁用自動清除功能
#autopurge.purgeInterval=1 # 這個參數指定了清理頻率,單位是小時,需要填寫一個1或更大的整數,默認是1,
解釋
//autopurge.purgeInterval 這個參數指定了清理頻率,單位是小時,需要填寫一個1或更大的整數,默認是1,
//autopurge.snapRetainCount 這個參數和上面的參數搭配使用,這個參數指定了需要保留的文件數目。默認是保留3個。
//默認情況,tickTime=2sec,那么minSessionTimeout 和 maxSessionTimeout 分別是4sec和40sec
默認參數中沒有 maxSessionTimeout=90000 # minSessionTimeout, maxSessionTimeout:一般,客戶端連接zookeeper的時候,都會設置一個session timeout,如果超過這個時間client沒有zookeeper server有聯系,則這個session被設置為過期(如果這個session上有臨時節點,則會被全部刪除),但是這個時間不是客戶端可以無限設置的,服務器可以設置這兩個參數來限制客戶端設置的范圍。 15分鐘
# clickhouse官方建議 maxSessionTimeout = 60000000 1000分鐘 所有,我們可以考慮調大此參數值
zookeeper 的擴展配置 高級配置項:
globalOutstandingLimit : 這個配置指定了等待處理的最大請求數量的限制(zookeeper.globalOutstandingLimit)。
client發送請求的速度可能會比server端處理的速度快,會導致請求在server端排隊,最終(在若干秒內)會使server的內存耗盡。為了避免這一點,如果等待的請求數量達到了globalOutstandingLimit,server端會拒絕client的請求。但是這個限制不是hard限制。每一個client至少能有一個outstanding請求,否則連接會開始出現超時。所以,當達到globalOutstandingLimit之后,只有在沒有任何的pending請求時,server才會從client連接讀取數據。
為了決定某一臺確定的server的限制,可以簡單的用這個配置項的值除以server的數量。現在沒有一種聰明的方式來決定這個值來進行限制,總的說來,這個配置項的值就是outstanding請求的上限。實際上,負載無法在server間進行均衡,總有一些server的負載會高一些,即使沒有達到上限。
默認的限制為1000個請求。通常不需要改變這個配置,如果有很多client會發送非常大的請求,你需要調低這個值,但是在實踐中通常不需要改變這個值。
maxClientCnxns: 決定了每個IP地址可以發起的socket連接個最大個數。
ZooKeeper使用了flow control和limit來避免連接過載。建立連接消耗的資源遠遠超過普通的操作消耗的資源。一瞬間過多的請求會造成拒絕服務的問題,所以加上了這個限制,當某個IP的連接超過了這個限制,server會拒絕連接。默認值為60。 建議 100
clientPortAddress: 默認server會監聽所有的網絡接口提供client來連接。有一些服務器會有多個網絡接口,通常一些為內網接口一些為外網接口。如果不想開放外網接口,可以將此配置項設為內網接口。
minSessionTimeout: 這是session過期的最小超時時間,單位為毫秒。當client發起連接時,它會請求一個特定的超時時間,但是實際的超時時間并能小于這個配置項。
開發者喜歡立即并準確的檢測到client端的失敗。但不幸的是,系統不能實時的檢測到,實際上是使用心跳和超時來做的。超時的使用依賴于client端和server端的網絡延遲和可靠性。超時時間必須至少等于網絡的round trip time,但是偶爾會有丟包的情況,在這種情況下接收響應的時間會增加,因為會發送發送丟失的包。
默認minSessionTimeout是tickTime的2倍。把這個值設置得過低的話會導致錯誤的檢測client的失敗。設置得太高的話會導致檢測client的失敗的延遲。 //一般不要考慮此參數
maxSessionTimeout:這是最大的session超時時間,單位為毫秒。當client發起連接時,它會請求一個特定的超時時間,但是實際的超時時間并能大于這個配置項。
盡管這個配置不會影響系統性能,但會限制client消耗系統資源的時間。默認是tickTime的20倍。 tickTime=2s maxSessionTimeout=40s默認 我們生產配置設置成 90s
preAllocSize:
對應的Java系統屬性:zookeeper.preAllocSize。
用于配置ZooKeeper事務日志文件預分配的磁盤空間大小。默認的塊大小是64M。改變塊大小的其中一個原因是當數據快照文件生成比較頻繁時可以適當減少塊大小。比如 1000次事務會新產生一個快照(參數為snapCount),新產生快照后會用新的事務日志文件,假設一個事務信息大小100b,那么事務日志預分配的磁盤空間大小為100kb會比較好。
// clickhouse 官方給定的值為 preAllocSize = 131072
snapCount
對應的Java系統屬性:zookeeper.snapCount。
ZooKeeper 將事務記錄到事務日志中。當 snapCount 個事務被寫到一個日志文件后,啟動一個快照并創建一個新的事務日志文件。snapCount 的默認值是 100,000
// clickhouse 官方給的值為 snapCount = 3000000
leaderServes
對應的Java系統屬性:zookeeper.leaderServes。
用于配置Leader是否接受客戶端連接,默認值是“yes”,即Leader將會接受客戶端連接。在ZooKeeper中,Leader服務器主要協調事務更新請求。對于事務更新請求吞吐很高而讀取請求吞吐很低的情況可以配置Leader不接受客戶端連接,這樣就可以專注于協調工作。
注意:當ZooKeeper集群中服務器的數量超過3個時,建議開啟Leader選舉。
// clickhouse 官方配置文件為 leaderServes=yes 默認是開啟的
ZooKeeper的配置文件優化性能(轉) https://www.cnblogs.com/EasonJim/p/7488834.html
// 此鏈接參數 很重要,很詳細
這里有一個坑,就是
server.1=10.2.10.174:2888:3888 //這里要寫IP 不要寫成server.1=emm-kafka01-10--174:2888:3888
為什么呢?
寫主機名,zk能起來,kafka也能起來,但是kafka他去解析ZK的時候,他不通過etc/hosts 以后會出問題
這里面,我們就用IP,這里注意下
(其中2181代表:客戶端與服務器連接所用的端口)
(其中2888代表:leader與follower之間的通信用的端口)
(其中3888代表:follower之間選舉投票用的端口)
zookeeper的配置參數詳解(zoo.cfg) https://www.orchome.com/1419 不錯
#################################################################
grep '^[a-Z]' zoo.cfg
tickTime=2000 # tick翻譯成中文的話就是滴答滴答的意思,連起來就是滴答滴答的時間,寓意心跳間隔,單位是毫秒,系統默認是2000毫秒 ,也就是間隔兩秒心跳一次。
tickTime的意義:客戶端與服務器或者服務器與服務器之間維持心跳,也就是每個tickTime時間就會發送一次心跳。通過心跳不僅能夠用來監聽機器的工作狀態,還可以通過心跳來控制Flower跟Leader的通信時間,默認情況下FL的會話時常是心跳間隔的兩倍。
initLimit=10 # 集群中的follower服務器(F)與leader服務器(L)之間初始連接時能容忍的最多心跳數(tickTime的數量)。
//白話:Follower在啟動過程中,會從Leader同步所有最新數據,然后確定自己能夠對外服務的起始狀態。Leader允許F在initLimit時間內完成這個工作。
syncLimit=5 # 集群中flower服務器(F)跟leader(L)服務器之間的請求和答應最多能容忍的心跳數。
//白話:在運行過程中,Leader負責與ZK集群中所有機器進行通信,例如通過一些心跳檢測機制,來檢測機器的存活狀態。如果L發出心跳包在syncLimit之后,還沒有從F那里收到響應,那么就認為這個F已經不在線了。
dataDir=/data/zookeeper/dataDir # 該屬性對應的目錄是用來存放myid信息跟一些版本,日志,跟服務器唯一的ID信息等。
clientPort=2181 # 客戶端連接的接口,客戶端連接zookeeper服務器的端口,zookeeper會監聽這個端口,接收客戶端的請求訪問!這個端口默認是2181。
maxSessionTimeout=90000 # minSessionTimeout, maxSessionTimeout:一般,客戶端連接zookeeper的時候,都會設置一個session timeout,如果超過這個時間client沒有zookeeper server有聯系,則這個session被設置為過期(如果這個session上有臨時節點,則會被全部刪除),但是這個時間不是客戶端可以無限設置的,服務器可以設置這兩個參數來限制客戶端設置的范圍。 15分鐘
maxClientCnxns=60 # 如果您需要處理更多客戶端,請增加此值
server.1=10.9.39.110:2888:3888
server.2=10.9.139.65:2888:3888
server.3=10.9.35.206:2888:3888
server.4=10.9.88.40:2888:3888
server.5=10.9.74.126:2888:3888
autopurge.snapRetainCount=20 #保留20個文件
autopurge.purgeInterval=5 #保留5小時內的日志
//此處我們的配置就是:保留5小時內的日志,并且保留20個文件 建議在生產上 設置成 保留48小時 并且保留20個文件 我們線上保留的是 5小時
//autopurge.purgeInterval 這個參數指定了清理頻率,單位是小時,需要填寫一個1或更大的整數,默認是1,
//autopurge.snapRetainCount 這個參數和上面的參數搭配使用,這個參數指定了需要保留的文件數目。默認是保留3個。
//默認情況,tickTime=2sec,那么minSessionTimeout 和 maxSessionTimeout 分別是4sec和40sec
#################################################################
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。