大數(shù)據(jù)技術(shù)Hadoop面試題,看看你能答對(duì)多少?答案在后面

責(zé)任編輯:editor004

2014-11-24 14:49:29

摘自:36大數(shù)據(jù)

NameNode 負(fù)責(zé)管理 metadata,client 端每次讀寫請(qǐng)求,它都會(huì)從磁盤中讀取或則會(huì)寫入 metadata 信息并反饋 client 端。20 NameNode 負(fù)責(zé)管理 metadata,client 端每次讀寫請(qǐng)求,它都會(huì)從磁盤中讀取或則會(huì)寫入 metadata 信息并反饋 client 端。

大數(shù)據(jù)

  單項(xiàng)選擇題

1. 下面哪個(gè)程序負(fù)責(zé) HDFS 數(shù)據(jù)存儲(chǔ)。

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

2. HDfS 中的 block 默認(rèn)保存幾份?

a)3 份

b)2 份

c)1 份

d)不確定

3. 下列哪個(gè)程序通常與 NameNode 在一個(gè)節(jié)點(diǎn)啟動(dòng)?

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

4. Hadoop 作者

a)Martin Fowler

b)Kent Beck

c)Doug cutting

5. HDFS 默認(rèn) Block Size

a)32MB

b)64MB

c)128MB

6. 下列哪項(xiàng)通常是集群的最主要瓶頸

a)CPU

b)網(wǎng)絡(luò)

c)磁盤

d)內(nèi)存

7. 關(guān)于 SecondaryNameNode 哪項(xiàng)是正確的?

a)它是 NameNode 的熱備

b)它對(duì)內(nèi)存沒有要求

c)它的目的是幫助 NameNode 合并編輯日志,減少 NameNode 啟動(dòng)時(shí)間

d)SecondaryNameNode 應(yīng)與 NameNode 部署到一個(gè)節(jié)點(diǎn)

多選題:

8. 下列哪項(xiàng)可以作為集群的管理工具

a)Puppet

b)Pdsh

c)Cloudera Manager

d)d)Zookeeper

9. 配置機(jī)架感知的下面哪項(xiàng)正確

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

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

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

10. Client 端上傳文件的時(shí)候下列哪項(xiàng)正確

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

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

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

11. 下列哪個(gè)是 Hadoop 運(yùn)行的模式

a)單機(jī)版

b)偽分布式

c)分布式

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

a)Cloudera manager

b)Tar ball

c)Yum d)Rpm

判斷題:

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

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

15. Nagios 不可以監(jiān)控 Hadoop 集群,因?yàn)樗惶峁?Hadoop 支持。( )

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

17. Cloudera CDH 是需要付費(fèi)使用的。( )

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

19. Hadoop 支持?jǐn)?shù)據(jù)的隨機(jī)讀寫。( )

20. NameNode 負(fù)責(zé)管理 metadata,client 端每次讀寫請(qǐng)求,它都會(huì)從磁盤中讀取或則會(huì)寫入 metadata 信息并反饋 client 端。( )

21. NameNode 本地磁盤保存了 Block 的位置信息。( )

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

23. Hadoop 自身具有嚴(yán)格的權(quán)限管理和安全措施保障集群正常運(yùn)行。( )

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

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

26. Hadoop 默認(rèn)調(diào)度器策略為 FIFO( )

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

28. 因?yàn)?HDFS 有多個(gè)副本,所以 NameNode 是不存在單點(diǎn)問題的。( )

29. 每個(gè) map 槽就是一個(gè)線程。( )

30. Mapreduce 的 input split 就是一個(gè) block。( )

31. NameNode 的 Web UI 端口是 50030,它通過 jetty 啟動(dòng)的 Web 服務(wù)。( )

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

33. DataNode 首次加入 cluster 的時(shí)候,如果 log 中報(bào)告不兼容文件版本,那需要 NameNode執(zhí)行“Hadoop namenode -format”操作格式化磁盤。( )

別走開,答案在后面哦!

大數(shù)據(jù)

  1. 下面哪個(gè)程序負(fù)責(zé) HDFS 數(shù)據(jù)存儲(chǔ)。答案C datanode

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

2. HDfS 中的 block 默認(rèn)保存幾份? 答案A默認(rèn)3分

a)3 份

b)2 份

c)1 份

d)不確定

