萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Hadoop 參數配置優化

Hadoop 參數配置優化

  主要參照官方給出的配置指南進行的。

  hadoop.tmp.dir

  默認值: /tmp

  說明: 盡量手動配置這個選項,否則的話都默認存在了裡系統的默認臨時文件/tmp裡。並且手動配置的時候,如果服務器是多磁盤的,每個磁盤都設置一個臨時文件目錄,這樣便於mapreduce或者hdfs等使用的時候提高磁盤IO效率。

  fs.trash.interval

  默認值: 0

  說明: 這個是開啟hdfs文件刪除自動轉移到垃圾箱的選項,值為垃圾箱文件清除時間。一般開啟這個會比較好,以防錯誤刪除重要文件。單位是分鐘。

  fs.inmemory.size.mb

  默認值:

  說明: reduce階段用戶合並map輸出的內存限制。這裡設置200,可根據自身硬件設備進行更改測試。

  io.sort.factor

  默認值:10

  說明:排序文件的時候一次同時最多可並流的個數,這裡設置100。新版本為mapreduce.task.io.sort.factor。

  io.sort.mb

  默認值:100

  說明: 排序內存使用限制,這裡設置200m。新版本看說明貌似改成了這個mapreduce.task.io.sort.mb。

  io.file.buffer.size

  默認值:4096

  說明:SequenceFiles在讀寫中可以使用的緩存大小,這裡設置為131072。貌似這個參數在新版本裡變為了:file.stream-buffer-size,單位bytes 。

  dfs.blocksize

  默認值:67108864

  說明: 這個就是hdfs裡一個文件塊的大小了,默認64M,這裡設置134217728,即128M,太大的話會有較少map同時計算,太小的話也浪費可用map個數資源,而且文件太小namenode就浪費內存多。根據需要進行設置。

  dfs.namenode.handler.count

  默認值:10

  說明:hadoop系統裡啟動的任務線程數,這裡改為40,同樣可以嘗試該值大小對效率的影響變化進行最合適的值的設定。

  mapred.child.java.opts

  默認值:-Xmx200m

  說明:jvms啟動的子線程可以使用的最大內存。改為-Xmx1024m,內存再大也可以繼續增加。但是如果一般任務文件小,邏輯不復雜用不了那麼多的話太大也浪費。

  mapreduce.jobtracker.handler.count

  默認值:10

  說明:JobTracker可以啟動的線程數,一般為tasktracker節點的4%。

  mapreduce.reduce.shuffle.parallelcopies

  默認值:5

  說明:reuduce shuffle階段並行傳輸數據的數量。這裡改為10。集群大可以增大。

  mapreduce.tasktracker.http.threads

  默認值:40

  說明:map和reduce是通過http進行數據傳輸的,這個是設置傳輸的並行線程數。

  mapreduce.map.output.compress

  默認值:false

  說明: map輸出是否進行壓縮,如果壓縮就會多耗cpu,但是減少傳輸時間,如果不壓縮,就需要較多的傳輸帶寬。配合mapreduce.map.output.compress.codec使用,默認是org.apache.hadoop.io.compress.DefaultCodec,可以根據需要設定數據壓縮方式。

  mapreduce.reduce.shuffle.merge.percent

  默認值: 0.66

  說明:reduce歸並接收map的輸出數據可占用的內存配置百分比。類似mapreduce.reduce.shuffle.input.buffer.percen屬性。

  mapreduce.reduce.shuffle.memory.limit.percent

  默認值: 0.25

  說明:一個單一的shuffle的最大內存使用限制。

copyright © 萬盛學電腦網 all rights reserved