久久99热66热这里只有精品,特黄特色的大片在线观看,亚洲日本三级在线观看,国产三级农村妇女在线,亚洲av毛片免费在线观看,哺乳叫自慰在线看,天天干美女av网

hadoop面試題總結1

時間:2024-06-09 18:11:35 學人智庫 我要投稿
  • 相關推薦

hadoop面試題總結1

1. 下面哪個程序負責 HDFS 數(shù)據(jù)存儲。

hadoop面試題總結1

a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker

答案C datanode

2. HDfS 中的 block 默認保存幾份?

a)3 份 b)2 份c)1 份d)不確定

答案A默認3分

3. 下列哪個程序通常與 NameNode 在一個節(jié)點啟動?

a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker

答案D

分析:

hadoop的集群是基于master/slave模式,namenode和jobtracker屬于master,datanode和tasktracker屬于slave,master只有一個,而slave有多個

SecondaryNameNode內(nèi)存需求和NameNode在一個數(shù)量級上,所以通常secondary NameNode(運行在單獨的物理機器上)NameNode運行在不同的機器上。

JobTracker和TaskTracker

JobTracker 對應于 NameNode

TaskTracker 對應于 DataNode

DataNode 和NameNode 是針對數(shù)據(jù)存放來而言的JobTracker和TaskTracker是對于MapReduce執(zhí)行而言的mapreduce中幾個主要概念,mapreduce整體上可以分為這么幾條執(zhí)行線索:jobclient,JobTracker與TaskTracker。

1、JobClient會在用戶端通過JobClient類將應用已經(jīng)配置參數(shù)打包成jar文件存儲到hdfs,

并把路徑提交到Jobtracker,然后由JobTracker創(chuàng)建每一個Task(即MapTask和ReduceTask)

并將它們分發(fā)到各個TaskTracker服務中去執(zhí)行

2、JobTracker是一個master服務,軟件啟動之后JobTracker接收Job,負責調(diào)度Job的每一個子任務task運行于TaskTracker上,

并監(jiān)控它們,如果發(fā)現(xiàn)有失敗的task就重新運行它。一般情況應該把JobTracker部署在單獨的機器上。

3、TaskTracker是運行在多個節(jié)點上的slaver服務。TaskTracker主動與JobTracker通信,接收作業(yè),并負責直接執(zhí)行每一個任務。

TaskTracker都需要運行在HDFS的DataNode上

4. Hadoop 作者

a)Martin Fowler b)Kent Beck c)Doug cutting

答案C Doug cutting

5. HDFS 默認 Block Size

a)32MB b)64MB c)128MB

答案:B

(因為版本更換較快,這里答案只供參考)

6. 下列哪項通常是集群的最主要瓶頸

a)CPU b)網(wǎng)絡 c)磁盤IO d)內(nèi)存

答案:C磁盤

首先集群的目的是為了節(jié)省成本,用廉價的pc機,取代小型機及大型機。小型機和大型機有什么特點?

1.cpu處理能力強

2.內(nèi)存夠大

所以集群的瓶頸不可能是a和d

3.網(wǎng)絡是一種稀缺資源,但是并不是瓶頸。

4.由于大數(shù)據(jù)面臨海量數(shù)據(jù),讀寫數(shù)據(jù)都需要io,然后還要冗余數(shù)據(jù),hadoop一般備3份數(shù)據(jù),所以IO就會打折扣。

同樣可以參考下面內(nèi)容(磁盤IO:磁盤輸出輸出)

對于磁盤IO:當我們面臨集群作戰(zhàn)的時候,我們所希望的是即讀即得?墒敲鎸Υ髷(shù)據(jù),讀取數(shù)據(jù)需要經(jīng)過IO,這里可以把IO理解為水的管道。管道越大越強,我們對于T級的數(shù)據(jù)讀取就越快。所以IO的好壞,直接影響了集群對于數(shù)據(jù)的處理。

集群瓶頸:磁盤IO必讀

集群瓶頸為什么磁盤io

7. 關于 SecondaryNameNode 哪項是正確的?

a)它是 NameNode 的熱備 b)它對內(nèi)存沒有要求

c)它的目的是幫助 NameNode 合并編輯日志,減少 NameNode 啟動時間

d)SecondaryNameNode 應與 NameNode 部署到一個節(jié)點

答案C。

D答案可以參考第三題

多選題:

8. 下列哪項可以作為集群的管理?

a)Puppet b)Pdsh c)Cloudera Manager d)Zookeeper

答案1:ABD

具體可查看

什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具體作用是什么

二次整理

修改后答案:ABC

分析:

A:puppetpuppet是一種Linux、Unix、windows平臺的集中配置管理系統(tǒng)

