幹貨 | 98道常見Hadoop面試題及答案解析(一)">幹貨 | 98道常見Hadoop面試題及答案解析(一)

分類:IT技術 時間:2017-09-26

這是一篇hadoop的測試題及答案解析,題目種類挺多,一共有98道題,題目難度不大,對於高手來說,90分以上才是你的追求。

1 單選題

1.1 下面哪個程序負責 HDFS 數據存儲。

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

答案 C datanode

1.2 HDfS 中的 block 默認保存幾份?

a)3 份

b)2 份

c)1 份

d)不確定

答案 A 默認 3份

1.3 下列哪個程序通常與 NameNode 在一個節點啟動?

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

答案 D,此題分析:

hadoop 的集群是基於 master/slave 模式,namenode 和 jobtracker 屬於 master,datanode 和 tasktracker 屬 於 slave , master 只 有 一 個 , 而 slave 有多個SecondaryNameNode 內存需求和 NameNode 在一個數量級上,所以通常 secondary ,NameNode(運行在單獨的物理機器上)和 NameNode 運行在不同的機器上。

JobTracker 和 TaskTracker,JobTracker 對應於 NameNode,TaskTracker 對應於 DataNode,DataNode 和 NameNode 是針對數據存放來而言的,JobTracker 和 TaskTracker 是對於 MapReduce 執行而言的,mapreduce 中幾個主要概念,mapreduce 整體上可以分為這麽幾條執行線索:obclient,JobTracker 與 TaskTracker。

JobClient會在用戶端通過JobClient類將應用已經配置參數打包成jar文件存儲到hdfs,並把路徑提交到 Jobtracker,然後由 JobTracker 創建每一個 Task(即 MapTask 和ReduceTask)並將它們分發到各個 TaskTracker 服務中去執行。

JobTracker 是一個 master 服務,軟件啟動之後 JobTracker 接收 Job,負責調度 Job的每一個子任務 task 運行於 TaskTracker 上,並監控它們,如果發現有失敗的 task 就重新運行它。一般情況應該把 JobTracker 部署在單獨的機器上。

TaskTracker 是運行在多個節點上的 slaver 服務。TaskTracker 主動與 JobTracker 通信,接收作業,並負責直接執行每一個任務。TaskTracker 都需要運行在 HDFS 的 DataNode上。

1.4 Hadoop 作者

a)Martin Fowler

b)Kent Beck

c)Doug cutting

答案 C Doug cutting

1.5 HDFS 默認 Block Size

a)32MB

b)64MB

c)128MB

答案:B

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

1.6 下列哪項通常是集群的最主要瓶頸:

a)CPU

b)網絡

c)磁盤 IO

d)內存

答案:C 磁盤

該題解析:

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

cpu 處理能力強

內存夠大。所以集群的瓶頸不可能是 a 和 d

網絡是一種稀缺資源,但是並不是瓶頸。

由於大數據面臨海量數據,讀寫數據都需要 io,然後還要冗余數據,hadoop 一般備 3份數據,所以 IO 就會打折扣。

1.7 關於 SecondaryNameNode 哪項是正確的?

a)它是 NameNode 的熱備

b)它對內存沒有要求

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

d)SecondaryNameNode 應與 NameNode 部署到一個節點。

答案 C

2 多選題

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

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper

答案:ABD

2.2 配置機架感知的下面哪項正確:

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

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

c)MapReduce 會根據機架獲取離自己比較近的網絡數據

答案 ABC

2.3 Client 端上傳文件的時候下列哪項正確?

a)數據經過 NameNode 傳遞給 DataNode

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

c)Client 只上傳數據到一臺 DataNode,然後由 NameNode 負責 Block 復制工作

答案 B,該題分析:

lient 向 NameNode 發起文件寫入的請求。

NameNode 根據文件大小和文件塊配置情況,返回給 Client 它所管理部分 DataNode 的

信息。

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

2.4 下列哪個是 Hadoop 運行的模式:

a)單機版

b)偽分布式

c)分布式

答案 ABC

2.5 Cloudera 提供哪幾種安裝 CDH 的方法?

a)Cloudera manager

b)Tarball

c)Yum

d)Rpm

答案:ABCD

3 判斷題

3.1 Ganglia 不僅可以進行監控,也可以進行告警。( 正確)

分析:此題的目的是考 Ganglia 的了解。嚴格意義上來講是正確。ganglia 作為一款最常用的 linux 環境中的監控軟件,它擅長的的是從節點中按照用戶的需求以較低的代價采集數據。

但是 ganglia 在預警以及發生事件後通知用戶上並不擅長。最新的 ganglia 已經有了部分這方面的功能。但是更擅長做警告的還有 Nagios。Nagios,就是一款精於預警、通知的軟件。通過將 Ganglia 和 Nagios 組合起來,把 Ganglia 采集的數據作為 Nagios 的數據源,然後利用 Nagios 來發送預警通知,可以完美的實現一整套監控管理的系統。

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

分析:它是可以被修改的 Hadoop 的基礎配置文件是 hadoop-default.xml,默認建立一個 Job 的時候會建立 Job 的 Config,Config 首先讀入 hadoop-default.xml 的配置,然後再讀入 hadoop-site.xml 的配置(這個文件初始的時候配置為),hadoop-site.xml 中主要配置需要覆蓋的 hadoop-default.xml 的系統級配置。

3.3 Nagios 不可以監控 Hadoop 集群,因為它不提供 Hadoop 支持。(錯誤 )

分析:Nagios 是集群監控工具,而且是雲計算三大利器之一

3.4 如果 NameNode 意外終止,SecondaryNameNode 會接替它使集群繼續工作。

(錯誤 )

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

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

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

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

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

3.7 Hadoop 支持數據的隨機讀寫。(錯 )

分析:lucene是支持隨機讀寫的,而 hdfs 只支持隨機讀。但是 HBase 可以來補救。HBase提供隨機讀寫,來解決 Hadoop 不能處理的問題。HBase自底層設計開始即聚焦於各種可伸縮性問題:表可以很“高”,有數十億個數據行;也可以“寬”,有數百萬個列;水平分區並在上千個普通商用機節點上自動復制。表的模式是物理存儲的直接反映,使系統有可能提高高效的數據結構的序列化、存儲和檢索。

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

此題分析:

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

1)文件寫入

Client 向 NameNode 發起文件寫入的請求。

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

Client 將文件劃分為多個 Block,根據 DataNode 的地址信息,按順序寫入到每一個

DataNode 塊中。

2)文件讀取

Client 向 NameNode 發起文件讀取的請求。

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

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

Client 讀取文件信息。

3.10 DataNode 通過長連接與 NameNode 保持通信。(有分歧 )

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

首先明確一下概念:

(1).長連接

Client 方與 Server 方先建立通訊連接,連接建立後不斷開,然後再進行報文發送和接收。

這種方式下由於通訊連接一直存在,此種方式常用於點對點通訊。

(2).短連接

Client 方與 Server 每進行一次報文收發交易時才進行通訊連接,交易完畢後立即斷開連接。

此種方式常用於一點對多點通訊,比如多個 Client 連接一個 Server.

限於篇幅,這裏只能放一小部分題目,想測試更多的題目請自行下載。(博客後臺沒找到附件選項。。。)

http://www.dajiangtai.com/community/18456.do

未完待續


Tags: NameNode TaskTracker JobTracker 答案 幹貨 Jobtracker

文章來源:


ads
ads

相關文章
ads

相關文章

ad