Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲。Hadoop面試45個題目及答案由CNrencai小編為你提供,歡迎閱讀參考!
1.Hadoop集群可以運行的3個模式?
單機(本地)模式
偽分布式模式
全分布式模式
2. 單機(本地)模式中的注意點?
在單機模式(standalone)中不會存在守護進程,所有東西都運行在一個JVM上。這里同樣沒有DFS,使用的是本地文件系統(tǒng)。單機模式適用于開發(fā)過程中運行MapReduce程序,這也是最少使用的一個模式。
3. 偽分布模式中的注意點?
偽分布式(Pseudo)適用于開發(fā)和測試環(huán)境,在這個模式中,所有守護進程都在同一臺機器上運行。
4. VM是否可以稱為Pseudo?
不是,兩個事物,同時Pseudo只針對Hadoop。
5. 全分布模式又有什么注意點?
全分布模式通常被用于生產(chǎn)環(huán)境,這里我們使用N臺主機組成一個Hadoop集群,Hadoop守護進程運行在每臺主機之上。這里會存在Namenode運行的主機,Datanode運行的主機,以及task tracker運行的主機。在分布式環(huán)境下,主節(jié)點和從節(jié)點會分開。
6. Hadoop是否遵循UNIX模式?
是的,在UNIX用例下,Hadoop還擁有“conf”目錄。
7. Hadoop安裝在什么目錄下?
Cloudera和Apache使用相同的目錄結(jié)構(gòu),Hadoop被安裝在cdusrlibhadoop-0.20。
8. Namenode、Job tracker和task tracker的端口號是?
Namenode,70;Job tracker,30;Task tracker,60。
9. Hadoop的核心配置是什么?
Hadoop的核心配置通過兩個xml文件來完成:1,hadoop-default.xml;2,hadoop-site.xml。這些文件都使用xml格式,因此每個xml中都有一些屬性,包括名稱和值,但是當(dāng)下這些文件都已不復(fù)存在。
10. 那當(dāng)下又該如何配置?
Hadoop現(xiàn)在擁有3個配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。這些文件都保存在conf子目錄下。
11. RAM的溢出因子是?
溢出因子(Spill factor)是臨時文件中儲存文件的大小,也就是Hadoop-temp目錄。
12. fs.mapr.working.dir只是單一的目錄?
fs.mapr.working.dir只是一個目錄。
13. hdfs-site.xml的3個主要屬性?
dfs.name.dir決定的是元數(shù)據(jù)存儲的路徑以及DFS的存儲方式(磁盤或是遠端)
dfs.data.dir決定的是數(shù)據(jù)存儲的路徑
fs.checkpoint.dir用于第二Namenode
14. 如何退出輸入模式?
退出輸入的方式有:1,按ESC;2,鍵入q(如果你沒有輸入任何當(dāng)下)或者鍵入wq(如果你已經(jīng)輸入當(dāng)下),并且按下Enter。
15. 當(dāng)你輸入hadoopfsck 造成“connection refused java exception’”時,系統(tǒng)究竟發(fā)生了什么?
這意味著Namenode沒有運行在你的VM之上。
16. 我們使用Ubuntu及Cloudera,那么我們該去哪里下載Hadoop,或者是默認就與Ubuntu一起安裝?
這個屬于Hadoop的默認配置,你必須從Cloudera或者Edureka的dropbox下載,然后在你的系統(tǒng)上運行。當(dāng)然,你也可以自己配置,但是你需要一個Linux box,Ubuntu或者是Red Hat。在Cloudera網(wǎng)站或者是Edureka的Dropbox中有安裝步驟。
17. “jps”命令的用處?
這個命令可以檢查Namenode、Datanode、Task Tracker、 Job Tracker是否正常工作。
18. 如何重啟Namenode?
點擊stop-all.sh,再點擊start-all.sh。
鍵入sudo hdfs(Enter),su-hdfs (Enter),etcinit.dha(Enter),及etcinit.dhadoop-0.20-namenode start(Enter)。
19. Fsck的全名?
全名是:File System Check。
20. 如何檢查Namenode是否正常運行?
如果要檢查Namenode是否正常工作,使用命令etcinit.dhadoop-0.20-namenode status或者就是簡單的jps。
21. mapred.job.tracker命令的作用?
可以讓你知道哪個節(jié)點是Job Tracker。
22. etc init.d命令的作用是?
etc init.d說明了守護進程(服務(wù))的位置或狀態(tài),其實是LINUX特性,和Hadoop關(guān)系不大。
23. 如何在瀏覽器中查找Namenode?
如果你確實需要在瀏覽器中查找Namenode,你不再需要localhost8021,Namenode的端口號是50070。
24. 如何從SU轉(zhuǎn)到Cloudera?
從SU轉(zhuǎn)到Cloudera只需要鍵入exit。
25. 啟動和關(guān)閉命令會用到哪些文件?
Slaves及Masters。
26. Slaves由什么組成?
Slaves由主機的列表組成,每臺1行,用于說明數(shù)據(jù)節(jié)點。
27. Masters由什么組成?
Masters同樣是主機的列表組成,每臺一行,用于說明第二Namenode服務(wù)器。
28. hadoop-env.sh是用于做什么的?
hadoop-env.sh提供了Hadoop中. JAVA_HOME的運行環(huán)境。
29. Master文件是否提供了多個入口?
是的你可以擁有多個Master文件接口。
30. Hadoop-env.sh文件當(dāng)下的位置?
hadoop-env.sh現(xiàn)在位于conf。
31. 在Hadoop_PID_DIR中,PID代表了什么?
PID代表了“Process ID”。
32. varhadooppids用于做什么?
varhadooppids用來存儲PID。
33. hadoop-metrics.properties文件的作用是?
hadoop-metrics.properties被用做“Reporting”,控制Hadoop報告,初始狀態(tài)是“not to report”。
34. Hadoop需求什么樣的網(wǎng)絡(luò)?
Hadoop核心使用Shell(SSH)來驅(qū)動從節(jié)點上的服務(wù)器進程,并在主節(jié)點和從節(jié)點之間使用password-less SSH連接。
35. 全分布式環(huán)境下為什么需求password-less SSH?
這主要因為集群中通信過于頻繁,Job Tracker需要盡可能快的給Task Tracker發(fā)布任務(wù)。
36. 這會導(dǎo)致安全問題嗎?
完全不用擔(dān)心。Hadoop集群是完全隔離的,通常情況下無法從互聯(lián)網(wǎng)進行操作。與眾不同的配置,因此我們完全不需要在意這種級別的安全漏洞,比如說通過互聯(lián)網(wǎng)侵入等等。Hadoop為機器之間的連接提供了一個相對安全的方式。
37. SSH工作的端口號是?
SSH工作的端口號是NO.22,當(dāng)然可以通過它來配置,22是默認的端口號。
38. SSH中的注意點還包括?
SSH只是個安全的shell通信,可以把它當(dāng)做NO.22上的一種協(xié)議,只需要配置一個密碼就可以安全的訪問。
39. 為什么SSH本地主機需要密碼?
在SSH中使用密碼主要是增加安全性,在某些情況下也根本不會設(shè)置密碼通信。
40. 如果在SSH中添加key,是否還需要設(shè)置密碼?
是的,即使在SSH中添加了key,還是需要設(shè)置密碼。
41. 假如Namenode中沒有數(shù)據(jù)會怎么樣?
沒有數(shù)據(jù)的Namenode就不能稱之為Namenode,通常情況下,Namenode肯定會有數(shù)據(jù)。
42. 當(dāng)Job Tracker宕掉時,Namenode會發(fā)生什么?
當(dāng)Job Tracker失敗時,集群仍然可以正常工作,只要Namenode沒問題。
43. 是客戶端還是Namenode決定輸入的分片?
這并不是客戶端決定的,在配置文件中以及決定分片細則。
44. 是否可以自行搭建Hadoop集群?
是的,只要對Hadoop環(huán)境足夠熟悉,你完全可以這么做。
45. 是否可以在Windows上運行Hadoop?
你最好不要這么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系統(tǒng)。在Hadoop安裝中,Windows通常不會被使用,因為會出現(xiàn)各種各樣的問題。因此,Windows絕對不是Hadoop的推薦系統(tǒng)。