您好,登錄后才能下訂單哦!
這篇文章主要講解了“CDP中Kafka的配置方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“CDP中Kafka的配置方法”吧!
Apache Kafka是一個高性能、高可用性、冗余的流消息平臺。
Kafka的功能很像發布/訂閱消息系統,但具有更高的吞吐量、內置分區、復制和容錯能力。對于大規模消息處理應用程序來說,Kafka是一個很好的解決方案。它通常與Apache Hadoop和Spark Streaming一起使用。
操作系統要求
Kafka對操作系統要求的集合。
SUSE Linux企業服務器(SLES)
與CentOS不同,SLES默認情況下會限制虛擬內存。更改此默認值要求,將以下條目添加到/etc/security/limits.conf文件中:
* hard as unlimited* soft as unlimited
您必須為內核正確配置下面三個設置。
文件描述符(File Descriptors)
您可以通過以下步驟在Cloudera Manager中設置文件描述符:轉到Kafka > Configuration > Maximum Process File Descriptors 并設置所需的值。Cloudera建議使用100000或更高的數值進行配置。
最大內存映射(Max Memory Map)
您必須在特定的內核設置中配置最大內存映射數。Cloudera建議配置32000或更高版本。
最大套接字緩沖區大小(Max Socket Buffer Size)
將緩沖區大小設置為大于任何您定義的Kafka send緩沖區。
性能考慮
有關Kafka集群的基本建議的集合。
運行Kafka以獲得最佳性能的最簡單建議是為Kafka代理使用專用主機,為Kafka集群使用專用的ZooKeeper集群。如果這不是一種選項,請考慮以下有關與Kafka集群共享資源的其他準則:
在虛擬機中運行
在現代數據中心中,通常的做法是在虛擬機中運行進程。通常,這可以更好地共享資源。Kafka對I / O吞吐量足夠敏感,以至于VM會干擾代理的正常運行。因此,通常不建議在VM中運行Kafka。但是,如果您在虛擬環境中運行Kafka,則需要依靠VM供應商來幫助您優化Kafka的性能。
不要使用Brokers或ZooKeeper運行其他進程
由于與其他進程的I / O爭用,通常建議避免在與Kafka代理相同的主機上運行其他此類進程。
保持Kafka-ZooKeeper連接穩定
Kafka在很大程度上依賴于穩定的ZooKeeper連接。在Kafka和ZooKeeper之間放置不可靠的網絡將顯示為ZooKeeper脫機到Kafka。不可靠的網絡示例包括:
不要將Kafka / ZooKeeper節點放在不同的網絡上
請勿將Kafka / ZooKeeper節點與其他高網絡負載置于同一網絡上
配額
了解配額以及如何設置配額。
Kafka可以對生產和獲取請求時強制執行配額。生產者和消費者可以使用大量數據。這會壟斷代理資源,導致網絡飽和,并且通常會拒絕向其他客戶端和代理本身提供服務。配額可以防止這些問題,并且對于大型的多租戶集群非常重要,在該集群中,使用少量數據的少量客戶端可能會降低用戶體驗。
配額是按客戶端ID定義的字節速率閾值。客戶端ID在邏輯上標識發出請求的應用程序。一個客戶端ID可以跨越多個生產者和消費者實例。該配額作為單個實體應用于所有實例。例如,如果客戶端ID的生產配額為10 MB / s,則該配額在具有相同ID的所有實例之間共享。
當將Kafka作為服務運行時,配額可以強制執行API限制。默認情況下,每一個唯一的客戶端ID接收以每秒字節數固定的配額,如通過集群配置(quota.producer.default,quota.consumer.default)。此配額是根據每個代理定義的。每個客戶端在受到限制之前,每個代理每秒最多可以發布或獲取 X個字節。
當客戶端超過其配額時,代理不會返回錯誤,而是嘗試降低客戶端的速度。代理計算使客戶端達到其配額所需的延遲量,并將響應延遲該時間量。這種方法使配額違規對客戶端(客戶端指標之外)透明。這也避免了客戶端必須實施特殊的退避和重試行為。
您可以覆蓋需要更高或更低配額的客戶端ID的默認配額。該機制類似于按主題的日志配置替代。將您的客戶端ID覆蓋寫到ZooKeeper的/config/clients。所有代理均會讀取覆蓋,這些覆蓋將立即生效。您可以更改配額,而不必滾動重啟整個集群。
默認情況下,每個客戶端ID都會收到一個不受限的配額。以下配置將每個生產者和消費者客戶端ID的默認配額設置為10 MB / s。
quota.producer.default=10485760quota.consumer.default=10485760
要使用Cloudera Manager設置配額,請打開Kafka Configuration 頁面并搜索Quota。使用提供的字段來設置默認使用者配額或默認生產者配額。
JBOD是指一種系統配置,其中磁盤是獨立使用的,而不是將它們組織到冗余陣列(RAID)中。即使單個磁盤不可靠,使用RAID通常也會導致更可靠的硬盤配置。此類RAID設置在基于商用硬件構建的大規模大數據環境中很常見。啟用RAID的配置更昂貴且設置更復雜。在許多環境中,出于以下原因,首選JBOD配置:
降低存儲成本:建議使用RAID-10來防止磁盤故障。但是,擴展RAID-10配置可能會變得非常昂貴。在每個節點上冗余存儲數據意味著必須倍增存儲空間需求,因為數據也在節點之間復制。
改進的性能:與HDFS一樣,RAID-10配置中最慢的磁盤也限制了整體吞吐量。寫入需要通過RAID控制器。另一方面,使用JBOD時,由于在沒有控制器的情況下跨磁盤進行了隔離寫入,因此提高了IO性能。
設置Kafka的用戶限制
了解有關Kafka用戶的限制以及如何監控它們。
Kafka可以同時打開許多文件。對于大多數類Unix系統,最大打開文件數的默認設置1024是不夠的。任何重大負載都可能導致故障并導致錯誤消息,例如java.io.IOException ...(打開的文件太多)記錄在Kafka或HDFS日志文件中。您可能還會注意到以下錯誤:
ERROR Error in acceptor (kafka.network.Acceptor)
java.io.IOException: Too many open files
Cloudera建議將該值設置為較高的起點,例如32,768。
您可以在Kafka Broker儀表板上監視正在使用的文件描述符的數量。在Cloudera Manager中:
轉到Kafka服務。
選擇一個Kafka 代理。
打開Charts Library > Process Resources,然后向下滾動到File Descriptors圖表。
感謝各位的閱讀,以上就是“CDP中Kafka的配置方法”的內容了,經過本文的學習后,相信大家對CDP中Kafka的配置方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。