hadoop-叢集管理(1)——配置檔案

thamsyangsw發表於2014-08-19

1. 配置檔案列表如下:

[tianyc@Route conf]$ pwd
/home/tianyc/hadoop-1.0.4/conf
[tianyc@Route conf]$ ll
總用量 76
-rw-rw-r--. 1 tianyc NEU 7457 3月   6 10:38 capacity-scheduler.xml
-rw-rw-r--. 1 tianyc NEU  535 3月   6 10:38 configuration.xsl
-rw-rw-r--. 1 tianyc NEU  371 3月   6 14:26 core-site.xml
-rw-rw-r--. 1 tianyc NEU  327 3月   6 10:38 fair-scheduler.xml
-rw-rw-r--. 1 tianyc NEU 2233 3月   6 10:38 hadoop-env.sh
-rw-rw-r--. 1 tianyc NEU 1488 3月   6 10:38 hadoop-metrics2.properties
-rw-rw-r--. 1 tianyc NEU 4644 3月   6 10:38 hadoop-policy.xml
-rw-rw-r--. 1 tianyc NEU  258 3月   6 10:38 hdfs-site.xml
-rw-rw-r--. 1 tianyc NEU 4441 3月   6 10:38 log4j.properties
-rw-rw-r--. 1 tianyc NEU 2033 3月   6 10:38 mapred-queue-acls.xml
-rw-rw-r--. 1 tianyc NEU  270 3月   7 14:45 mapred-site.xml
-rw-rw-r--. 1 tianyc NEU   19 3月   7 11:52 masters
-rw-rw-r--. 1 tianyc NEU   19 3月   6 10:38 slaves
-rw-rw-r--. 1 tianyc NEU 1243 3月   6 10:38 ssl-client.xml.example
-rw-rw-r--. 1 tianyc NEU 1195 3月   6 10:38 ssl-server.xml.example
-rw-rw-r--. 1 tianyc NEU  382 3月   6 10:38 taskcontroller.cfg

2. 常用配置檔案:

  • hadoop-env.sh:記錄指令碼要用的環境變數。
  • core-site.xml:Hadoop核心配置項
  • hdfs-site.xml:Hadoop守護程式配置項,例如namenode,secondarynamenode和datanode等。
  • mapred-site.xml:MapReduce守護程式配置項,包括jobtracker和tasktracker。
  • master:執行secondarynamenode(而不是namenode)的機器列表(每行一個)。只在namenode或jobtracker節點上使用,無需同步到各節點。
  • slave:執行datanode和tasktracker的機器列表(每行一個)。只在namenode或jobtracker節點上使用,無需同步到各節點。

3. 配置管理

hadoop支援為所有的節點採用同一套配置檔案,這樣管理會變得非常簡單,不過這對於某些叢集來說並不適合。例如在擴充套件叢集時,如果新機器的硬體和現有機器不同,則需要為新機器建立一套新的配置檔案,以充分利用新硬體資源。所以,非常推薦在每個節點儲存一套配置檔案,並由管理員完成這些配置檔案的同步工作。hadoop提供了一個基本工具來進行同步配置,即rsync。

這種情況下,需要引入“機器類”的概念,為不同的機器類分別維護一套配置檔案。不過hadoop並沒有提供執行這個操作的工具,需要藉助外部工具,例如Chef,Puppet,cfengine和bcfg2等。

4. 控制指令碼

  • start-dfs.sh:在本地節點啟動namenode,在slave檔案指定的每個節點啟動datanode,在master檔案指定的每個節點啟動secondarynamenode
  • start-mapred.sh:在本地節點啟動jobtracker,在slave檔案指定的每個節點啟動tasktracker。
  • start-all.sh:依次呼叫start-dfs.sh和start-mapred.sh
  • stop-dfs.sh/stop-mapred.sh/stop-all.sh:前面的start指令碼對應的關閉指令碼。
  • hadoop-daemon.sh:上述指令碼呼叫它來執行啟動和終止hadoop守護程式。如果使用者需要從其他系統或自己編寫指令碼控制hadoop守護程式,可以呼叫它。
  • hadoop-daemons.sh:用於在多個主機上啟動同一hadoop守護程式。

5. 守護程式管理

對於小型叢集(幾十個節點),可以將namenode、secondarynamenode、jobtracker放到單獨一臺機器上,但對於大型叢集,最好分別放到不同的機器上。

  • namenode:在記憶體中儲存整個名稱空間的所有檔案和塊後設資料,它的記憶體需求很大。
  • secondnamenode:儲存一份最新的檢查點,記錄檔案系統的後設資料,有助於在資料丟失或系統崩潰時恢復namenode的後設資料;它在大多時候空閒,但它建立檢查時的記憶體需求和namenode差不多。一旦檔案系統包含大量檔案,單臺主機可能無法同時執行namenode和secondarynamenode。
  • jobtracker:在一個執行大量mapreduce作業的高負載叢集上,jobtracker會使用大量記憶體和CPU資源,因此它最好執行在一個專用節點上。

HDFS控制指令碼需要在namenode機器上執行;mapreduce控制指令碼需要在jobtracker機器上執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26613085/viewspace-1253876/,如需轉載,請註明出處,否則將追究法律責任。

相關文章