今年參加了校園秋招,主要針對招聘大資料研發相關崗位,最後也如願以償找到了大資料軟體開發的工作,在此期間整理了一下比較常見的相關面試題。
1.mapreduce實際處理過程:
input
2.列出yarn中的關鍵元件,並簡述各關鍵元件內部的互動原理。
3.mapreduce的原理理解。
(4)reduce中的outputformat記錄到規定位置並存檔。
4.hdfs上傳檔案流程。
(1)客戶端將要上傳的檔案按照128mb的大小分塊;
(2)客戶端向名稱節點傳送寫資料請求;
(3)名稱節點記錄各個datanode資訊,並返回可用的datanode列表;
(4)客戶端直接向datanode傳送分割後的檔案塊,傳送過程以流式寫入;
(5)寫入完成後,datanode向namenode傳送資訊,更新元資料。
整理流程框架如下圖所示。
5.介紹zookeeper。
zookeeper用來解決分布式應用中的一些資料管理問題,如統一命名服務、狀態同步服務、集群管理等。
乙個leader:主要負責寫服務和資料同步。
多個follower:提供讀服務,leader失效後會在follower中重新選舉新的leader。
需要注意的是:
(1)客戶端可以連線到每乙個server,每個server的資料完全相同;
(2)每個follower都和leader有連線,接受leader的資料更新操作;
(3)server記錄事務日誌和快照到持久儲存;
(4)大多數server可用,整體服務就可用。
整體框架圖如下所示。
配置:環境變數
6.namenode在啟動的時候會做哪些操作?
namenode啟動的時候,會載入fsimage。namenode從fsimage中不停地順序讀取檔案與目錄的元資料資訊。
7.hive中外部表和內部表的區別。
(元資料儲存在/root/hive/warehouse)
內部表:資料儲存在hive的資料倉儲目錄下,刪除表時,除了刪除元資料,還會刪除實際表檔案。(刪表刪資料)
外部表:資料並不儲存在hive的資料倉儲目錄下,刪除表時,只是刪除元資料,並不刪除實際表檔案。(刪表不刪資料)
8.mapreduce中combiner和partition的區別。
combiner就是在map端先進行一次reduce操作,減少map端到reduce端的資料傳輸量,省網路頻寬,提高執行效率。
partition就是將map輸出按key分割槽,送到不同的reduce上去並行執行,提高效率。
9.hive中的分割槽表和桶表。
分割槽表:避免在查詢中掃瞄整個表內容,會消耗很多時間做沒必要的工作。
桶表:對指定列計算hash,根據hash值切分資料,目的是並行,每個桶對應乙個檔案。
10.hadoop建立動態節點步驟:
(1)在新節點安裝好hadoop,並把namenode的有關配置檔案複製到該節點;
(2)修改namenode節點的master和salves檔案,增加該節點;
(3)設定各節點ssh免密碼進出該節點,設定ip對映;
(4)單獨啟動該節點上的datanode與nodemanager;
(5)執行start-balancer.sh進行資料負載均衡。
常見面試題整理
題目 如下為型別cmystring的宣告,請為該型別新增賦值運算子函式。class cmystring 注意點 1.返回值是否為該型別的引用。如果為該型別引用則可連續賦值。如果返回void,則無法通過編譯 2.傳入引數是否宣告為常量引用。如果傳入引數不是常量引用,則會有一次非必要的拷貝構造函式呼叫 ...
大資料常見面試題 一
currenthashmap及cas無鎖演算法 包括樂觀鎖及悲觀鎖 bio的缺陷與nio的優勢?執行緒池的作用及特點,執行緒池各個引數的含義,常見的 cachedthreadpool 和fixedthreadpool的區別?zookeeper特性 選舉機制 腦裂?hadoop不同版本之間模組的區別?...
常見面試題整理1
面試題整理1 相同點 都是繼承collection介面 不同點 1.list 元素存放有順序,元素可重複 set 元素存放無順序,元素不可重複 2.list 支援for迴圈,也可以用迭代器 set 只能用迭代器,因為它是無序的,無法通過下標獲取元素 3.list和陣列相似,查詢元素效率高,插入刪除元...