時至今日,Hadoop已成為最流行的離線資料處理平臺,然而它的叢集配置起來並不簡單。如果你學習Hadoop不久,相信下面這45個問題會對你有所幫助。
大資料和架構師相關課程可以點選文章末尾“瞭解更多”
在工作生活中,有些問題非常簡單,但往往搜尋半天也找不到所需的答案,在Hadoop的學習與使用過程中同樣如此。這裡為大家分享Hadoop叢集設定中經常出現的一些問題,以下為譯文:
1.Hadoop叢集可以執行的3個模式?
單機(本地)模式
偽分散式模式
全分散式模式
2. 單機(本地)模式中的注意點?
在單機模式(standalone)中不會存在守護程序,所有東西都執行在一個JVM上。這裡同樣沒有DFS,使用的是本地檔案系統。單機模式適用於開發過程中執行MapReduce程式,這也是最少使用的一個模式。
3. 偽分佈模式中的注意點?
偽分散式(Pseudo)適用於開發和測試環境,在這個模式中,所有守護程序都在同一臺機器上執行。
4. VM是否可以稱為Pseudo?
不是,兩個事物,同時Pseudo只針對Hadoop。
5. 全分佈模式又有什麼注意點?
全分佈模式通常被用於生產環境,這裡我們使用N臺主機組成一個Hadoop叢集,Hadoop守護程序執行在每臺主機之上。這裡會存在Namenode執行的主機,Datanode執行的主機,以及task tracker執行的主機。在分散式環境下,主節點和從節點會分開。
6. Hadoop是否遵循UNIX模式?
是的,在UNIX用例下,Hadoop還擁有“conf”目錄。
7. Hadoop安裝在什麼目錄下?
Cloudera和Apache使用相同的目錄結構,Hadoop被安裝在cd/usr/lib/hadoop-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中都有一些屬性,包括名稱和值,但是當下這些檔案都已不復存在。
10. 那當下又該如何配置?
Hadoop現在擁有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決定的是元資料儲存的路徑以及DFS的儲存方式(磁碟或是遠端)
dfs。data。dir決定的是資料儲存的路徑
fs。checkpoint。dir用於第二Namenode
14. 如何退出輸入模式?
退出輸入的方式有:1,按ESC;2,鍵入:q(如果你沒有輸入任何當下)或者鍵入:wq(如果你已經輸入當下),並且按下Enter。
15. 當你輸入hadoopfsck /造成“connection refused java exception’”時,系統究竟發生了什麼?
這意味著Namenode沒有執行在你的VM之上。
16. 我們使用Ubuntu及Cloudera,那麼我們該去哪裡下載Hadoop,或者是預設就與Ubuntu一起安裝?
這個屬於Hadoop的預設配置,你必須從Cloudera或者Edureka的dropbox下載,然後在你的系統上執行。當然,你也可以自己配置,但是你需要一個Linux box,Ubuntu或者是Red Hat。在Cloudera網站或者是Edureka的Dropbox中有安裝步驟。
17. “jps”命令的用處?
這個命令可以檢查Namenode、Datanode、Task Tracker、 Job Tracker是否正常工作。
18. 如何重啟Namenode?
點選stop-all。sh,再點選start-all。sh。
鍵入sudo hdfs(Enter),su-hdfs (Enter),/etc/init。d/ha(Enter),及/etc/init。d/hadoop-0。20-namenode start(Enter)。
19. Fsck的全名?
全名是:File System Check。
20. 如何檢查Namenode是否正常執行?
如果要檢查Namenode是否正常工作,使用命令/etc/init。d/hadoop-0。20-namenode status或者就是簡單的jps。
21. mapred.job.tracker命令的作用?
可以讓你知道哪個節點是Job Tracker。
22. /etc /init.d命令的作用是?
/etc /init。d說明了守護程序(服務)的位置或狀態,其實是LINUX特性,和Hadoop關係不大。
23. 如何在瀏覽器中查詢Namenode?
如果你確實需要在瀏覽器中查詢Namenode,你不再需要localhost:8021,Namenode的埠號是50070。
24. 如何從SU轉到Cloudera?
從SU轉到Cloudera只需要鍵入exit。
25. 啟動和關閉命令會用到哪些檔案?
Slaves及Masters。
26. Slaves由什麼組成?
Slaves由主機的列表組成,每臺1行,用於說明資料節點。
27. Masters由什麼組成?
Masters同樣是主機的列表組成,每臺一行,用於說明第二Namenode伺服器。
28. hadoop-env.sh是用於做什麼的?
hadoop-env。sh提供了Hadoop中。 JAVA_HOME的執行環境。
29. Master檔案是否提供了多個入口?
是的你可以擁有多個Master檔案介面。
30. hadoop-env.sh檔案當下的位置?
hadoop-env。sh現在位於conf。
31. 在Hadoop_PID_DIR中,PID代表了什麼?
PID代表了“Process ID”。
32. /var/hadoop/pids用於做什麼?
/var/hadoop/pids用來儲存PID。
33. hadoop-metrics.properties檔案的作用是?
hadoop-metrics。properties被用做“Reporting”,控制Hadoop報告,初始狀態是“not to report”。
34. Hadoop需求什麼樣的網路?
Hadoop核心使用Shell(SSH)來驅動從節點上的伺服器程序,並在主節點和從節點之間使用password-less SSH連線。
35. 全分散式環境下為什麼需求password-less SSH?
這主要因為叢集中通訊過於頻繁,Job Tracker需要儘可能快的給Task Tracker釋出任務。
36. 這會導致安全問題嗎?
完全不用擔心。Hadoop叢集是完全隔離的,通常情況下無法從網際網路進行操作。與眾不同的配置,因此我們完全不需要在意這種級別的安全漏洞,比如說透過網際網路侵入等等。Hadoop為機器之間的連線提供了一個相對安全的方式。
37. SSH工作的埠號是?
SSH工作的埠號是NO。22,當然可以透過它來配置,22是預設的埠號。
38. SSH中的注意點還包括?
SSH只是個安全的shell通訊,可以把它當做NO。22上的一種協議,只需要配置一個密碼就可以安全的訪問。
39. 為什麼SSH本地主機需要密碼?
在SSH中使用密碼主要是增加安全性,在某些情況下也根本不會設定密碼通訊。
40. 如果在SSH中新增key,是否還需要設定密碼?
是的,即使在SSH中添加了key,還是需要設定密碼。
41. 假如Namenode中沒有資料會怎麼樣?
沒有資料的Namenode就不能稱之為Namenode,通常情況下,Namenode肯定會有資料。
42. 當Job Tracker宕掉時,Namenode會發生什麼?
當Job Tracker失敗時,叢集仍然可以正常工作,只要Namenode沒問題。
43. 是客戶端還是Namenode決定輸入的分片?
這並不是客戶端決定的,在配置檔案中以及決定分片細則。
44. 是否可以自行搭建Hadoop叢集?
是的,只要對Hadoop環境足夠熟悉,你完全可以這麼做。
45. 是否可以在Windows上執行Hadoop?
你最好不要這麼做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳作業系統。在Hadoop安裝中,Windows通常不會被使用,因為會出現各種各樣的問題。因此,Windows絕對不是Hadoop的推薦系統。
需要大資料hadoop的相關資料可以按以下方式獲取