MapReduce運行參數(shù)是用于配置和優(yōu)化MapReduce作業(yè)性能的關(guān)鍵設(shè)置。這些參數(shù)包括輸入輸出格式、資源分配、并行度設(shè)定等,正確配置可以顯著提高作業(yè)執(zhí)行效率和系統(tǒng)資源的利用率。



MapReduce 運行參數(shù)和配置參數(shù)主要包括以下幾類:


1、作業(yè)級別參數(shù)
2、任務(wù)級別參數(shù)
3、MapReduce 框架參數(shù)
4、Hadoop 通用參數(shù)
下面分別對這四類參數(shù)進行詳細解釋:
1. 作業(yè)級別參數(shù)
作業(yè)級別參數(shù)是在提交 MapReduce 作業(yè)時設(shè)置的,主要用于控制整個作業(yè)的運行,以下是一些常用的作業(yè)級別參數(shù):


參數(shù)名 | 描述 |
mapreduce.job.reduces |
設(shè)置作業(yè)中 reduce 任務(wù)的數(shù)量 |
mapreduce.job.reduce.slowstart.completed.maps |
設(shè)置 reduce 任務(wù)開始復(fù)制數(shù)據(jù)的 map 任務(wù)完成比例 |
mapreduce.job.reduce.slowstart.completed.maps |
設(shè)置 reduce 任務(wù)開始復(fù)制數(shù)據(jù)的 map 任務(wù)完成比例 |
mapreduce.input.fileinputformat.split.maxsize |
設(shè)置輸入分片的最大大小 |
mapreduce.input.fileinputformat.split.minsize |
設(shè)置輸入分片的最小大小 |
mapreduce.output.fileoutputformat.compress |
設(shè)置輸出文件是否壓縮 |
mapreduce.output.fileoutputformat.compress.codec |
設(shè)置輸出文件壓縮使用的編碼器 |
mapreduce.output.fileoutputformat.compress.type |
設(shè)置輸出文件壓縮類型(RECORD/BLOCK) |
mapreduce.output.fileoutputformat.sort.before.write |
設(shè)置在寫入輸出文件前是否進行排序 |
2. 任務(wù)級別參數(shù)
任務(wù)級別參數(shù)是在 MapReduce 任務(wù)運行時設(shè)置的,主要用于控制單個任務(wù)的運行,以下是一些常用的任務(wù)級別參數(shù):
參數(shù)名 | 描述 |
mapreduce.map.memory.mb |
設(shè)置每個 map 任務(wù)的內(nèi)存限制 |
mapreduce.reduce.memory.mb |
設(shè)置每個 reduce 任務(wù)的內(nèi)存限制 |
mapreduce.map.java.opts |
設(shè)置 map 任務(wù)的 Java 虛擬機參數(shù) |
mapreduce.reduce.java.opts |
設(shè)置 reduce 任務(wù)的 Java 虛擬機參數(shù) |
mapreduce.task.timeout |
設(shè)置任務(wù)超時時間 |
mapreduce.tasktracker.http.threads |
設(shè)置 TaskTracker 的 HTTP 線程數(shù) |
mapreduce.tasktracker.map.tasks.maximum |
設(shè)置 TaskTracker 上同時運行的 map 任務(wù)數(shù)上限 |
mapreduce.tasktracker.reduce.tasks.maximum |
設(shè)置 TaskTracker 上同時運行的 reduce 任務(wù)數(shù)上限 |
3. MapReduce 框架參數(shù)
MapReduce 框架參數(shù)主要用于控制 MapReduce 框架的運行,以下是一些常用的 MapReduce 框架參數(shù):
參數(shù)名 | 描述 |
yarn.nodemanager.auxservices |
設(shè)置 NodeManager 上的輔助服務(wù) |
yarn.nodemanager.pmemcheckenabled |
設(shè)置是否啟用物理內(nèi)存檢查 |
yarn.nodemanager.vmemcheckenabled |
設(shè)置是否啟用虛擬內(nèi)存檢查 |
yarn.nodemanager.resource.memorymb |
設(shè)置 NodeManager 可用內(nèi)存總量 |
yarn.nodemanager.resource.cpuvcores |
設(shè)置 NodeManager 可用 CPU 核心數(shù) |
yarn.nodemanager.localdirs |
設(shè)置 NodeManager 的數(shù)據(jù)存儲目錄 |
yarn.nodemanager.logdirs |
設(shè)置 NodeManager 的日志目錄 |
yarn.nodemanager.delete.debugdelaysec |
設(shè)置刪除調(diào)試文件的延遲時間 |
4. Hadoop 通用參數(shù)
Hadoop 通用參數(shù)適用于 Hadoop 集群的所有組件,以下是一些常用的 Hadoop 通用參數(shù):
參數(shù)名 | 描述 |
fs.defaultFS |
設(shè)置默認的文件系統(tǒng)URI |
io.file.buffer.size |
設(shè)置文件系統(tǒng) I/O 緩沖區(qū)大小 |
io.sort.factor |
設(shè)置外部排序的溢出文件數(shù)量 |
io.sort.record.percent |
設(shè)置外部排序過程中觸發(fā)合并的記錄百分比 |
io.sort.spill.percent |
設(shè)置外部排序過程中觸發(fā)寫磁盤的緩沖區(qū)百分比 |
io.sort.mb |
設(shè)置排序操作的內(nèi)存緩沖區(qū)大小 |
mapreduce.jobhistory.address |
設(shè)置 JobHistoryServer 的地址 |
mapreduce.jobhistory.webapp.address |
設(shè)置 JobHistory UI 的地址 |
mapreduce.jobhistory.intermediatedonedir |
設(shè)置 JobHistory 中間結(jié)果的存儲目錄 |
mapreduce.jobhistory.donedir |
設(shè)置 JobHistory 最終結(jié)果的存儲目錄 |
這些參數(shù)可以通過配置文件(如mapredsite.xml
、yarnsite.xml
、hadoopenv.sh
等)或在提交作業(yè)時通過命令行參數(shù)進行設(shè)置。


聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。