3. 下列哪個(gè)程序通常與 NameNode 在一個(gè)節(jié)點(diǎn)啟動(dòng)?答案D

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

此題分析:

hadoop的集群是基于master/slave模式,namenode和jobtracker屬于master,datanode和tasktracker屬于slave,master只有一個(gè),而slave有多個(gè)SecondaryNameNode內(nèi)存需求和NameNode在一個(gè)數(shù)量級(jí)上,所以通常secondary NameNode(運(yùn)行在單獨(dú)的物理機(jī)器上)和NameNode運(yùn)行在不同的機(jī)器上。

JobTracker和TaskTracker

JobTracker 對(duì)應(yīng)于 NameNode

TaskTracker 對(duì)應(yīng)于 DataNode

DataNode 和NameNode 是針對(duì)數(shù)據(jù)存放來而言的

JobTracker和TaskTracker是對(duì)于MapReduce執(zhí)行而言的

mapreduce中幾個(gè)主要概念,mapreduce整體上可以分為這么幾條執(zhí)行線索:obclient,JobTracker與TaskTracker。

1、JobClient會(huì)在用戶端通過JobClient類將應(yīng)用已經(jīng)配置參數(shù)打包成jar文件存儲(chǔ)到hdfs,并把路徑提交到Jobtracker,然后由JobTracker創(chuàng)建每一個(gè)Task(即MapTask和ReduceTask)并將它們分發(fā)到各個(gè)TaskTracker服務(wù)中去執(zhí)行。

2、JobTracker是一個(gè)master服務(wù),軟件啟動(dòng)之后JobTracker接收J(rèn)ob,負(fù)責(zé)調(diào)度Job的每一個(gè)子任務(wù)task運(yùn)行于TaskTracker上,并監(jiān)控它們,如果發(fā)現(xiàn)有失敗的task就重新運(yùn)行它。一般情況應(yīng)該把JobTracker部署在單獨(dú)的機(jī)器上。

3、TaskTracker是運(yùn)行在多個(gè)節(jié)點(diǎn)上的slaver服務(wù)。TaskTracker主動(dòng)與JobTracker通信,接收作業(yè),并負(fù)責(zé)直接執(zhí)行每一個(gè)任務(wù)。TaskTracker都需要運(yùn)行在HDFS的DataNode上。

4. Hadoop 作者 答案C Doug cutting

a)Martin Fowler

b)Kent Beck

c)Doug cutting

5. HDFS 默認(rèn) Block Size 答案:B

a)32MB

b)64MB

c)128MB

(因?yàn)榘姹靖鼡Q較快,這里答案只供參考)

6. 下列哪項(xiàng)通常是集群的最主要瓶頸:答案:C磁盤

a)CPU

b)網(wǎng)絡(luò)

c)磁盤IO

d)內(nèi)存

該題解析:

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

1.cpu處理能力強(qiáng)

2.內(nèi)存夠大

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

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

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

7. 關(guān)于 SecondaryNameNode 哪項(xiàng)是正確的?答案C

a)它是 NameNode 的熱備

b)它對(duì)內(nèi)存沒有要求

c)它的目的是幫助 NameNode 合并編輯日志,減少 NameNode 啟動(dòng)時(shí)間

d)SecondaryNameNode 應(yīng)與 NameNode 部署到一個(gè)節(jié)點(diǎn)。

多選題:

8. 下列哪項(xiàng)可以作為集群的管理?答案:ABD

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper

9. 配置機(jī)架感知的下面哪項(xiàng)正確:答案ABC

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

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

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

10. Client 端上傳文件的時(shí)候下列哪項(xiàng)正確?答案B

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

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

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

該題分析:

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

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

Client將文件劃分為多個(gè)Block,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€(gè)DataNode塊中。

11. 下列哪個(gè)是 Hadoop 運(yùn)行的模式:答案ABC

a)單機(jī)版

b)偽分布式

c)分布式

12. Cloudera 提供哪幾種安裝 CDH 的方法?答案:ABCD

a)Cloudera manager

b)Tarball

c)Yum

d)Rpm

判斷題:

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

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

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

