hadoop-叢集管理(4)——關鍵屬性

thamsyangsw發表於2014-08-19

hadoop中的配置屬性非常多,這裡只討論關鍵屬性,它們分散在3個檔案中:core-site.xml、hdfs-site.xml、mapred-site.xml。

1. core-site.xml


 
    fs.default.name
    hdfs://Route:9000
    true
 

執行HDFS需要指定一臺機器為namenode,透過引數 fs.default.name 來設定。它還指定了檔案系統為HDFS。

2. hdfs-site.xml


  
    dfs.replication
    2
  

  
    dfs.name.dir
    /home/tianyc/hadoop-1.0.4/dir_namenode/dir1,/home/tianyc/hadoop-1.0.4/dir_namenode/dir2
  

  
    dfs.data.dir
    /home/tianyc/hadoop-1.0.4/dir_datanode/dir1,/home/tianyc/hadoop-1.0.4/dir_datanode/dir2
  

  
    dfs.checkpoint.dir
    /home/tianyc/hadoop-1.0.4/dir_secondarynamenode/dir1,/home/tianyc/hadoop-1.0.4/dir_secondarynamenode/dir2
  

  • dfs.replication:確定資料塊被複制的份數。
  • dfs.name.dir:指定一系列目錄來供namenode儲存永久性的檔案系統後設資料(編輯日誌和檔案系統映像),這些後設資料檔案會同時備份在所有指定的目錄中,形成冗餘。建議指定一個本地磁碟目錄,指定一個遠端磁碟目錄(例如NFS掛載磁碟),這樣本地磁碟故障或namenode節點當機後,都可以恢復並重構新的namenode。注意secondrynamenode只是定期儲存namenode的檢查點,並不提供namenode的最新備份。
  • dfs.data.dir:指定datanode儲存資料的一系列目錄。注意這裡不是為了冗餘,而是迴圈地在各個目錄中寫資料。因此,為了提高效能,最好分別為各個本地磁碟指定一個儲存目錄,使得資料塊跨磁碟分佈。這樣,針對不同資料塊的讀操作可以併發執行,從而提升讀效能。另一個顯著提升的操作是在mount這些磁碟時,使用,使得不重新整理所讀檔案的最新訪問時間。
  • dfs.checkpoint.dir:指定一系列目錄來儲存secondarynamenode的檢查點映像檔案。與namenode相同,這裡的一系列目錄也是為了冗餘。

注意:如果不設定這些屬性,HDFS的儲存目錄預設存放在hadoop的臨時目錄中(由core-site.xml檔案中的 Hadoop.tmp.dir屬性指定)。而如果清除了系統的臨時目錄,資料就會丟失。Hadoop.tmp.dir 屬性的參考設定如下:

[tianyc@Route bin]$ cat ../conf/core-site.xml

<!-- Put site-specific property overrides in this file. --&gt


  
    fs.default.name
    hdfs://Route:9000
  

  
    Hadoop.tmp.dir
    /tmp/hadoop-tianyc
  

 3. mapred-site.xml


  
    mapred.job.tracker
    Route:9001
    true
  

  
    mapred.local.dir
    /home/tianyc/hadoop-1.0.4/dir_local/dir1,/home/tianyc/hadoop-1.0.4/dir_local/dir2
  

  
    mapred.system.dir
    /tmp/hadoop-tianyc/dir_system
  

  
    mapred.tasktracker.map.tasks.maximum
    2
  

  
    mapred.tasktracker.reduce.tasks.maximum
    2
  

  
    mapred.child.java.opts
    -Xmx200m
  

  • mapred.job.tracker:指定jobtracker節點。這裡不是URL格式,而是“主機:埠”格式。
  • mapred.local.dir:臨時本地檔案的一系列目錄,儲存mapreduce作業執行過程中產生的中間資料和工作檔案。由於這裡也儲存map任務的輸出資料,資料量可能非常大,因此必須保證這裡的容量足夠大。這些目錄最好分散到各個本地磁碟以提升I/O,通常會使用與datanode相同的磁碟和分割槽(但不同目錄)。
  • mapred.system.dir:指定一個目錄,來儲存執行mapreduce任務的各個tasktracker的共享檔案(例如作業JAR檔案)。
  • mapred.tasktracker.map.tasks.maximum:最大map任務數。
  • mapred.tasktracker.reduce.tasks.maximum:最大reduce任務數。
  • mapred.child.java.opts:tasktracker中子JVM的有效記憶體大小。

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

相關文章