說明:這是hadoop2.x版本的參數。下面的value都是參數默認值。
常用配置:
♥♥♥ 1.mapreduce.job.hdfs-servers value:${fs.defaultFS} 說明:job客戶端參數。 2.mapreduce.task.io.sort.factor value:10 說明:在Reduce Task階段,排序文件時一次合並的流的數量。 這決定了打開文件句柄的數量。也即是一次合並的文件數據,每次合並的時候選擇最小的前10進行合並。 3.mapreduce.task.io.sort.mb value:100 說明:排序文件時使用的緩沖區內存總量,以兆字節為單位。 默認情況下,為每個合並流提供1MB,這應該最小化搜索。 4.mapreduce.map.sort.spill.percent value:0.8 說明:Map階段溢寫文件的閾值(排序緩沖區大小的百分比)。 5.mapreduce.jobtracker.address value:local 說明:MapReduce作業跟蹤器運行的主機和端口。 如果是“本地”,則作業將作為單個映射在進程中運行並減少任務。 6.mapreduce.job.maps value:2 說明:單個任務的map數量。 7.mapreduce.job.reduces value:1 說明:單個任務的reduce數量。 8.mapreduce.job.running.map.limit value:0 說明:單個任務並發的最大map數,0或負數沒有限制 9.mapreduce.job.running.reduce.limit value:0 單個任務並發的最大reduce數,0或負數沒有限制 10.mapreduce.job.max.map value:-1 說明:單個任務允許的最大map數,-1表示沒有限制。 11.mapreduce.job.max.split.locations value:10 說明:分片數量 12.mapreduce.job.split.metainfo.maxsize value:10000000 說明:split的元數據信息數量,如果value為-1,則沒有限制 13.mapreduce.map.maxattempts value:4 說明:每個 Map Task 最大重試次數,一旦重試參數超過該值,則認為 Map Task 運行失敗。 14.mapreduce.reduce.maxattempts value:4 說明:每個 reduce Task 最大重試次數,一旦重試參數超過該值,則認為 reduce Task 運行失敗。 15.mapreduce.reduce.shuffle.parallelcopies value:5 說明:Reduce Task啟動的並發拷貝數據的線程數目 16.mapreduce.task.timeout value:600000 說明:如果任務既不讀取輸入,也不寫入輸出,也不更新其狀態字符串,則任務終止之前的毫秒數。0表示禁用超時。 17.mapreduce.map.memory.mb value:1024 說明:每個Map Task需要的內存量 18.mapreduce.map.cpu.vcores value:1 說明:每個Map Task需要的虛擬CPU個數 19.mapreduce.reduce.memory.mb value:1024 說明:每個Reduce Task需要的內存量 20.mapreduce.reduce.cpu.vcores value:1 說明:每個Reduce Task需要的虛擬CPU個數 21.mapred.child.java.opts value:-Xmx200m 說明:jvm啟動的子線程可以使用的最大內存。建議值-XX:-UseGCOverheadLimit -Xms512m -Xmx2048m -verbose:gc -Xloggc:/tmp/@taskid@.gc 22.yarn.app.mapreduce.am.resource.mb value:1536 說明:MR ApplicationMaster占用的內存量。 23.yarn.app.mapreduce.am.resource.cpu-vcores value:1 說明:MR ApplicationMaster占用的虛擬CPU個數。 24.mapreduce.jobhistory.address value:0.0.0.0:10020 說明:指定歷史服務器的地址和端口 25.mapreduce.jobhistory.webapp.address value:0.0.0.0:19888 說明:歷史服務器的web地址 26.mapreduce.map.java.opts value:-Xmx1024m 說明:每個map任務的jvm需要的內存量,一般為map內存的0.8 27.mapreduce.reduce.java.opts value: 說明:每個reduce任務jvm需要的內存量。為reduce內存量的0.8 28.mapreduce.map.output.compress value:false 說明: map輸出是否進行壓縮,如果壓縮就會多耗cpu,但是減少傳輸時間,如果不壓縮,就需要較多的傳輸帶寬,默認是false。配合 mapreduce.map.output.compress.codec使用 29.mapreduce.map.output.compress.codec value:org.apache.hadoop.io.compress.DefaultCodec 不常用配置: 1.mapreduce.local.clientfactory.class.name value:org.apache.hadoop.mapred.LocalClientFactory 說明:這是負責創建本地作業運行客戶端的客戶端工廠。 2.mapreduce.jobtracker.system.dir value:${hadoop.tmp.dir}/mapred/system 說明:MapReduce存儲控制文件的目錄,可配置多塊硬盤,逗號分隔。 3.mapreduce.jobtracker.staging.root.dir value:${hadoop.tmp.dir}/mapred/staging 說明:用來存放與每個job相關的數據 4.mapreduce.cluster.temp.dir value:${hadoop.tmp.dir}/mapred/temp 說明:用來存放臨時文件共享的目錄。 5.mapreduce.job.reducer.preempt.delay.sec value:0 說明: 6.mapreduce.reduce.shuffle.fetch.retry.enabled value:${yarn.nodemanager.recovery.enabled} 說明:設置主機重新啟動期間啟用提取重試。 7.mapreduce.reduce.shuffle.fetch.retry.interval-ms value:1000 說明:提取器重試再次獲取的時間間隔。 8.mapreduce.reduce.shuffle.fetch.retry.timeout-ms value:30000 說明:取回超時時間 9.mapreduce.reduce.shuffle.retry-delay.max.ms value:60000 說明:在重試下載map數據之前,reducer將延遲的最大ms數。 10.mapreduce.reduce.shuffle.connect.timeout value:180000 說明:reduce task 連接map的超時時間,以毫秒為單位。 11.mapreduce.reduce.shuffle.read.timeout value:180000 說明:map 輸出數據,reduce連接以后可用於讀取的最長時間,以毫秒為單位。 12.mapreduce.shuffle.listen.queue.size value:128 說明:shuffle偵聽隊列的長度 13.mapreduce.shuffle.connection-keep-alive.enable value:false 說明:是否保持活躍連接,默認為false。 14.mapreduce.shuffle.connection-keep-alive.timeout value:5 說明:保持活躍連接的秒數。 15.yarn.app.mapreduce.am.log.level value:info 說明:MR ApplicationMaster的日志記錄級別。 允許的級別為:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果設置了“mapreduce.job.log4j-properties-file”,則可以覆蓋此處的設置。 16.mapreduce.map.log.level value:info 說明:map任務的日志記錄級別。 允許的級別為:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果設置了“mapreduce.job.log4j-properties-file”,則可以覆蓋此處的設置。 17.mapreduce.reduce.log.level value:info 說明:reduce任務的日志記錄級別。 允許的級別為:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果設置了“mapreduce.job.log4j-properties-file”,則可以覆蓋此處的設置。 18.mapreduce.reduce.merge.inmem.threshold value:1000 說明:設置了Map任務在緩存溢出前能夠保留在內存中的輸出個數的閾值(默認1000),只要一個滿足,輸出數據都將會寫到磁盤。 19.mapreduce.reduce.shuffle.merge.percent value:0.66 說明:決定緩存溢出到磁盤的閾值(默認0.66),即占用分配給map輸出總內存的百分比。 20.mapreduce.reduce.shuffle.input.buffer.percent value:0.70 說明:Reduce任務對多個Map任務的輸出結果進行合並時,占用的緩存空間在堆棧空間中的占用比例(默認0.70)。 21.mapreduce.reduce.input.buffer.percent value:0 說明:reduce函數開始運行時,內存中的map輸出所占的堆內存比例不得高於這個值,默認情況內存都用於reduce函數,也就是map輸出都寫入到磁盤 22.mapreduce.reduce.shuffle.memory.limit.percent value:0.25 說明:一個單一的shuffle的最大內存使用限制 23.mapreduce.shuffle.ssl.enabled value:false 說明:是否將SSL用於Shuffle HTTP端點。 24.mapreduce.shuffle.ssl.file.buffer.size value:65536 說明:使用SSL時從文件讀取溢出的緩沖區大小。
配置文件常用配置:
<property> <name>mapreduce.map.memory.mb</name> <value>1024</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx819M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>2048</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx1638M</value> </property> <property> <name>mapreduce.task.io.sort.mb</name> <value>512</value> </property> <property> <name>mapreduce.task.io.sort.factor</name> <value>100</value> </property> <property> <name>mapreduce.tasktracker.http.threads</name> <value>100</value> </property> <property> <name>mapreduce.reduce.shuffle.parallelcopies</name> <value>100</value> </property> <property> <name>mapreduce.map.output.compress</name> <value>true</value> </property> <property> <name>mapreduce.map.output.compress.codec</name> <value>org.apache.hadoop.io.compress.DefaultCodec</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobtracker.address</name> <value>master:11211</value> </property>