分析:它是可以被修改的Hadoop的基礎(chǔ)配置文件是hadoop-default.xml,默認(rèn)建立一個(gè)Job的時(shí)候會(huì)建立Job的Config,Config首先讀入hadoop-default.xml的配置,然后再讀入hadoop-site.xml的配置(這個(gè)文件初始的時(shí)候配置為空),hadoop-site.xml中主要配置需要覆蓋的hadoop-default.xml的系統(tǒng)級(jí)配置。

15. Nagios 不可以監(jiān)控 Hadoop 集群,因?yàn)樗惶峁?Hadoop 支持。(錯(cuò)誤 )

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

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

分析:SecondaryNameNode是幫助恢復(fù),而不是替代,如何恢復(fù),可以查看

17. Cloudera CDH 是需要付費(fèi)使用的。(錯(cuò)誤 )

分析:第一套付費(fèi)產(chǎn)品是Cloudera Enterpris,Cloudera Enterprise在美國(guó)加州舉行的 Hadoop 大會(huì) (Hadoop Summit) 上公開,以若干私有管理、監(jiān)控、運(yùn)作工具加強(qiáng) Hadoop 的功能。收費(fèi)采取合約訂購方式,價(jià)格隨用的 Hadoop 叢集大小變動(dòng)。

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

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

19. Hadoop 支持?jǐn)?shù)據(jù)的隨機(jī)讀寫。(錯(cuò) )

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

20. NameNode 負(fù)責(zé)管理 metadata,client 端每次讀寫請(qǐng)求,它都會(huì)從磁盤中讀取或則會(huì)寫入 metadata 信息并反饋 client 端。(錯(cuò)誤)

此題分析:

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

1)文件寫入

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

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

Client將文件劃分為多個(gè)Block,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€(gè)DataNode塊中。

2)文件讀取

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

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

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

Client讀取文件信息。

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

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

首先明確一下概念:

(1).長(zhǎng)連接

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

(2).短連接

Client方與Server每進(jìn)行一次報(bào)文收發(fā)交易時(shí)才進(jìn)行通訊連接,交易完畢后立即斷開連接。此種方式常用于一點(diǎn)對(duì)多點(diǎn)通訊,比如多個(gè)Client連接一個(gè)Server.

23. Hadoop 自身具有嚴(yán)格的權(quán)限管理和安全措施保障集群正常運(yùn)行。(錯(cuò)誤 )

hadoop只能阻止好人犯錯(cuò),但是不能阻止壞人干壞事

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

分析:一旦Slave節(jié)點(diǎn)宕機(jī),數(shù)據(jù)恢復(fù)是一個(gè)難題

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

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

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

分析:首先明白什么是RAID,可以參考百科磁盤陣列。這句話錯(cuò)誤的地方在于太絕對(duì),具體情況具體分析。題目不是重點(diǎn),知識(shí)才是最重要的。因?yàn)閔adoop本身就具有冗余能力,所以如果不是很嚴(yán)格不需要都配備RAID。具體參考第二題。

28. 因?yàn)?HDFS 有多個(gè)副本,所以 NameNode 是不存在單點(diǎn)問題的。(錯(cuò)誤 )

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

分析:首先我們知道什么是map 槽,map 槽->map slotmap slot 只是一個(gè)邏輯值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是對(duì)應(yīng)著一個(gè)線程或者進(jìn)程

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

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

32. Hadoop 環(huán)境變量中的 HADOOP_HEAPSIZE 用于設(shè)置所有 Hadoop 守護(hù)線程的內(nèi)存。它默認(rèn)是 200 GB。( 錯(cuò)誤)

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

33、33. DataNode 首次加入 cluster 的時(shí)候,如果 log 中報(bào)告不兼容文件版本,那需要 NameNode執(zhí)行“Hadoop namenode -format”操作格式化磁盤。(錯(cuò)誤 )

分析:

首先明白介紹,什么ClusterID

ClusterID

添加了一個(gè)新的標(biāo)識(shí)符ClusterID用于標(biāo)識(shí)集群中所有的節(jié)點(diǎn)。當(dāng)格式化一個(gè)Namenode,需要提供這個(gè)標(biāo)識(shí)符或者自動(dòng)生成。這個(gè)ID可以被用來格式化加入集群的其他Namenode。

二次整理

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

這個(gè)報(bào)錯(cuò)是說明 DataNode 所裝的Hadoop版本和其它節(jié)點(diǎn)不一致,應(yīng)該檢查DataNode的Hadoop版本

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)