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