B:pdsh可以實現(xiàn)在在多臺機器上執(zhí)行相同的命令

詳細參考:集群管理小工具介紹-pdsh

C:可以參考Cloudera Manager四大功能【翻譯】

首先這里給管理下一個定義:部署、配置、調(diào)試、監(jiān)控,屬于管理

因為zookeeper不滿足上面要求,所以不納入管理范圍。

9. 配置機架感知的下面哪項正確

a)如果一個機架出問題,不會影響數(shù)據(jù)讀寫

b)寫入數(shù)據(jù)的時候會寫到不同機架的 DataNode 中

c)MapReduce 會根據(jù)機架獲取離自己比較近的網(wǎng)絡數(shù)據(jù)

答案ABC

具體可以參考

hadoop機架感知--加強集群穩(wěn)固性,該如何配置hadoop機架感知

10. Client 端上傳文件的時候下列哪項正確

a)數(shù)據(jù)經(jīng)過 NameNode 傳遞給 DataNode

b)Client 端將文件切分為 Block,依次上傳

c)Client 只上傳數(shù)據(jù)到一臺 DataNode,然后由 NameNode 負責 Block 復制工作

答案B

分析:

Client向NameNode發(fā)起文件寫入的請求。

NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。

Client將文件劃分為多個Block,根據(jù)DataNode的地址信息,按順序寫入到每一個DataNode塊中。

具體查看

HDFS體系結構簡介及優(yōu)缺點

11. 下列哪個是 Hadoop 運行的模式

a)單機版 b)偽分布式 c)分布式

答案ABC

12. Cloudera 提供哪幾種安裝 CDH 的方法

a)Cloudera manager b)Tarball c)Yum d)Rpm

答案:ABCD具體可以參考

Hadoop CDH四種安裝方式總結及實例指導

判斷題:

13. Ganglia 不僅可以進行監(jiān)控,也可以進行告警。( 正確)

分析:

此題的目的是考Ganglia的了解。嚴格意義上來講是正確。

ganglia作為一款最常用的Linux環(huán)境中的監(jiān)控軟件,它擅長的的是從節(jié)點中按照用戶的需求以較低的代價采集數(shù)據(jù)。但是ganglia在預警以及發(fā)生事件后通知用戶上并不擅長。最新的ganglia已經(jīng)有了部分這方面的功能。但是更擅長做警告的還有Nagios。Nagios,就是一款精于預警、通知的軟件。通過將Ganglia和Nagios組合起來,把Ganglia采集的數(shù)據(jù)作為Nagios的數(shù)據(jù)源,然后利用Nagios來發(fā)送預警通知,可以完美的實現(xiàn)一整套監(jiān)控管理的系統(tǒng)。

具體可以查看完美集群監(jiān)控組合ganglia和nagios

14. Block Size 是不可以修改的。(錯誤 )

它是可以被修改的

Hadoop的基礎配置文件是hadoop-default.xml,默認建立一個Job的時候會建立Job的Config,Config首先讀入hadoop-default.xml的配置,然后再讀入hadoop-site.xml的配置(這個文件初始的時候配置為空),hadoop-site.xml中主要配置需要覆蓋的hadoop-default.xml的系統(tǒng)級配置。具體配置可以參考下

dfs.block.size//block的大小,單位字節(jié),后面會提到用處,必須是512的倍數(shù),因為采用crc作文件完整性校驗,默認配置512是checksum的最小單元。

5120000

The default block size for new files.

15. Nagios 不可以監(jiān)控 Hadoop 集群,因為它不提供 Hadoop 支持。(錯誤 )

分析:

Nagios是集群監(jiān)控工具,而且是云計算三大利器之一

16. 如果 NameNode 意外終止,SecondaryNameNode 會接替它使集群繼續(xù)工作。(錯誤 )

分析:

SecondaryNameNode是幫助恢復,而不是替代,如何恢復,可以查看

hadoop 根據(jù)SecondaryNameNode恢復Namenode

17. Cloudera CDH 是需要付費使用的。(錯誤 )

分析:

第一套付費產(chǎn)品是Cloudera Enterpris,Cloudera Enterprise在美國加州舉行的 Hadoop 大會 (Hadoop Summit) 上公開,以若干私有管理、監(jiān)控、運作工具加強 Hadoop 的功能。收費采取合約訂購方式,價格隨用的 Hadoop 叢集大小變動。

18. Hadoop 是 Java 開發(fā)的,所以 MapReduce 只支持 Java 語言編寫。(錯誤 )

分析:

rhadoop是用R語言開發(fā)的,MapReduce是一個框架,可以理解是一種思想,可以使用其他語言開發(fā)。

