背景

MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序。本文梳理了最常用的一些MapReduce和Spark配置参数。

MapReduce重要配置参数

1.  资源相关参数

(1) mapreduce.map.memory.mb: 一个Map Task可使用的资源上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。

(2) mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task实际使用的资源量超过该值,则会被强制杀死。

(3) mapreduce.map.java.opts: Map Task的JVM参数,你可以在此配置默认的java heap size等参数, e.g.

“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc” (@taskid@会被Hadoop框架自动换为相应的taskid), 默认值: “”

(4) mapreduce.reduce.java.opts: Reduce Task的JVM参数,你可以在此配置默认的java heap size等参数, e.g.

“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc”, 默认值: “”

(5) mapreduce.map.cpu.vcores: 每个Map task可使用的最多cpu core数目, 默认值: 1

(6) mapreduce.map.cpu.vcores: 每个Reduce task可使用的最多cpu core数目, 默认值: 1

2.  容错相关参数

(1) mapreduce.map.maxattempts: 每个Map Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4。

(2) mapreduce.reduce.maxattempts: 每个Reduce Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4。

(3) mapreduce.map.failures.maxpercent: 当失败的Map Task失败比例超过该值为,整个作业则失败,默认值为0. 如果你的应用程序允许丢弃部分输入数据,则该该值设为一个大于0的值,比如5,表示如果有低于5%的Map Task失败(如果一个Map Task重试次数超过mapreduce.map.maxattempts,则认为这个Map Task失败,其对应的输入数据将不会产生任何结果),整个作业扔认为成功。

(4) mapreduce.reduce.failures.maxpercent: 当失败的Reduce Task失败比例超过该值为,整个作业则失败,默认值为0.

(5) mapreduce.task.timeout: Task超时时间,经常需要设置的一个参数,该参数表达的意思为:如果一个task在一定时间内没有任何进入,即不会读取新的数据,也没有输出数据,则认为该task处于block状态,可能是卡住了,也许永远会卡主,为了防止因为用户程序永远block住不退出,则强制设置了一个该超时时间(单位毫秒),默认是300000。如果你的程序对每条输入数据的处理时间过长(比如会访问数据库,通过网络拉取数据等),建议将该参数调大,该参数过小常出现的错误提示是“AttemptID:attempt_14267829456721_123456_m_000224_0 Timed out after 300 secsContainer killed by the ApplicationMaster.”。

3.  本地运行mapreduce 作业

设置以下几个参数:

mapreduce.framework.name=local

mapreduce.jobtracker.address=local

fs.defaultFS=local

4.  效率和稳定性相关参数

(1) mapreduce.map.speculative: 是否为Map Task打开推测执行机制,默认为false

(2) mapreduce.reduce.speculative: 是否为Reduce Task打开推测执行机制,默认为false

(3) mapreduce.job.user.classpath.first & mapreduce.task.classpath.user.precedence:当同一个class同时出现在用户jar包和hadoop jar中时,优先使用哪个jar包中的class,默认为false,表示优先使用hadoop jar中的class。
(4) mapreduce.input.fileinputformat.split.minsize: 每个Map Task处理的数据量(仅针对基于文件的Inputformat有效,比如TextInputFormat,SequenceFileInputFormat),默认为一个block大小,即 134217728。

HBase 相关配置参数

(1) hbase.rpc.timeout:rpc的超时时间,默认60s,不建议修改,避免影响正常的业务,在线上环境刚开始配置的是3秒,运行半天后发现了大量的timeout error,原因是有一个region出现了如下问题阻塞了写操作:“Blocking updates … memstore size 434.3m is >= than blocking 256.0m size”可见不能太低。
(2) ipc.socket.timeout:socket建立链接的超时时间,应该小于或者等于rpc的超时时间,默认为20s
(3) hbase.client.retries.number:重试次数,默认为14,可配置为3
(4) hbase.client.pause:重试的休眠时间,默认为1s,可减少,比如100ms
(5) hbase.regionserver.lease.period:scan查询时每次与server交互的超时时间,默认为60s,可不调整。

Spark 相关配置参数

1.  效率及稳定性相关参数

建议打开map(注意,在spark引擎中,也只有map和reduce两种task,spark叫ShuffleMapTask和ResultTask)中间结果合并及推测执行功能:

