前言
大家好,我是
manor,作為一名大資料專業學生、愛好者,深知面試重要性,很多學生已經進入暑假模式,暑假也不能懈怠,正值金九銀十的秋招
接下來我準備用30天時間,基于大資料開發崗面試中的高頻面試題,以每日5題的形式,帶你過一遍熱門面試題及提供部分個人理解,相信只要一路走來,榷訓月累,我們侄訓在最高處見,
以古人的話共勉:道阻且長,行則將至;行而不輟,未來可期!

本欄目大資料開發崗高頻面試題主要出自
大資料技術專欄的各個小專欄,由于個別筆記上傳太早,排版雜亂,后面會進行原文美化、增加,
文章目錄
- 前言
- 面試題 01、請簡述如何使用Kafka Simple Java API 實作資料消費?描述具體的類及方法
- 面試題02、請簡述Kafka生產資料時如何保證生產資料不丟失?
- 面試題 03 請簡述Kafka生產資料時如何保證生產資料不重復?
- 面試題04、Kafka中生產者的資料磁區規則是什么,如何自定義磁區規則?
- 面試題05、Kafka中消費者消費資料的規則是什么?
- 總結
面試題 01、請簡述如何使用Kafka Simple Java API 實作資料消費?描述具體的類及方法
?step1:構建消費者連接物件:KafkaConsumer
–需要配置物件:管理配置,例如連接地址:Properties
?step2:消費者需要訂閱Topic
–KafkaConsumer:subscribe(List)
?step3:消費資料
–KafkaConsumer:poll:實作拉取消費資料
–ConsumerRecords:拉取到的所有資料集合
–ConsumerRecord:消費到的每一條資料
?topic:獲取資料中的Topic
?partition:獲取資料中的磁區編號
?offset:獲取資料的offset
?key:獲取資料中的Key
?value:獲取資料中的Value
面試題02、請簡述Kafka生產資料時如何保證生產資料不丟失?
?acks機制:當接收方收到資料以后,就會回傳一個確認的ack訊息
?生產者向Kafka生產資料,根據配置要求Kafka回傳ACK
–ack=0:生產者不管Kafka有沒有收到,直接發送下一條
?優點:快
?缺點:容易導致資料丟失,概率比較高
–ack=1:生產者將資料發送給Kafka,Kafka等待這個磁區leader副本寫入成功,回傳ack確認,生產者發送下一條
?優點:性能和安全上做了平衡
?缺點:依舊存在資料丟失的概率,但是概率比較小
–ack=all/-1:生產者將資料發送給Kafka,Kafka等待這個磁區所有副本全部寫入,回傳ack確認,生產者發送下一條
?優點:資料安全
?缺點:慢
?如果使用ack=all,可以搭配min.insync.replicas引數一起使用,可以提高效率
–min.insync.replicas:表示最少同步幾個副本以后,就回傳ack
?如果生產者沒有收到ack,就使用重試機制,重新發送上一條訊息,直到收到ack
面試題 03 請簡述Kafka生產資料時如何保證生產資料不重復?
?資料重復的場景:Kafka寫入資料,回傳ack,但是ack丟失,生產者沒有收到ack,重新寫入資料,導致Kafka資料重復
?Kafka中使用冪等性機制來保證生產資料不重復
–step1:發送資料時,給每條資料增加一個資料id的編號,每次下一條資料的編號自增1
–step2:Kafka將資料寫入,并記住寫入的資料id
–step3:如果下一條資料的id與上一次的資料id一致,就不寫入,直接回傳ack
面試題04、Kafka中生產者的資料磁區規則是什么,如何自定義磁區規則?
?如果指定了磁區:就寫入指定的磁區
?如果沒有指定磁區,就判斷是否指定了Key
–如果指定了Key:根據Key的Hash取余磁區
–如果沒有指定Key:根據黏性磁區來實作
?自定義磁區
–開發一個類實作Partitioner介面
–實作partition方法
–在生產者中指定磁區器的配置
面試題05、Kafka中消費者消費資料的規則是什么?
?消費者根據Offset對Topic中的磁區進行消費
?第一次消費:根據auto.offset.reset屬性進行消費
–latest:從最新的位置開始消費
–earliest:從頭開始消費
?第二次消費:根據上一次的offset+1繼續消費
總結
今天我們復習了面試中常考的Kakfa相關的五個問題,你做到心中有數了么?
其實做這個專欄我也有私心,就是希望借助每天寫一篇面試題,督促自己學習,以免在吹水群甚至都沒有談資!
對了,如果你的朋友也在準備面試,請將這個系列扔給他,
好了,今天就到這里,學廢了的同學,記得在評論區留言:打卡,給同學們以激勵,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290029.html
標籤:其他
上一篇:Hive-安裝
