hadoop和spark相关参数的配置
背景
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
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相关参数的配置相关推荐
- Hadoop MapReduce Job 相关参数设置 概念介绍与理解
Hadoop MapReduce Job 相关参数设置 概念介绍与理解 InputFormat: 作用:将输入的文件分成 一个个split,并且将split 拆分成一个个<key,value& ...
- mac 下 hadoop、spark 的安装及配置
0. 注意安装包的版本及其兼容性 jdk:1.9 及以上尤其对于 scala,很难真正兼容 scala: hadoop: 2.8.0:https://www.cnblogs.com/bigdataZJ ...
- Yarn 内存分配管理机制及相关参数配置
理解Yarn的内存管理与分配机制,对于我们搭建.部署集群,开发维护应用都是尤为重要的,对于这方面我做了一些调研供大家参考. 一.相关配置情况 关于Yarn内存分配与管理,主要涉及到了ResourceM ...
- 大数据hadoop与spark研究——1 spark环境搭建
第一章 介绍 一. spark组件 Spark是一个用于集群计算的通用计算框架 Spark可将如何Hadoop分布式文件系统(HDFS)上的文件读取为分布式数据集(RDD) Spark是用Scala写 ...
- Hadoop与Spark常用配置参数总结
背景 MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序.本文梳理了最常用的一些MapReduce和Spark配置参数. MapReduce ...
- Spark性能相关参数配置详解
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...
- Spark 性能相关参数配置详解-任务调度篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...
- Spark 性能相关参数配置详解-压缩与序列化篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...
- Spark 性能相关参数配置详解-shuffle篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完善, ...
- Hadoop/Spark相关面试问题总结
Hadoop/Spark相关面试问题总结 面试回来之后把当中比較重要的问题记了下来写了个总结: (答案在后面) 1.简答说一下hadoop的map-reduce编程模型 2.hadoop的TextIn ...
最新文章
- HTC Element Behaviors in Internet Explorer.
- 安全 日志挖掘 分析系统数据源
- C#~异步编程续~.net4.5主推的awaitasync应用
- python selenium 判断元素是否可见
- java——springmvc——注册中央调度器
- 【Spring】Feign客户端发送HTTPS请求绕过认证
- C++数据结构03--静态链式线性表的实现
- 写给MongoDB开发者的50条建议Tip14
- 小白也能看得懂的服务端性能测试指标及问题排查
- PHP 运行 php-fpm 报错
- 【已经解决】TypeError: read_img() missing 1 required positional argument: ‘filename‘
- 洛谷 P1896 状压DP
- 比较一下几款常用的SSH工具
- 分析2022年新型传播的.360后缀勒索病毒与数据恢复案例
- python获取usb扫描枪数据_Python - Re: 如何用Python接收扫描枪传来的信息数据
- 《疯狂Java讲义》学习笔记 第六章 面向对象(下)
- 海思android随笔之工厂菜单PQ acm color调用流程
- 解决java虚拟机内存不足的错误 java.lang.OutOfMemoryError: PermGen space 没有文件TOMCAT_HOME/bin/catalina.sh
- 人——Web3的新平台
- Python编程简介