前言 金三銀四,金三已經過去,到了銀四,根據統計,很多人都會選擇在7月8月跳槽,原因有很多,企業年後會有大量員工離職,員工覺得老公司待遇不怎麼樣?薪資不夠高,想換個新環境等等原因,所以,7月份就變成了招聘與跳槽的旺季 前面一段時間給公司面試了10個大數據開發的人,自己總結了50道面試題,在此,我分享 ...
前言
金三銀四,金三已經過去,到了銀四,根據統計,很多人都會選擇在7月8月跳槽,原因有很多,企業年後會有大量員工離職,員工覺得老公司待遇不怎麼樣?薪資不夠高,想換個新環境等等原因,所以,7月份就變成了招聘與跳槽的旺季
前面一段時間給公司面試了10個大數據開發的人,自己總結了50道面試題,在此,我分享給大家,希望大家在7月份要找工作的朋友,我的這篇文章能給你有所幫助。
大綱
kafka的message包括哪些信息
怎麼查看kafka的offset
一、Map端的shuffle
二、Reduce端的shuffle
spark集群運算的模式
讀:
1、跟namenode通信查詢元數據,找到文件塊所在的datanode伺服器
2、挑選一臺datanode(就近原則,然後隨機)伺服器,請求建立socket流
3、datanode開始發送數據(從磁碟裡面讀取數據放入流,以packet為單位來做校驗)
4、客戶端以packet為單位接收,現在本地緩存,然後寫入目標文件
寫:
1、根namenode通信請求上傳文件,namenode檢查目標文件是否已存在,父目錄是否存在
2、namenode返回是否可以上傳
3、client請求第一個 block該傳輸到哪些datanode伺服器上
4、namenode返回3個datanode伺服器ABC
5、client請求3台dn中的一臺A上傳數據(本質上是一個RPC調用,建立pipeline),A收到請求會繼續調用B,然後B調用C,將真個pipeline建立完成,逐級返回客戶端
6、client開始往A上傳第一個block(先從磁碟讀取數據放到一個本地記憶體緩存),以packet為單位,A收到一個packet就會傳給B,B傳給C;A每傳一個packet會放入一個應答隊列等待應答
7、當一個block傳輸完成之後,client再次請求namenode上傳第二個block的伺服器。
RDD中reduceBykey與groupByKey哪個性能好,為什麼
reduceByKey:reduceByKey會在結果發送至reducer之前會對每個mapper在本地進行merge,有點類似於在MapReduce中的combiner。這樣做的好處在於,在map端進行一次reduce之後,數據量會大幅度減小,從而減小傳輸,保證reduce端能夠更快的進行結果計算。
groupByKey:groupByKey會對每一個RDD中的value值進行聚合形成一個序列(Iterator),此操作發生在reduce端,所以勢必會將所有的數據通過網路進行傳輸,造成不必要的浪費。同時如果數據量十分大,可能還會造成OutOfMemoryError。
通過以上對比可以發現在進行大量數據的reduce操作時候建議使用reduceByKey。不僅可以提高速度,還是可以防止使用groupByKey造成的記憶體溢出問題。
spark sql怎麼取數據的差集
spark2.0的瞭解
rdd 怎麼分區寬依賴和窄依賴
spark streaming 讀取kafka數據的兩種方式
這兩種方式分別是:
kafka的數據存在記憶體還是磁碟
怎麼解決kafka的數據丟失
答案
由於答案太多,我做了一個word文檔,由於博客園不能上傳文件,需要答案可以加小編的qq交流群531629188在裡面直接獲取文檔,也歡迎招聘者,找工作的來,提供一個更大的平臺