大資料之Kafka面試題總結

2021-10-10 20:44:02 字數 1250 閱讀 5441

100w位元組

zk是乙個開放原始碼的高效能協調服務,用於kafka的分布式應用

不可以,不可以越過zk直接聯絡kafka broker,一旦zk停止工作,它就不能服務客戶端的請求

zk主要用於集群中不同節點之間的通訊,在kafka中,他被用於提交偏移量,因此節點失效了,可以從它之前提交的偏移量獲取,此外,還有leader檢測,分布式同步,配置管理,識別新節點,節點實時狀態等功能

如果使用者位於與broker不同的資料中心,則可能需要調優socket緩衝區的大小,以對長網路延遲進行攤銷

有兩種方法

每個分割槽使用乙個單獨的寫入器,每當發現乙個網路錯誤,檢查該分割槽中的最後一條訊息,檢視最後一次寫入是否成功

在訊息中包含乙個主鍵(uuid或者其他),並在使用者中進行反覆制

isr是一組與leaders完全同步的訊息副本,也就是說isr中包含所有提交的訊息,遇到故障,乙個副本從leader中脫離出來,將會從isr中刪除.

確保任何已經發布的訊息不會丟失,可以在機器錯誤,程式錯誤或者軟體公升級中使用

表明***無法像在leader收集資料那樣快速獲取資料

控制器將無法將leadership轉移到首選的副本

kafka支援三種訊息投遞語義

至多一次:訊息可能會丟失

至少一次:訊息可能會重複

精準一次:訊息不會丟失和重複

分為三個方向進行實現:分別是生產者,broker,消費者三個方面

生產者:

ack機制

0不關心響應

1預設的,等待leader確認資訊

-1(all)全部確認

retries重試機制----預設為0,不重試

冪等性:

操作多次的結果和操作一次的結果是一樣的(enable.idempotence=true)

pidsnum

保證我們分割槽的精準一次性

(全域性)事務:read–process–write(kafka–程式–kafka)

broker集群

分割槽機制針對topic進行分割槽–不同分割槽

副本機制

消費者自己手動提交 儲存在外部介質中 比如mysql

只能保證在乙個partition中訊息被某個consumer消費時是順序的,實際上無法保證全域性有序,除非只有乙個partition

kafka的設計是把所有訊息都寫到速度低容量大的硬碟中,換取更加強大的儲存能力.但是實際上使用硬碟並沒有帶來過多的效能損失,kafka主要使用了:零拷貝,頁快取,日誌追加.牽扯到linux系統級別的快取優化和通訊優化

大資料面試題 八 Kafka面試題

無意中發現了乙個巨牛的人工智慧教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看 一樣!覺得太牛了,所以分享給大家。點這裡可以跳轉到教程。大資料面試寶典目錄,1.請說明什麼是apache kafka?2.請說明什麼是傳統的訊息傳遞方法?3.請說明kafka 相對於傳統的訊...

大資料常見面試題之kafka

四.kafka到sparkstreaming怎麼保證資料完整性,怎麼保證資料不重複消費?五.kafka的消費者高階和低階api區別 六.kafka怎麼保證資料消費一次且僅消費一次 七.kafka保證資料一致性和可靠性 八.spark實時作業宕掉,kafka指定的topic資料堆積怎麼辦 九.kafk...

大資料面試題總結

1.spark執行原理 啟動乙個driver程序 用於控制整個流程 當任務提交,首先會去向資源管理器 yarn,申請executor資源,根據sparkcontext獲取執行環境,然後driver會從程式倒著構建成dag圖,在將按照寬窄依賴減dag圖分解成stage,然後將taskset傳送給tas...