HDFS企業級面試題

1、Hadoop 特性優點?

1)高可靠性:Hadoop底層維護多個數據副本,所以即使Hadoop某個計算元素或存儲出現故障,也不會導致數據的丟失。
2)高擴展性:能在廉價機器組成的集羣間分配任務數據,可方便的擴展數以幹計的節點。
3)高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。
4)高容錯性:能夠自動將失敗的任務重新分配

2、Hadoop的核心組件是哪些?

1)HDFS集羣:負責海量數據的存儲,集羣中的角色主要有 NameNode / DataNode/SecondaryNameNode。
(2)YARN集羣:負責海量數據運算時的資源調度,集羣中的角色主要有 ResourceManager /NodeManager
(3)(3)MapReduce:它其實是一個應用程序開發包。

3、Hadoop目前有幾個版本?

免費開源版本hortonWorks:https://hortonworks.com/
hortonworks主要是雅虎主導Hadoop開發的副總裁,帶領二十幾個核心成員成立Hortonworks,核心產品軟件HDP(ambari),HDF免費開源,並且提供一整套的web管理界面,供我們可以通過web界面管理我們的集羣狀態,web管理界面軟件HDF網址(http://ambari.apache.org/)

服務收費版本ClouderaManager: https://www.cloudera.com/
cloudera主要是美國一家大數據公司在apache開源Hadoop的版本上,通過自己公司內部的各種補丁,實現版本之間的穩定運行,大數據生態圈的各個版本的軟件都提供了對應的版本,解決了版本的升級困難,版本兼容性等各種問題,生產環境推薦使用。

免費開源版本apache:http://Hadoop.apache.org/
優點:擁有全世界的開源貢獻者,代碼更新迭代版本比較快,
缺點:版本的升級,版本的維護,版本的兼容性,版本的補丁都可能考慮不太周到,學習可以用,實際生產工作環境儘量不要使用
apache所有軟件的下載地址(包括各種歷史版本):
http://archive.apache.org/dist/

4、HDFS分佈式文件系統集羣的角色主要有?

Namenode(管理者)
secondaryNamenode(輔助管理者)
datenode(工作者)

5、Yarn資源調度系統集羣的主要角色是哪些?

a.管理者:ResourceManager
b.工作者:NodeManager

6、Hadoop部署的方式分別是哪幾種?

hadoop的部署總共有3種類型,分別是單機版,單機僞分佈式版,以及完全分佈式集羣三種類型

7、網絡同步時間的命令?

首先確保安裝 ntpdate工具
然後ntpdate cn.pool.ntp.org

8、設置主機名在哪一個文件中?

/etc/sysconfig/network

9、配置IP、主機名映射的文件是哪一個?

/etc/hosts

10、編譯hadoop需要準備的步驟有哪些?

虛擬機聯網 ,防火牆關閉 selinux關閉,安裝jdk(1.7) ,安裝maven

11、hadoop安裝包目錄包括哪些文件夾,各有什麼作用?

在這裏插入圖片描述

12、安裝hadoop時需要配置的文件有哪些?

在這裏插入圖片描述

13、首次啓動 HDFS 時,必須對其進行格式化操作的命令?

Hadoop namenode -format

14、啓動HDFS NameNode的命令?

Hadoop-daemon.sh start namenode

15、單節點啓動HDFS DataNode?

hadoop-daemon.sh start datanode

16、單節點啓動YARN ResourceManager?

Yarn-daemon.sh start resourceManager

17、單節點啓動YARN nodemanager?

yarn-daemon.sh start nodemanager

18、HDFS集羣的一鍵啓動和關閉腳本命令分別是什麼?

Start-dfs.sh stop-dfs.sh

19、yarn集羣的一鍵啓動和關閉腳本分別是什麼?

Start-yarn.sh stop-yarn.sh

20、hadoop一鍵啓動和關閉全部包括hdfs和yarn集羣的腳本命令是什麼?

Start-all/sh stop-all.sh

21、hadoop中的namenode的webUI端口默認是什麼?

50070

22、hadoop中的ResourceManager的webUI默認端口是什麼?

8088

23、啓動jobHistoryserver服務進程的命令?

mr-jobhistory-daemon.sh start historyserver

24、jobhistoryserver的webUI訪問的默認端口是什麼?

19888

24、hadoop的垃圾桶機制在哪一個文件中配置的?

Core-site.xml

25、垃圾桶配置參數是什麼?

回收站配置兩個參數
1.默認值fs.trash.interval=0,0表示禁用回收站,此值大於0時表示啓用回收站,以分鐘爲單位的垃圾回收時間。用於設置被刪掉的數據在回收站的保存時間,數據在回收站的時間超過這個設置的時間,回收站將其永久刪除。
2.默認值fs.trash.checkpoint.interval=0,如果是0,值等同於fs.trash.interval。以分鐘爲單位的垃圾回收檢查間隔。要求fs.trash.checkpoint.interval<=fs.trash.interval。

26、hdfs的主要功能什麼?

海量數據的存儲

27、hdfs的主要特性是什麼?

1、海量數據存儲: HDFS可橫向擴展,其存儲的文件可以支持PB級別數據。
2、高容錯性:節點丟失,系統依然可用,數據保存多個副本,副本丟失後自動恢復。

可構建在廉價(與小型機大型機比)的機器上,實現線性擴展(隨着節點數量的增加,集羣的存儲能力,計算能力隨 之增加)。
3、大文件存儲:DFS採用數據塊的方式存儲數據,將一個大文件切分成多個小文件,分佈存儲

28、hdfs的shell客戶端操作命令分別代表什麼意思?

(1)-ls 顯示目錄信息
(2)-mkdir 在hdfs上創建目錄
(3)-put 從本地文件系統中拷貝文件到hdfs路徑去
(4)-get 是從hdfs下載文件到本地
(5)-appendFile 追加一個文件到已經存在的文件末尾
(6)-cat 顯示文件內容
(7)-tail 顯示文件末尾
(8)-chmod 修改文件所屬權限
(9)-copyFromLocal 從本地文件系統中拷貝文件到hdfs路徑去
(10)-copyToLocal 是從hdfs下載文件到本地
(11)-cp 複製
(12)-mv 在hdfs文件系統中移動文件
(13)-rm 刪除文件或者文件夾
(14)-df 統計文件系統的可用空間信息
(15)-du 統計文件夾的大小信息

29、在hdfs目錄下創建一個目錄/test ,請寫出該命令?

Hadoop fs -mkdir /test

30、設置在hdfs中的目錄/test下最多隻支持上傳3個文件?

Hdfs dfsabmin -setquota 4 /test

31、取消hdfs中目錄/test下的文件個數限制

Hdfs dfsadmin -clrquota /test

32、在hdfs中,設置目錄/test目錄的大小不能超過1GB

Hdfs dfsadmin setspacequota 1G /test

33、在hdfs中,取消/test目錄的大小限制?

Hdfs dfs clrspacequata /test

34、NameNode的主要功作用有哪些?

a.維護,管理文件系統的名字空間(元數據信息)
b.負責確定指定文件塊到具體的DataNode節點的映射關係
c.維護管理DataNode上報的心跳信息

35、HDFS中數據的寫入流程?

1、 client 發起文件上傳請求,通過 RPC 與 NameNode 建立通訊,NameNode
檢查目標文件是否已存在,父目錄是否存在,返回是否可以上傳;
2、 client 請求第一個 block 該傳輸到哪些 DataNode 服務器上;
3、 NameNode 根據配置文件中指定的備份數量及機架感知原理進行文件分
配,返回可用的 DataNode 的地址如:A,B,C;
注:Hadoop 在設計時考慮到數據的安全與高效,數據文件默認在 HDFS 上存放
三份,存儲策略爲本地一份,同機架內其它某一節點上一份,不同機架的某一
節點上一份。
4、 client 請求 3 臺 DataNode 中的一臺 A 上傳數據(本質上是一個 RPC 調
用,建立 pipeline),A 收到請求會繼續調用 B,然後 B 調用 C,將整個
pipeline 建立完成,後逐級返回 client;
5、 client 開始往 A 上傳第一個 block(先從磁盤讀取數據放到一個本地內
存緩存),以 packet 爲單位(默認 64K),A 收到一個 packet 就會傳給 B,
B 傳給 C;A 每傳一個 packet 會放入一個應答隊列等待應答。
6、 數據被分割成一個個 packet 數據包在 pipeline 上依次傳輸,在
pipeline 反方向上,逐個發送 ack(命令正確應答),最終由 pipeline
中第一個 DataNode 節點 A 將 pipeline ack 發送給 client;
7、 當一個 block 傳輸完成之後,client 再次請求 NameNode 上傳第二個
block 到服務器。

36、HDFS中數據的讀取流程?

1、客戶端通過調用FileSystem對象的open()來讀取希望打開的文件。
2、 Client向NameNode發起RPC請求,來確定請求文件block所在的位置;
3、 NameNode會視情況返回文件的部分或者全部block列表,對於每個block,NameNode 都會返回含有該 block 副本的 DataNode 地址; 這些返回的 DN 地址,會按照集羣拓撲結構得出 DataNode 與客戶端的距離,然後進行排序,排序兩個規則:網絡拓撲結構中距離 Client 近的排靠前;心跳機制中超時彙報的 DN 狀態爲 STALE,這樣的排靠後;
4、 Client 選取排序靠前的 DataNode 來讀取 block,如果客戶端本身就是DataNode,那麼將從本地直接獲取數據(短路讀取特性);
5、 底層上本質是建立 Socket Stream(FSDataInputStream),重複的調用父類 DataInputStream 的 read 方法,直到這個塊上的數據讀取完畢;
6、並行讀取,若失敗重新讀取
7、 當讀完列表的 block 後,若文件讀取還沒有結束,客戶端會繼續向NameNode 獲取下一批的 block 列表;
8、返回後續block列表
9、 最終關閉讀流,並將讀取來所有的 block 會合併成一個完整的最終文件。
說明:
1、讀取完一個 block 都會進行 checksum 驗證,如果讀取 DataNode 時出現錯誤,客戶端會通知 NameNode,然後再從下一個擁有該 block 副本的DataNode 繼續讀。
2、read 方法是並行的讀取 block 信息,不是一塊一塊的讀取;NameNode 只是返回Client請求包含塊的DataNode地址,並不是返回請求塊的數據;

發佈了22 篇原創文章 · 獲贊 124 · 訪問量 2156
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章