具體可以查看

Hadoop簡介(1):什么是Map/Reduce

19. Hadoop 支持數(shù)據(jù)的隨機讀寫。(錯 )

分析:

lucene是支持隨機讀寫的,而hdfs只支持隨機讀。但是HBase可以來補救。

HBase提供隨機讀寫,來解決Hadoop不能處理的問題。HBase自底層設計開始即聚焦于各種可伸縮性問題:表可以很“高”,有數(shù)十億個數(shù)據(jù)行;也可以很“寬”,有數(shù)百萬個列;水平分區(qū)并在上千個普通商用機節(jié)點上自動復制。表的模式是物理存儲的直接反映,使系統(tǒng)有可能提高高效的數(shù)據(jù)結構的序列化、存儲和檢索。

20. NameNode 負責管理 metadata,client 端每次讀寫請求,它都會從磁盤中讀取或則會寫入 metadata 信息并反饋 client 端。(錯誤)

修改后分析:

分析:

NameNode 不需要從磁盤讀取 metadata,所有數(shù)據(jù)都在內(nèi)存中,硬盤上的只是序列化的結果,只有每次 namenode 啟動的時候才會讀取。

1)文件寫入

Client向NameNode發(fā)起文件寫入的請求。

NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。

Client將文件劃分為多個Block,根據(jù)DataNode的地址信息,按順序寫入到每一個DataNode塊中。

2)文件讀取

Client向NameNode發(fā)起文件讀取的請求。

NameNode返回文件存儲的DataNode的信息。

Client讀取文件信息。

具體查看

hadoop中NameNode、DataNode和Client三者之間協(xié)作關系

21. NameNode 本地磁盤保存了 Block 的位置信息。( 個人認為正確,歡迎提出其它意見)

分析:

DataNode是文件存儲的基本單元,它將Block存儲在本地文件系統(tǒng)中,保存了Block的Meta-data,同時周期性地將所有存在的Block信息發(fā)送給NameNode。

具體同樣查看

hadoop中NameNode、DataNode和Client三者之間協(xié)作關系

22. DataNode 通過長連接與 NameNode 保持通信。( )

這個有分歧:具體正在找這方面的有利資料。下面提供資料可參考。

首先明確一下概念:

(1).長連接

Client方與Server方先建立通訊連接,連接建立后不斷開,然后再進行報文發(fā)送和接收。這種方式下由于通訊連接一直存在,此種方式常用于點對點通訊。

(2).短連接

Client方與Server每進行一次報文收發(fā)交易時才進行通訊連接,交易完畢后立即斷開連接。此種方式常用于一點對多點通訊,比如多個Client連接一個Server.

23. Hadoop 自身具有嚴格的權限管理和安全措施保障集群正常運行。(錯誤 )hadoop只能阻止好人犯錯,但是不能阻止壞人干壞事

具體可查看

hadoop安全性需不斷加強

24. Slave 節(jié)點要存儲數(shù)據(jù),所以它的磁盤越大越好。( 錯誤)

分析:

一旦Slave節(jié)點宕機,數(shù)據(jù)恢復是一個難題

25. hadoop dfsadmin –report 命令用于檢測 HDFS 損壞塊。(錯誤 )

分析:

hadoop dfsadmin -report

用這個命令可以快速定位出哪些節(jié)點down掉了,HDFS的容量以及使用了多少,以及每個節(jié)點的硬盤使用情況。

當然NameNode有個http頁面也可以查詢,但是這個命令的輸出更適合我們的腳本監(jiān)控dfs的使用狀況

Configured Capacity: 77209395855360 (70.22 TB)

Present Capacity: 76079914600683 (69.19 TB)

DFS Remaining: 60534707015680 (55.06 TB)

DFS Used: 15545207585003 (14.14 TB)

DFS Used%: 20.43%

-------------------------------------------------

Datanodes available: 107 (109 total, 2 dead)

Name: 172.16.218.232:50010

Rack: /lg/dminterface0

Decommission Status : Normal

Configured Capacity: 1259272216576 (1.15 TB)

DFS Used: 185585852416 (172.84 GB)

Non DFS Used: 39060951040 (36.38 GB)

DFS Remaining: 1034625413120(963.57 GB)

DFS Used%: 14.74%

DFS Remaining%: 82.16%

Last contact: Wed Nov 18 10:19:44 CST 2009

Name: 172.16.216.126:50010

Rack: /lg/dminterface2

Decommission Status : Normal

Configured Capacity: 661261402112 (615.85 GB)

DFS Used: 123147280384 (114.69 GB)

Non DFS Used: 8803852288 (8.2 GB)

DFS Remaining: 529310269440(492.96 GB)

DFS Used%: 18.62%