spark.shuffle.consolidateFiles=true

spark.speculation=trure

2.  容错相关参数

建议将这些值调大,比如:

spark.task.maxFailures=8

spark.akka.timeout=300

spark.network.timeout=300

spark.yarn.max.executor.failures=100

转载于:https://www.cnblogs.com/zourui4271/p/10078606.html

hadoop和spark相关参数的配置相关推荐

  1. Hadoop MapReduce Job 相关参数设置 概念介绍与理解

    Hadoop MapReduce  Job 相关参数设置 概念介绍与理解 InputFormat: 作用:将输入的文件分成 一个个split,并且将split 拆分成一个个<key,value& ...

  2. mac 下 hadoop、spark 的安装及配置

    0. 注意安装包的版本及其兼容性 jdk:1.9 及以上尤其对于 scala,很难真正兼容 scala: hadoop: 2.8.0:https://www.cnblogs.com/bigdataZJ ...

  3. Yarn 内存分配管理机制及相关参数配置

    理解Yarn的内存管理与分配机制,对于我们搭建.部署集群,开发维护应用都是尤为重要的,对于这方面我做了一些调研供大家参考. 一.相关配置情况 关于Yarn内存分配与管理,主要涉及到了ResourceM ...

  4. 大数据hadoop与spark研究——1 spark环境搭建

    第一章 介绍 一. spark组件 Spark是一个用于集群计算的通用计算框架 Spark可将如何Hadoop分布式文件系统(HDFS)上的文件读取为分布式数据集(RDD) Spark是用Scala写 ...

  5. Hadoop与Spark常用配置参数总结

    背景 MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序.本文梳理了最常用的一些MapReduce和Spark配置参数. MapReduce ...

  6. Spark性能相关参数配置详解

    随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...

  7. Spark 性能相关参数配置详解-任务调度篇

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...

  8. Spark 性能相关参数配置详解-压缩与序列化篇

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...

  9. Spark 性能相关参数配置详解-shuffle篇

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...

  10. Hadoop/Spark相关面试问题总结

    Hadoop/Spark相关面试问题总结 面试回来之后把当中比較重要的问题记了下来写了个总结: (答案在后面) 1.简答说一下hadoop的map-reduce编程模型 2.hadoop的TextIn ...

最新文章

  1. HTC Element Behaviors in Internet Explorer.
  2. 安全 日志挖掘 分析系统数据源
  3. C#~异步编程续~.net4.5主推的awaitasync应用
  4. python selenium 判断元素是否可见
  5. java——springmvc——注册中央调度器
  6. 【Spring】Feign客户端发送HTTPS请求绕过认证
  7. C++数据结构03--静态链式线性表的实现
  8. 写给MongoDB开发者的50条建议Tip14
  9. 小白也能看得懂的服务端性能测试指标及问题排查
  10. PHP 运行 php-fpm 报错
  11. 【已经解决】TypeError: read_img() missing 1 required positional argument: ‘filename‘
  12. 洛谷 P1896 状压DP
  13. 比较一下几款常用的SSH工具
  14. 分析2022年新型传播的.360后缀勒索病毒与数据恢复案例
  15. python获取usb扫描枪数据_Python - Re: 如何用Python接收扫描枪传来的信息数据
  16. 《疯狂Java讲义》学习笔记 第六章 面向对象(下)
  17. 海思android随笔之工厂菜单PQ acm color调用流程
  18. 解决java虚拟机内存不足的错误 java.lang.OutOfMemoryError: PermGen space 没有文件TOMCAT_HOME/bin/catalina.sh
  19. 人——Web3的新平台
  20. Python编程简介

热门文章

  1. pyqt5 实现右键自定义_Python界面(GUI)编程PyQt5事件和信号
  2. HCIE Security 防火墙NAT技术 备考笔记(幕布)
  3. HTTP协议基本原理简介(三)
  4. Linux服务-rsync
  5. 基于WCF的通道网络传输数据压缩技术的应用研究
  6. Django 查询表的几种方式
  7. SAP恭贺德国国家足球队夺冠!
  8. mysql limit 用法-分页
  9. mac os nginx php mysql
  10. BZOJ 2186 SDOI2008 沙拉公主的困惑 数论