1. 程式人生 > >一張圖揭密:2018年我國大資料、智慧化發展哪兒最強(附全面的面試資料)

一張圖揭密:2018年我國大資料、智慧化發展哪兒最強(附全面的面試資料)

          在大資料開發崗位的需求下,工資待遇水漲船高,不少程式設計人員在面對職業瓶頸期的時候,會選擇轉程式設計方向發展。

你是否已經意識這是你人生中的一個重要轉機?能不能抓住這個時代的機遇,就在於你對大資料資訊的應用和獲取。而如何成為大資料時代的弄潮兒,掌握當下最緊缺的軟體技能是關鍵!谷歌、阿里巴巴、百度、京東都在急需掌握hadoop技術的大資料人才!無論你精通大資料的哪一項類,都將在未來職場脫穎而出!

很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系

在過去的2017年有不少大資料學成準備參加工作,在參加工作前最重要的一輪就是大資料的面試,小編收集了一些2018春招大資料面試題及答案,希望可以幫到準備或者正在參加大資料面試的朋友們。

一、選擇題

1.下面哪個程式負責HDFS資料儲存。答案C datanode

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

2. HDfS中的block預設儲存幾份?答案A預設3分

a)3份

b)2份

c)1份

d)不確定

3.下列哪個程式通常與NameNode在一個節點啟動?答案D

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracke

此題分析:

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。

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

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

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

4. Hadoop作者 答案:C Doug cutting

a)Martin Fowler

b)Kent Beck

c)Doug cutting

5. HDFS預設Block Size答案:B

a)32MB

b)64MB

c)128MB

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

6.下列哪項通常是叢集的最主要瓶頸:答案:C磁碟

a)CPU

b)網路

c)磁碟IO

d)記憶體

該題解析:

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

1.cpu處理能力強

2.記憶體夠大

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

3.網路是一種稀缺資源,但是並不是瓶頸。

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

7.關於SecondaryNameNode哪項是正確的?答案C

a)它是NameNode的熱備

b)它對記憶體沒有要求

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

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

二、多選題:

8.下列哪項可以作為叢集的管理?答案:ABD

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper

9.配置機架感知的下面哪項正確:答案ABC

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

b)寫入資料的時候會寫到不同機架的DataNode中

c)MapReduce會根據機架獲取離自己比較近的網路資料

10. Client端上傳檔案的時候下列哪項正確?答案B

a)資料經過NameNode傳遞給DataNode

b)Client端將檔案切分為Block,依次上傳

c)Client只上傳資料到一臺DataNode,然後由NameNode負責Block複製工作

該題分析:

Client向NameNode發起檔案寫入的請求。

NameNode根據檔案大小和檔案塊配置情況,返回給Client它所管理部分DataNode的資訊。

Client將檔案劃分為多個Block,根據DataNode的地址資訊,按順序寫入到每一個DataNode塊中。

11.下列哪個是Hadoop執行的模式:答案ABC

a)單機版

b)偽分散式

c)分散式

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

a)Cloudera manager

b)Tarball

c)Yum

d)Rpm

三、判斷題:

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

分析:此題的目的是考Ganglia的瞭解。嚴格意義上來講是正確。ganglia作為一款最常用的Linux環境中的監控軟體,它擅長的的是從節點中按照使用者的需求以較低的代價採集資料。但是ganglia在預警以及發生事件後通知使用者上並不擅長。最新的ganglia已經有了部分這方面的功能。但是更擅長做警告的還有Nagios。Nagios,就是一款精於預警、通知的軟體。通過將Ganglia和Nagios組合起來,把Ganglia採集的資料作為Nagios的資料來源,然後利用Nagios來發送預警通知,可以完美的實現一整套監控管理的系統。

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

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

15. Nagios不可以監控Hadoop叢集,因為它不提供Hadoop支援。(錯誤)

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

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

分析:SecondaryNameNode是幫助恢復,而不是替代,如何恢復,可以檢視.

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

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

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

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

19. Hadoop支援資料的隨機讀寫。(錯)

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

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

此題分析:

NameNode不需要從磁碟讀取metadata,所有資料都在記憶體中,硬碟上的只是序列化的結果,只有每次namenode啟動的時候才會讀取。

1)檔案寫入

Client向NameNode發起檔案寫入的請求。

NameNode根據檔案大小和檔案塊配置情況,返回給Client它所管理部分DataNode的資訊。

Client將檔案劃分為多個Block,根據DataNode的地址資訊,按順序寫入到每一個DataNode塊中。

2)檔案讀取

Client向NameNode發起檔案讀取的請求。

21. NameNode本地磁碟儲存了Block的位置資訊。(個人認為正確,歡迎提出其它意見)

分析:DataNode是檔案儲存的基本單元,它將Block儲存在本地檔案系統中,儲存了Block的Meta-data,同時週期性地將所有存在的Block資訊傳送給NameNode。NameNode返回檔案儲存的DataNode的資訊。

Client讀取檔案資訊。

22. DataNode通過長連線與NameNode保持通訊。(? )

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

首先明確一下概念:

(1).長連線

Client方與Server方先建立通訊連線,連線建立後不斷開,然後再進行報文傳送和接收。這種方式下由於通訊連線一直存在,此種方式常用於點對點通訊。

(2).短連線

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

23. Hadoop自身具有嚴格的許可權管理和安全措施保障叢集正常執行。(錯誤)

分析:hadoop只能阻止好人犯錯,但是不能阻止壞人幹壞事

24. Slave節點要儲存資料,所以它的磁碟越大越好。(錯誤)

分析:一旦Slave節點宕機,資料恢復是一個難題

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

26. Hadoop預設排程器策略為FIFO(正確)

27.叢集內每個節點都應該配RAID,這樣避免單磁碟損壞,影響整個節點執行。(錯誤)

分析:首先明白什麼是RAID,可以參考百科磁碟陣列。這句話錯誤的地方在於太絕對,具體情況具體分析。題目不是重點,知識才是最重要的。因為hadoop本身就具有冗餘能力,所以如果不是很嚴格不需要都配備RAID。具體參考第二題。

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

29.每個map槽就是一個執行緒。(錯誤)

分析:首先我們知道什麼是map槽,map槽->map slotmap slot只是一個邏輯值( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是對應著一個執行緒或者程序

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

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

32. Hadoop環境變數中的HADOOP_HEAPSIZE用於設定所有Hadoop守護執行緒的記憶體。它預設是200 GB。(錯誤)

分析:hadoop為各個守護程序(namenode,secondarynamenode,jobtracker,datanode,tasktracker)統一分配的記憶體在hadoop-env.sh中設定,引數為HADOOP_HEAPSIZE,預設為1000M。

33. DataNode首次加入cluster的時候,如果log中報告不相容檔案版本,那需要NameNode執行“Hadoop amenode -format”操作格式化磁碟。(錯誤)

分析:

首先明白介紹,什麼ClusterID

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

以上就是小編整理的2018大資料春招面試題及答案准備或者是正在參加大資料的面試的朋友可以收藏一下好好看看,做好充分的準備參加每一場的面試,祝你成功! 

大資料資料qq群:458345782