DFS Remaining%: 80.05%

Last contact: Wed Nov 18 10:19:46 CST 2009

26. Hadoop 默認調(diào)度器策略為 FIFO(正確 )

具體參考

Hadoop集群三種作業(yè)調(diào)度算法介紹

27. 集群內(nèi)每個節(jié)點都應該配 RAID,這樣避免單磁盤損壞,影響整個節(jié)點運行。(錯誤 )

分析:

首先明白什么是RAID,可以參考百科磁盤陣列。

這句話錯誤的地方在于太絕對,具體情況具體分析。題目不是重點,知識才是最重要的。

因為hadoop本身就具有冗余能力,所以如果不是很嚴格不需要都配備RAID。具體參考第二題。

28. 因為 HDFS 有多個副本,所以 NameNode 是不存在單點問題的。(錯誤 )

分析:

NameNode存在單點問題。了解詳細信息,可以參考

Hadoop中Namenode單點故障的解決方案及詳細介紹AvatarNode

29. 每個 map 槽就是一個線程。(錯誤 )

分析:首先我們知道什么是map 槽,map 槽->map slot

map slot 只是一個邏輯值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是對應著一個線程或者進程

具體見:

hadoop中槽-slot是線程還是進程討論

30. Mapreduce 的 input split 就是一個 block。(錯誤 )

InputFormat的數(shù)據(jù)劃分、Split調(diào)度、數(shù)據(jù)讀取三個問題的淺析

31. NameNode 的 Web UI 端口是 50030,它通過 jetty 啟動的 Web 服務。(錯誤 )

分析:

根據(jù)下面,很顯然JOBTRACKER的 Web UI 端口是 50030

端口說明:

默認端口 設置位置

9000 namenode

8020 namenode

8021 JT RPC

50030 mapred.job.tracker.http.address JobTracker administrative web GUI

50070 dfs.http.address NameNode administrative web GUI

50010 dfs.datanode.address DataNode control port

50020 dfs.datanode.ipc.address DataNode IPC port, used for block transfer

50060 mapred.task.tracker.http.address Per TaskTracker web interface

50075 dfs.datanode.http.address Per DataNode web interface

50090 dfs.secondary.http.address Per secondary NameNode web interface

設置位置 描述信息

namenode 交互端口

namenode RPC交互端口

JT RPC 交互端口

mapred.job.tracker.http.address JobTracker administrative web GUI JOBTRACKER的HTTP服務器和端口

dfs.http.address NameNode administrative web GUI NAMENODE的HTTP服務器和端口

dfs.datanode.address DataNode control port DATANODE控制端口,主要用于DATANODE初始化時向NAMENODE提出注冊和應答請求

dfs.datanode.ipc.address DataNode IPC port, used for block transfer DATANODE的RPC服務器地址和端口

mapred.task.tracker.http.address Per TaskTracker web interface TASKTRACKER的HTTP服務器和端口

dfs.datanode.http.address Per DataNode web interface DATANODE的HTTP服務器和端口

dfs.secondary.http.address Per secondary NameNode web interface 輔助DATANODE的HTTP服務器和端口

32. Hadoop 環(huán)境變量中的 HADOOP_HEAPSIZE 用于設置所有 Hadoop 守護線程的內(nèi)存。它默

認是 200 GB。( 錯誤)

hadoop為各個守護進程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)統(tǒng)一分配的內(nèi)存在hadoop-env.sh中設置,參數(shù)為HADOOP_HEAPSIZE,默認為1000M。

具體參考hadoop集群內(nèi)存設置

33. DataNode 首次加入 cluster 的時候,如果 log 中報告不兼容文件版本,那需要 NameNode

執(zhí)行“Hadoop namenode -format”操作格式化磁盤。(錯誤 )

分析:

首先明白介紹,什么ClusterID

ClusterID

添加了一個新的標識符ClusterID用于標識集群中所有的節(jié)點。當格式化一個Namenode,需要提供這個標識符或者自動生成。這個ID可以被用來格式化加入集群的其他Namenode。

二次整理

有的同學問題的重點不是上面分析內(nèi)容:內(nèi)容如下:

這個報錯是說明 DataNode 所裝的Hadoop版本和其它節(jié)點不一致,應該檢查DataNode的Hadoop版本

詳細內(nèi)容可參考

hadoop集群添加namenode的步驟及常識

以上答案通過多個資料驗證,對于資料不充分的內(nèi)容,都標有”個人觀點“,給出本測試題抱著謹慎的態(tài)度,希望大家多批評指正。

上面只是選擇與判斷,可以看另外一套實戰(zhàn)面試實戰(zhàn)面試題

[hadoop面試題總結1]