收集的大資料面試題

2021-10-09 14:14:03 字數 2246 閱讀 9253

1.數倉與關聯式資料庫區別

1.資料庫有相對複雜的**結構,儲存結構相對緊緻,少冗餘資料,而資料倉儲則是相對簡單的**結構,儲存結構相對鬆散,多冗餘資料。

2.資料庫在讀和寫兩方面都有優化,資料倉儲一般只是讀優化

3.資料庫單次操作作用於少量的資料,資料倉儲單次操作會作用於大量的資料

4.資料庫支援單條資料的修改,資料倉儲不支援

5.資料庫可以和使用者進行互動,資料倉儲不行

2.資料倉儲為什麼需要分層?優缺點?

分層原因:

1.用空間換時間。通過建設多層次的資料模型供使用者使用,避免使用者直接使用操作型資料,可以更高效的訪問資料

2.把複雜問題簡單化。將乙個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護資料的準確性,當資料出現問題之後,可以不用修復所有的資料,只需要從有問題的步驟開始修復

3.便於處理業務的變化。隨著業務的變化,只需要調整底層的資料。

優點:高效的資料組織形式(易維護)

面向主題的特性決定了資料倉儲擁有業務資料庫所無法擁有的高效的資料組織形式,更加完整的資料體系,清洗的資料分類和分層機制。因為所有資料在進入資料倉儲之前都經過清洗和過濾,使原始資料不再雜亂無章,基於優化查詢的組織形式,有效提高資料獲取、統計和分割槽的效率

時間價值(高效能)

資料倉儲的構建將大大的縮短獲取資訊的時間,資料倉儲作為資料的集合,所有的資訊都可以從資料倉儲之間獲取,資料倉儲的最大優勢在於一旦底層從各類資料來源到資料倉儲的etl流程構建成型,那麼每天就會有來自各方面的資訊通過自動任務排程的形式流入資料倉儲,從而使一切基於這些底層資訊的資料獲取的效率達到迅速提公升。

整合價值(簡單化)

資料倉儲是所有資料的集合,包括日誌資訊,資料庫資料、文字資料、外部資料等都整合在資料倉儲中,對於應用來說,實現各種不同資料的關聯將使多為分析更加方便,為從多角度多層次地分析和決策制定提供可能。

歷史資料(歷史性)

記錄歷史是資料倉儲的特性之一,資料倉儲能夠還原歷史時間點上的產品狀態、使用者狀態、使用者行為等,以便於能更好的回溯歷史,分析歷史,跟蹤使用者的歷史行為,更好的比較歷史和總結歷史了,同時根據歷史**未來。

缺點:資料的大量冗餘會佔據大量的儲存空間,增加hdfs的儲存負擔

3.hive表資料底層儲存在哪

hdfs的datanode上

4.元資料儲存在哪?

mysql裡的hive庫中

5.hive與hdfs的關係

hive是邏輯上的資料倉儲,hive本身並不儲存資料,資料都是存放到hdfs上面的。hive之所以能以表的形式操作操作hdfs上面的資料,是因為hive的元資料庫儲存著hdfs資料與hive表之間的對映

6.hive與hbase的區別與聯絡

hive:

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能

hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯。hive需要用到hdfs儲存檔案,需要用到mapreduce計算框架

hive可以認為是mapreduce的乙個包裝,hive的意義就是把好寫的hql語句轉換為複雜的mapreduce程式

hbase:

hbase是hadoop的資料庫,乙個分布式、可擴充套件、大資料的儲存

hbase是物理表,不是邏輯表,提供乙個超大的記憶體hash表,搜尋引擎通過它來儲存索引,方便查詢操作

hbase可以認為是hdfs的乙個包裝,他的本質是資料儲存是個nosql資料庫;hbase不屬於hdfs之上,並且克服了hdfs在隨機讀寫方面的缺點

兩者聯絡:

hbase和hive在大資料架構中雖然處在不同位置,hbase主要解決實時資料查詢問題,hive主要解決資料處理和計算問題,一般配合使用。

協作流程:

1.通過etl工具將資料來源抽取到hdfs儲存

2.通過hive清洗、處理和計算原始資料

3.hive清洗處理後的結果,如果是面向海量資料隨機查詢場景的可存入hbase

4.資料應用從hbase查詢資料

7.hashcode和equals 的關係

兩個物件的hashcode相同,但equals返回不一定是true

但是equals返回true,則hashcode一定相同

8.hashmap中插入元素時如果元素的hashcode相同,那該怎麼辦

hashmap採用的是陣列+鍊錶的儲存模式,先根據hashcode在陣列中進行儲存,如果有多個元素的hashcode相同,則會在該位置生成鍊錶,新的元素排在後面

面試題收集

1.實現乙個add方法 add 1 2,3 4 value 輸出 10 分析 對柯里化函式進行改造 原curry函式 function curry f,args1 return inner 改造後curry函式 function curry f,args1 新增value方法 inner.value...

大資料面試題

海量資料面試題整理 1.給定a b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4g,讓你找出a b檔案共同的url?方案1 可以估計每個檔案安的大小為50g 64 320g,遠遠大於記憶體限制的4g。所以不可能將其完全載入到記憶體中處理。考慮採取分而治之的方法。s 求每對小...

大資料面試題

1.列舉spark 比hadoop 快的原 因 以及現在存在的主要問題 2.描述下使用spark streaming 和 graphx實現實時計算的可行性,以及可能會遇到的問題 3.graphx的pregel api 只支援有向圖遍歷 如何實現無xiang 遍歷,描述思路 4.spark 通過yar...