1. 程式人生 > >大資料面試題hadoop部分及答案(16道)

大資料面試題hadoop部分及答案(16道)

1.Hadoop安裝步驟(九部曲)?
主從節點都要操作的:
1.在/etc/hosts下配置IP及主機名
2.建立hadoop使用者(同時配置hosts)
3.安裝jdk
4.配置環境變數/etc/profile
5.在主節點操作
(1)解壓並安裝hadoop
(2)配置引數檔案 core-site.xml 、hdfs-site.xml、 mapred-site.xml、master、slaves
(3)將主節點的hadoop拷貝到各個從節點
6.在所有節點操作
把/usr/local/hadoop-0.20.2-cdh3u5的所有者,所有者組改為hadoop並su成該使用者
7.在各個節點上配置祕鑰,訪問所有的節點
8.在主節點操作
(1)格式化:hadoop nodename -format
(2)啟動:hadoop start-all.sh
9.驗證:jps

2.請列出正常的hadoop叢集中hadoop都分別需要啟動哪些程序,他們的作用分別都是什麼,請儘量列的詳細一些。
NameNode:接受來自客戶端的檔案資訊,儲存檔案的元資料,
SecondaryNode:接受來自NameNode中的edits及fsimage,做一個類似於類備份的操作,定期清空edits,減小NameNode的操作壓力。
JobTracker: 管理所有作業,作業/任務的監控、錯誤處理等;將作業初始化分解成一系列任務,並分派給 TaskTracker。
DataNode:儲存實際的資料,彙報儲存資訊給NameNode。
TaskTracker:執行 Map Task 和 Reduce Task;並與 JobTracker互動,彙報任務狀態給JobTracker。

3.hadoop中需要配置哪些配置檔案其作用是什麼?
mapred-site-xml;設定jobtracker埠
hdfs-site-xml;設定datanode節點數為2
core-site-xml;設定namenode啟動埠

4.Hadoop HA 如何實現?簡述過程
HA:High Available(高可用)
說明1:Hadoop的高可用是hadoop2.X版本及以上的特性;hadoop HA通過zookeeper來實現namenode的高可用;
過程:現在hadoop叢集裡面搭建了一個zookeeper的叢集,同時我這個zookeeper的共享池通過多個其他的節點來實現,然後通過在另一個機架伺服器上已經配好了一個standby的namenode,然後整個hadoop的叢集現在有一個處於active的namenode,通過zookeeper告訴client和從節點有這樣一個standby的namenode,然後active-namenode定期產生的edits會互動到這個共享池裡面,如果active-namenode宕機,則standby-namenode通過共享池裡面的edits進行熱備份立馬恢復所有的fsimage,最終成為新的active-namenode。

5.Hadoop叢集可以執行的3個模式?
1.單機模式:有一個java程序模擬hadoop的各個角色:一臺單機上執行,沒有分散式檔案系統,而是直接讀寫本地作業系統的檔案系統
2.偽分散式:有多個java程序模擬hadoop的各個角色:這種模式也是在一臺單機上執行,但用不同的Java程序模仿分散式執行中的各類結點
3.叢集環境

6.如何用命令確認hadoop叢集的健康狀況
hadoop dfsadmin -report

7.殺死一個job,執行的命令是什麼?
列出Jobtracer上所有的作業
hadoop job -list
使用hadoop job -kill殺掉指定的jobid
hadoop job -kill job_id
組合以上兩條命令就可以實現kill掉指定使用者的job
for i in hadoop job -list | grep -w username| awk '{print $1}' | grep job_; do hadoop job -kill $i; done

8.如何檢視hadoop日誌檔案?
1.Hadoop MapReduce日誌分為兩部分,一部分是服務日誌,一部分是作業日誌,服務日誌包括JobTracker日誌和各個TaskTracker日誌,他們的日誌檔案均在所在節點的HADOOPHOME/logs/;jobhistorytaskjobhistorycounterJobTrackerHADOOP_HOME/history目錄下,可通過引數hadoop.job.history.location配置。每個task日誌存放在task執行節點上,存放位置是$HADOOP_HOME/userlogs//目錄下
2.可在NameNode的那個網頁上找到

9.(hadoop下的資料型別)context輸出型別(8個)
BooleanWritable:標準布林型數值
ByteWritable:單位元組數值
DoubleWritable:雙位元組數值
FloatWritable:浮點數
IntWritable:整型數
LongWritable:長整型數
Text:使用UTF8格式儲存的文字
NullWritable:當