『壹』 「每日一道大數據面試題系列」spark如何調優
如果面試時被問到spark任務如何調優,我們該如何回答呢?
下面我們從四大方面回答這個問題,保證吊打面試官。
一、spark性能調優
1、分配更多的資源
比如增加執行器個數(num_executor)、增加執行器個數(executor_cores)、增加執行器內存(executor_memory)
2、調節並行度
spark.default.parallelism
3、重構RDD架構以及RDD持久化
盡量去復用RDD,差不多的RDD可以抽取成一個共同的RDD,公共RDD一定要實現持久化
4、廣播變數
SparkContext.broadcast方法創建一個對象,通過value方法訪問
5、使用kryo序列化
SparkConf中設置屬性:spark.serializer: org.apache.spark.serializer.kryoSerializer
6、使用fastutil優化數據格式(代替java中的Array、List、Set、Map)
7、調節數據本地化等待時長
調節參數: spark.locality.wait
二、JVM調優
降低cache操作的內存佔比 1.6版本之前使用的是靜態內存管理
spark中堆內存被劃分為兩塊:
一塊是專門來給RDD作cachepersist持久化的 StorageMemory,另一塊是給spark運算元函數運行使用的,存放函數中自己創建的對象。
1.6版本之後採用統一內存管理機制
storage和execution各佔50%,若己方不足對方空餘可佔用對方空間
可嘗試調節executor堆外內存
spark.yarn.executor.memoryOverhead = 2048m
調節連接等待時長
spark.core.connection.ack.wait.timeout = 300
三、shuffle數據傾斜調優
1、預聚合源數據,對hive源表提前進行聚合操作,在hive聚合之後,spark任務再去讀取
2、檢查傾斜的key是否是臟數據,可以提前過濾
3、提高shuffle操作rece的並行度
4、使用隨機key實現雙重聚合
5、將rece端 join轉換成map端 join
6、sample采樣傾斜key,單獨進行join後在union
7、使用隨機數以及擴容表進行join
四、運算元調優
1、使用mapPartition提升map類操作的性能
2、filter過後使用coalesce減少分區數量
3、使用foreachPartition優化寫數據性能
4、使用repartition解決sparkSql低並行度的性能問題
5、receByKey替換groupByKey實現map讀預聚合
『貳』 大數據技術Hadoop面試題
單項選擇題
1.下面哪個程序負責HDFS數據存儲。
a)NameNode
b)Jobtracker
c)Datanode
d)secondaryNameNode
e)tasktracker
2.HDfS中的block默認保存幾份?
a)3份
b)2份
c)1份
d)不確定
3.下列哪個程序通常與NameNode在一個節點啟動?
a)SecondaryNameNode
b)DataNode
c)TaskTracker
d)Jobtracker
4.Hadoop作者
a)MartinFowler
b)KentBeck
c)Dougcutting
5.HDFS默認BlockSize
a)32MB
b)64MB
c)128MB
6.下列哪項通常是集群的最主要瓶頸
a)CPU
b)網路
c)磁碟
d)內存
7.關於SecondaryNameNode哪項是正確的?
a)它是NameNode的熱備
b)它對內存沒有要求
c)它的目的是幫助NameNode合並編輯日誌,減少NameNode啟動時間
d)SecondaryNameNode應與NameNode部署到一個節點
多選題
8.下列哪項可以作為集群的管理工具
a)Puppet
b)Pdsh
c)ClouderaManager
d)d)Zookeeper
9.配置機架感知的下面哪項正確
a)如果一個機架出問題,不會影響數據讀寫
b)寫入數據的時候會寫到不同機架的DataNode中
c)MapRece會根據機架獲取離自己比較近的網路數據
10.Client端上傳文件的時候下列哪項正確
a)數據經過NameNode傳遞給DataNode
b)Client端將文件切分為Block,依次上傳
c)Client只上傳數據到一台DataNode,然後由NameNode負責Block復制工作
11.下列哪個是Hadoop運行的模式
a)單機版
b)偽分布式
c)分布式
12.Cloudera提供哪幾種安裝CDH的方法
a)Clouderamanager
b)Tarball
c)Yumd)Rpm
判斷題
13.Ganglia不僅可以進行監控,也可以進行告警。()
14.BlockSize是不可以修改的。()
15.Nagios不可以監控Hadoop集群,因為它不提供Hadoop支持。()
16.如果NameNode意外終止,SecondaryNameNode會接替它使集群繼續工作。() 1 2 3
『叄』 面試問你們大數據項目的數據結構是怎樣的
一些最常見的編程面來試問自題:
1.數組編碼面試問題
數組是最基本的數據結構,它將元素存儲在一個連續的內存位置。這也是面試官們熱衷的話題之一。以下是一些熱門的基於數組的編程面試問題:
1.如何在一個1到100的整數數組中找到丟失的數字?(方法)
2.如何在給定的整數數組中找到重復的數字? (方法)
3.如何在未排序整數數組中找到最大值和最小值? (方法)
4.如何找到數組所有和等於一個給定數的數對? (方法)
5.如果一個數組包含多重復制,那麼如何找到重復的數字? (方法)
6.在Java中如何從給定數組中刪除多重復制? (方法)
7.如何使用快速排序演算法對整數數組進行排序? (方法)
8.如何從數組中刪除多重復制? (方法)
9.如何在Java中對數組進行反向操作? (方法)
10.如何在不使用任何庫的情況下從數組中刪除多重復制? (方法)
這些問題不僅可以幫助你提高解決問題的能力,還可以提高你對數組數據結構的認識。
『肆』 大數據面試題及答案誰能分享一下
大數據時代才剛剛開始。隨著越來越多的公司傾向於大數據運營,人才需求達到歷史最高水平。這對你意味著什麼?如果您想在任何大數據崗位上工作,它只能轉化為更好的機會。您可以選擇成為數據分析師,數據科學家,資料庫管理員,大數據工程師,Hadoop大數據工程師等。在本文中,慧都網將介紹與大數據相關的前10大數據面試問題。
以下是最重要的大數據面試問題以及具體問題的詳細解答。對於更廣泛的問題,答案取決於您的經驗,我們將分享一些如何回答它們的提示。
無論何時進行大數據采訪,采訪者都可能會詢問一些基本問題。無論您是大數據領域的新手還是經驗豐富,都需要基礎知識。因此,讓我們來介紹一些常見的基本大數據面試問題以及破解大數據面試的答案。
1.您對「大數據」一詞有何了解?
答:大數據是與復雜和大型數據集相關的術語。關系資料庫無法處理大數據,這就是使用特殊工具和方法對大量數據執行操作的原因。大數據使公司能夠更好地了解其業務,並幫助他們從定期收集的非結構化和原始數據中獲取有意義的信息。大數據還允許公司採取數據支持的更好的業務決策。
2.大數據的五個V是什麼?
答:大數據的五個V如下:
Volume -Volume表示體積大,即以高速率增長的數據量,即以PB為單位的數據量
Velocity -Velocity是數據增長的速度。社交媒體在數據增長速度方面發揮著重要作用。
Variety -Variety是指不同的數據類型,即各種數據格式,如文本,音頻,視頻等。
Veracity -Veracity是指可用數據的不確定性。由於大量數據帶來不完整性和不一致性,因此產生了准確性。
Value -價值是指將數據轉化為價值。通過將訪問的大數據轉換為價值,企業可以創造收入。
YARN的兩個主要組成部分:
ResourceManager-該組件接收處理請求,並根據處理需要相應地分配給各個NodeManager。
NodeManager-它在每個單個數據節點上執行任務
7.為什麼Hadoop可用於大數據分析?
答:由於數據分析已成為業務的關鍵參數之一,因此,企業正在處理大量結構化,非結構化和半結構化數據。在Hadoop主要支持其功能的情況下,分析非結構化數據非常困難
存儲
處理
數據採集
此外,Hadoop是開源的,可在商用硬體上運行。因此,它是企業的成本效益解決方案。
8.什麼是fsck?
答:fsck代表文件系統檢查。它是HDFS使用的命令。此命令用於檢查不一致性以及文件中是否存在任何問題。例如,如果文件有任何丟失的塊,則通過此命令通知HDFS。
9. NAS(網路附加存儲)和HDFS之間的主要區別是什麼?
答:NAS(網路附加存儲)和HDFS之間的主要區別 -
HDFS在一組計算機上運行,而NAS在單個計算機上運行。因此,數據冗餘是HDFS中的常見問題。相反,復制協議在NAS的情況下是不同的。因此,數據冗餘的可能性要小得多。
在HDFS的情況下,數據作為數據塊存儲在本地驅動器中。在NAS的情況下,它存儲在專用硬體中。
10.格式化NameNode的命令是什麼?
答:$ hdfs namenode -format。
歡迎咨詢慧都在線客服,我們將幫您轉接大數據專家團隊,並發送相關資料給您!
以上就是大數據面試題及答案,希望我的回答對您有幫助!
『伍』 數據分析師常見的面試問題
關於數據分析師常見的面試問題集錦
1、你處理過的最大的數據量?你是如何處理他們的?處理的結果。
2、告訴我二個分析或者計算機科學相關項目?你是如何對其結果進行衡量的?
3、什麼是:提升值、關鍵績效指標、強壯性、模型按合度、實驗設計、2/8原則?
4、什麼是:協同過濾、n-grams, map rece、餘弦距離?
5、如何讓一個網路爬蟲速度更快、抽取更好的信息以及更好總結數據從而得到一干凈的資料庫?
6、如何設計一個解決抄襲的方案?
7、如何檢驗一個個人支付賬戶都多個人使用?
8、點擊流數據應該是實時處理?為什麼?哪部分應該實時處理?
9、你認為哪個更好:是好的數據還是好模型?同時你是如何定義「好」?存在所有情況下通用的模型嗎?有你沒有知道一些模型的定義並不是那麼好?
10、什麼是概率合並(aka模糊融合)?使用sql處理還是其它語言方便?對於處理半結構化的數據你會選擇使用哪種語言?
11、你是如何處理缺少數據的?你推薦使用什麼樣的處理技術?
12、你最喜歡的編程語言是什麼?為什麼?
13、對於你喜歡的統計軟體告訴你喜歡的與不喜歡的3個理由。
14、sas, r, python, perl語言的區別是?
15、什麼是大數據的詛咒?
16、你參與過資料庫與數據模型的設計嗎?
17、你是否參與過儀表盤的設計及指標選擇?你對於商業智能和報表工具有什麼想法?
18、你喜歡td資料庫的什麼特徵?
19、如何你打算發100萬的營銷活動郵件。你怎麼去優化發送?你怎麼優化反應率?能把這二個優化份開嗎?
20、如果有幾個客戶查詢oracle資料庫的效率很低。為什麼?你做什麼可以提高速度10倍以上,同時可以更好處理大數量輸出?
21、如何把非結構化的數據轉換成結構化的數據?這是否真的有必要做這樣的轉換?把數據存成平面文本文件是否比存成關系資料庫更好?
22、什麼是哈希表碰撞攻擊?怎麼避免?發生的頻率是多少?
23、如何判別maprece過程有好的負載均衡?什麼是負載均衡?
24、請舉例說明maprece是如何工作的?在什麼應用場景下工作的很好?雲的安全問題有哪些?
25、(在內存滿足的情況下)你認為是100個小的哈希表好還是一個大的哈希表,對於內在或者運行速度來說?對於資料庫分析的評價?
26、為什麼樸素貝葉斯差?你如何使用樸素貝葉斯來改進爬蟲檢驗演算法?
27、你處理過白名單嗎?主要的規則?(在欺詐或者爬行檢驗的情況下)
28、什麼是星型模型?什麼是查詢表?
29、你可以使用excel建立邏輯回歸模型嗎?如何可以,說明一下建立過程?
30、在sql, perl, c++, python等編程過程上,待為了提升速度優化過相關代碼或者演算法嗎?如何及提升多少?
31、使用5天完成90%的精度的解決方案還是花10天完成100%的精度的解決方案?取決於什麼內容?
32、定義:qa(質量保障)、六西格瑪、實驗設計。好的與壞的實驗設計能否舉個案例?
33、普通線性回歸模型的缺陷是什麼?你知道的其它回歸模型嗎?
34、你認為葉數小於50的決策樹是否比大的好?為什麼?
35、保險精算是否是統計學的一個分支?如果不是,為何如何?
36、給出一個不符合高斯分布與不符合對數正態分布的數據案例。給出一個分布非常混亂的數案例。
37、為什麼說均方誤差不是一個衡量模型的好指標?你建議用哪個指標替代?
38、你如何證明你帶來的演算法改進是真的有效的與不做任何改變相比?你對a/b測試熟嗎?
39、什麼是敏感性分析?擁有更低的敏感性(也就是說更好的強壯性)和低的預測能力還是正好相反好?你如何使用交叉驗證?你對於在數據集中插入雜訊數據從而來檢驗模型的.敏感性的想法如何看?
40、對於一下邏輯回歸、決策樹、神經網路。在過去XX年中這些技術做了哪些大的改進?
41、除了主成分分析外你還使用其它數據降維技術嗎?你怎麼想逐步回歸?你熟悉的逐步回歸技術有哪些?什麼時候完整的數據要比降維的數據或者樣本好?
42、你如何建議一個非參數置信區間?
43、你熟悉極值理論、蒙特卡羅邏輯或者其它數理統計方法以正確的評估一個稀疏事件的發生概率?
44、什麼是歸因分析?如何識別歸因與相關系數?舉例。
45、如何定義與衡量一個指標的預測能力?
46、如何為欺詐檢驗得分技術發現最好的規則集?你如何處理規則冗餘、規則發現和二者的本質問題?一個規則集的近似解決方案是否可行?如何尋找一個可行的近似方案?你如何決定這個解決方案足夠好從而可以停止尋找另一個更好的?
47、如何創建一個關鍵字分類?
48、什麼是僵屍網路?如何進行檢測?
49、你有使用過api介面的經驗嗎?什麼樣的api?是谷歌還是亞馬遜還是軟體即時服務?
50、什麼時候自己編號代碼比使用數據科學者開發好的軟體包更好?
51、可視化使用什麼工具?在作圖方面,你如何評價tableau?r?sas?在一個圖中有效展現五個維度?
52、什麼是概念驗證?
53、你主要與什麼樣的客戶共事:內部、外部、銷售部門/財務部門/市場部門/it部門的人?有咨詢經驗嗎?與供應商打過交道,包括供應商選擇與測試。
54、你熟悉軟體生命周期嗎?及it項目的生命周期,從收入需求到項目維護?
55、什麼是cron任務?
56、你是一個獨身的編碼人員?還是一個開發人員?或者是一個設計人員?
57、是假陽性好還是假陰性好?
58、你熟悉價格優化、價格彈性、存貨管理、競爭智能嗎?分別給案例。
59、zillow』s演算法是如何工作的?
60、如何檢驗為了不好的目的還進行的虛假評論或者虛假的fb帳戶?
61、你如何創建一個新的匿名數字帳戶?
62、你有沒有想過自己創業?是什麼樣的想法?
63、你認為帳號與密碼輸入的登錄框會消失嗎?它將會被什麼替代?
64、你用過時間序列模型嗎?時滯的相關性?相關圖?光譜分析?信號處理與過濾技術?在什麼樣的場景下?
65、哪位數據科學有你最佩服?從哪開始?
66、你是怎麼開始對數據科學感興趣的?
67、什麼是效率曲線?他們的缺陷是什麼,你如何克服這些缺陷?
68、什麼是推薦引擎?它是如何工作的?
69、什麼是精密測試?如何及什麼時候模擬可以幫忙我們不使用精密測試?
70、你認為怎麼才能成為一個好的數據科學家?
71、你認為數據科學家是一個藝術家還是科學家?
72、什麼是一個好的、快速的聚類演算法的的計算復雜度?什麼好的聚類演算法?你怎麼決定一個聚類的聚數?
73、給出一些在數據科學中「最佳實踐的案例」。
74、什麼讓一個圖形使人產生誤解、很難去讀懂或者解釋?一個有用的圖形的特徵?
75、你知道使用在統計或者計算科學中的「經驗法則」嗎?或者在商業分析中。
76、你覺得下一個20年最好的5個預測方法是?
77、你怎麼馬上就知道在一篇文章中(比如報紙)發表的統計數字是錯誤,或者是用作支撐作者的論點,而不是僅僅在羅列某個事物的信息?例如,對於每月官方定期在媒體公開發布的失業統計數據,你有什麼感想?怎樣可以讓這些數據更加准確?
;『陸』 面試題-關於大數據量的分布式處理
面試題-關於大數據量的分布式處理
題目:生產系統每天會產生一個日誌文件F,數據量在5000W行的級別。文件F保存了兩列數據,一列是來源渠道,一列是來源渠道上的用戶標識。文件F用來記錄當日各渠道上的所有訪問用戶,每訪問一次,記錄一條。
請問如何快速計算出各渠道上新增的用戶?
問題分析:首先本次面試的是有關於分布式數據處理以及數據分析的職位,所以相關的面試題目可能會偏向於使用分布式的思想去解決。但無奈本人當時反應太慢,實在沒向分布式處理方向思考。
方案一:
本題最直觀的一個處理方法就是,直接拿著當日新增的5000W條訪問記錄一條一條的去匹配歷史訪問用戶。若存在歷史訪問記錄,則忽略;若不存在訪問記錄,則保存為新增記錄。很明顯,假若歷史訪問用戶有2億條記錄,則需要和2億條數據比較5000W次。比較次數可想而知。
由於本人一直在做基於資料庫的數據處理工作,很容易就想到將歷史數據保存在資料庫的一張表中,並對來源渠道和用戶標識這兩個欄位建立索引,然後遍歷日誌文件F(5000W次)。根據日誌文件F中的每一行去匹配資料庫中的歷史訪問記錄。由於歷史數據表有索引,單次查詢的速度也非常快。但是需要5000W次的資料庫查詢,很明顯效率低下。
方案二:
既然多次單一查詢無法滿足要求,於是可以先通過一種數據導入技術將當日新增數據導入到資料庫的另一張表中,並和歷史數據做左外關聯。若能關聯成功,則表示此用戶已存在;若關聯失敗,則表示此用戶不存在。
此方案暫且不說5000W條記錄的大表與2億條記錄的大表關聯效率有多高以及使用到的資料庫緩沖區的資源有多少,單就5000W條訪問記錄導入資料庫表,都是一個不小的時間花費。
方案三:
很明顯,面試時方案二的回答並未達到面試官的預期,最初被遺憾的PASS掉。一家很有潛力,自己很看好的公司,並計劃做為自己未來發展方向的職位,就這樣丟下我,揚長而去了。
這幾天又看了下分布式相關的介紹,突然想到這道題。一下子醒悟過來,其實還是因為對題目要考察的點分析得不夠透徹。當時以為只是僅僅考數據處理效率的一個題目,其實考的是一種將復雜問題拆分為簡單問題的拆分思想。了解到這一層,一種新的方式立馬在腦海中浮現出來。具體如下:
假如現在有N(N>=2)個存儲塊,並存在一個函數f(來源渠道,用戶標識),對於給定的一組(來源渠道,用戶標識),總能將其分發到一個固定的存儲塊內。那麼可以使用此函數將5000W行訪問記錄盡量均勻的分發至N個存儲塊上,並同時使用此函數將歷史訪問記錄也分發至這些存儲塊上。由於相同的一組記錄,肯定會被分配至同一個存儲塊,所以比較時,只需要分別比較各個存儲塊上當日新增記錄與歷史訪問用戶,然後將N個存儲塊上比較的結果匯總,即可得到最終結果。
假設歷史訪問用戶數據已通過函數f(來源渠道,用戶標識)被分發至了N個歷史文件H1、H2、…、HN。則詳細處理步驟如下:
1、將F中的內容使用函數f(來源渠道,用戶標識),分發至文件F1、F2、…、FN內。(可開M(M>=2)個並行,且若N-M越大,同時向同一文件寫入數據的概率越小)
2、將文件F1、F2、…、FN內的訪問記錄去重。(可開N個並行分別處理對應的N個文件)。
3、將文件Fn(1=<n<=N)去重後的結果與對應的歷史文件Hn比較得出新增用戶結果Rn。(可開N個並行分別處理對應的N個文件且當N足夠大時,實際要處理數據的量級就會相當小)。
4、合並第3步得到的結果R1、R2、…、RN即可得到當日新增用戶。(可並行)
5、為使歷史數據文件H1、H2、…、HN中的數據最全,將結果R1、R2、…、RN分別寫入對應的歷史文件中。(可並行)
本方案主要有以下優點:
1、數據的分發、處理、合並都可並行處理,明顯提高了處理效率。
2、由於每個存儲塊上的新增數據,只需要與它對應存儲塊上的歷史數據比較即可,大大減少了比較次數。(對於當日每一條記錄來說,都只需要與大約歷史的N分之一條數據去比較)
3、基本不需要考慮歷史全量數據的保存及獲取問題。
本方案缺點:
1、處理方案明顯變的復雜許多,不僅需要處理數據的分發,處理,還需要一個並行的快速收集方法。
2、可能需要多台伺服器並行處理。
本方案難點:
1、一個穩定(對於相同的一組來源渠道和用戶標識,必定會被分發至同一存儲塊)、快速(根據一條來源渠道和用戶標識數據,可以快速的計算出它將要被分發至的存儲塊)、均勻(當日新增數據及歷史數據都能盡量均勻的被分發至N個存儲塊,最理想的情況是每個存儲塊上分發到的數據都是總數據的N分之一)的分發函數至關重要。
2、如何分發、並行處理及匯總數據。
『柒』 大數據分析師面試題:Redis的耐久化戰略
【導讀】眾所周知,大數據分析師的面試流程與其他行業的不大一樣,比如你面試一份文員工作,只需要攜帶簡歷就可以了,不過要想面試成功大數據分析師,不僅需要攜帶簡歷,還要做好考試的准備,這是每一個大數據分析師的入職必經流程,今天小編就來和大家說說大數據分析師面試題:Redis的耐久化戰略,希望對各位考生有所幫助。
一、RDB介紹
RDB 是 Redis
默許的耐久化計劃。在指定的時間距離內,實行指定次數的寫操作,則會將內存中的數據寫入到磁碟中。即在指定目錄下生成一個mp.rdb文件。Redis
重啟會通過載入mp.rdb文件恢復數據。
可以在redis.windows.conf配備文件中修正save來進行相應的配備
注意事項
60秒內10000條數據則保存
這兒有三個save,只需滿意其間任意一條就可以保存
比方:
(1)在redis中保存幾條新的數據,用kill
-9粗暴殺死redis進程,模仿redis缺點失常退出,導致內存數據丟掉的場景(或許在,也或許不在,根據save的狀況)
(2)手動設置一個save檢查點,save 5 1
寫入幾條數據,等候5秒鍾,會發現自動進行了一次mp rdb快照,在mp.rdb中發現了數據
失常停掉redis進程,再從頭發起redis,看方才刺進的數據還在
二、AOF介紹
AOF :Redis 默許不打開。它的呈現是為了補償RDB的缺乏(數據的不一致性),所以它採用日誌的方法來記載每個寫操作,並追加到文件中。Redis
重啟的會根據日誌文件的內容將寫指令早年到後實行一次以結束數據的恢復作業。(appendonly yes)
注意事項注意事項
可以在redis.windows.conf中進行配備
打開AOF
將appendonly 的no 改為 yes
下面是文件名可以運用默許的文件名,也可以自己改
注意事項
appendfsync運用默許的everysec就可以了
以上就是小編今天給大家整理發送的關於大數據分析師面試題:Redis的耐久化戰略的相關內容,希望對各位考生有所幫助,想知道更多關於數據分析師的基本要求有哪些,關注小編持續更新數據分析師崗位解析。
『捌』 大數據開發人員面試常會被問什麼問題
1、你自身的優點
這個問題不僅僅是在大數據面試當中常常被問,在各行各業的面試中都經常出現。所以面試者要盡可能說一些和工作相關的優點,比如「學習能力強」「能抗住壓力」等,再舉一個自己之前工作的例子進行證明,這會讓面試官覺得很真實。
2、為什麼要離開上家公司
其實面試官問這種問題的時候,就是在看你人品。很多人覺得說上家公司不好的話才是好的,其實不是的,離職見人品,如果你能在面試官面前說上家公司的不好,也能在下家公司說這家公司的不好。所以在面試官問及這個問題的時候,最好結合自身的發展來說。
3、未來幾年的規劃
回答這個問題的時候,不要說自己不知道、不清楚,會顯得你這個人沒有目標和方向。所以如果應聘者對這個問題不知道怎麼回答的時候,可以跟面試官交流一下現在大數據行業的職業目標以及准備做些什麼去實現這個目標,至少要讓面試官看到應聘者對選擇這個職業的熱情,甚至是對選擇這份工作的熱情。