1. 相关的资源参数
mapreduce.map.memory.mb: 一个maptask可以使用的资源上限,默认是1G,如果超过设置的值,会被强制杀死
mapreduce.reduce.memory.mb:一个 Reduce Task 可使用的资源上限默认是1G,如果超过设置的值,会被强制杀死
mapreduce.map.cpu.vcores:每个maptask最多的CPU core 默认是1个
mapreduce.reduce.cpu.vcores:每个reducetask最多的CPU core 默认是1个
以下参数应该在 yarn 启动之前就配置在服务器的配置文件中才能生效
yarn.scheduler.minimum-allocation-mb=1024:给应用程序 container 分配的最小内存
yarn.scheduler.maximum-allocation-mb=8192:给应用程序 container 分配的大内存
yarn.scheduler.minimum-allocation-vcores=1:给应用程序 container 分配的最小CPU个数
yarn.scheduler.maximum-allocation-vcores=32:给应用程序 container 分配的大CPU个数
yarn.nodemanager.resource.memory-mb=8192:nodemanager启动任务的
mapreduce.task.io.sort.mb=100:shuffle阶段环形缓冲区的大小
mapreduce.map.sort.spill.percent=0.8:shuffle阶段环形缓冲区的阈值
2. 相关的容错参数
mapreduce.map.maxattempts=4:每个 Map Task 大重试次数,一旦重试参数超过该值,则认为 Map Task 运行失败
mapreduce.reduce.maxattempts=4: 每个 Reduce Task 大重试次数,一旦重试参数超过该值,则认为 Map Task 运行失败
mapreduce.map.failures.maxpercent=0: 当失败的 Map Task 失败比例超过该值为,整个作业则失败,失败的maptask比例不能比这个值大
mapreduce.reduce.failures.maxpercent=0:当失败的 Reduce Task 失败比例超过该值为,整个作业则失败
mapreduce.task.timeout:如果一个 task 在一定时间内没有任何进入,即不会读取新的数据,也没有输出数据,则认为该 task 处于 block 状态,可能是卡住了,也许永远会卡主,为了防止因为用户程序永远block 住不退出,则强制设置了一个该超时时间(单位毫秒),默认是 300000。
3. 本地运行 mapreduce 作业
mapreduce.framework.name=local
mapreduce.jobtracker.address=local
4. 效率和稳定性相关参数
mapreduce.map.speculative:是否为 Map Task 打开推测执行机制,默认为 false
mapreduce.reduce.speculative:是否为 Reduce Task 打开推测执行机制,默认为 false
mapreduce.input.fileinputformat.split.minsize: FileInputFormat 做切片时的最小切片大小
mapreduce.input.fileinputformat.split.maxsize:FileInputFormat 做切片时的大切片大小(切片的默认大小就等于 blocksize,即 134217728)
注意:所有的参数调试都跟根据自己的实际的业务逻辑进行调试调试的!!!!!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:MapReduce调优-创新互联
本文来源:http://scyingshan.cn/article/dhesci.html