yarn container内存调优——防止container被kill

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

今天散仙写了个MapReduce作业,目的是读数据库里面多个表的数据,然后在JAVA中根据具体的业务情况做过滤,并把符合数据的结果写入到HDFS上,在Eclipse里面提交作业进行调试的时候,发现在Reduce阶段,总是抛出Java heap space的异常,这异常明显,就是堆内存溢出造成的,然后散仙仔细看了下业务块的代码,在Reduce里读数据库的时候,有几个表的返回数据量比较大约有50万左右,因为具体的数量不会太大,所以没有采用分页来返回,读完后数据,采用Map集合封装,在业务处理的一段时间里,一直会停留在内存里,原来的mapred-site.xml里面的配置reduce内存比较小,只需调大此处内存即可。

<property>
  <name>mapreduce.map.memory.mb</name>
  <value>215</value>
</property>
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx215M</value>
</property>

<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>1024</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx1024M</value>
</property>

hadoop2.2内存控制的几个重要参数:

YARN
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.vmem-pmem-ratio
yarn.nodemanager.resource.memory.mb
Mapreuce
Map Memory
mapreduce.map.java.opts
mapreduce.map.memory.mb
Reduce Memory
mapreduce.reduce.java.opts
mapreduce.reduce.memory.mb

如果出现异常:

Container [pid=17645,containerID=container_1415210272486_0013_01_000004] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 1.6 GB of 2.1 GB virtual memory used. Killing container.
Dump of the process-tree for container_1415210272486_0013_01_000004 :

可以调整yarn.nodemanager.vmem-pmem-ratio 的比率,默认是2.1,或者加大程序reduce的运行个数进行尝试,这个比率的控制影响着虚拟内存的使用,当yarn计算出来的虚拟内存,比在mapred-site.xml里的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb的2.1倍还要多时,就会发生上面截图中的异常,而默认的mapreduce.map.memory.mb或

mapreduce.reduce.memory.mb得初始大小为1024M,然后根据异常中的yarn自身根据运行环境推算出来的虚拟内存来做比较,发现比1024*2.1还要大,所以就会由NodeManage守护进程kill掉AM容器,从而导致整个MR作业运行失败,现在我们只需要调大这个比率即可,避免发生这种异常。具体调大多小,可根据具体情况来设置。

pyspark报错寻找解决方案 pyspark玄学问题spark报错问题怎么找?spark报错问题原因怎么找?spark报错问题解决方案怎么找? 报错后就spark conf 的参数,感觉太玄学了 一般都吧问题原因归结到oom,解决就内存大partitions spark报错问题怎么找? 看 spark UI 提供的报错 log 日志 # type1 ExecutorLostFailure (executor 3 exited caused by one of the running tasks) Reason: Contain 阅读详情

相关推荐

YARN架构本质:资源抽象、度解耦与容器化治理

YARNHadoop生态的分布式资源治理核心,其本质并非传统意义的度器,而是通过资源抽象(Container)、关注点分离(RM/AM/NM)和细粒度隔离(cgroups/Kerberos)构建的类操作系统级基础设施。它将物理资源转化为可计量、可配额、可审计的逻辑单元,支撑Spark/Flink等多引擎混部;其度策略(如CapacityScheduler)实现租户级SLA保障与潮汐弹性,内存模型(heap + memoryOverhead + vmem-pmem-ratio)和CPU份额(vcores

weixin_30654583的博客 371

spark广播导致的问题

spark广播导致的问题

L13763338360的博客 2269

Amazon EMR实战指南:Spark云原生与成本治理

Apache Spark作为主流大数据计算引擎,其在云环境的稳定运行高度依赖底层资源度与存储协同。Amazon EMR并非简单托管Hadoop,而是深度集成S3数据湖、YARN资源管理与Spot实例弹性的云原生大数据操作系统。它通过预JVM参数、S3A提交协议、跨AZ容错及Instance Fleet智能编排,显著降低Spark on Cloud的运维复杂度。技术价值体现在分钟级弹性伸缩、断点续训高可用、细粒度权限管控与按秒计费成本化。典型应用于电商实时特征计算、金融风控ETL流水线及IoT时序数据

weixin_30256901的博客 335

spark报错集锦

1.spark报错信息: org.apache.spark.SparkException: Job aborted due to stage failure: Task 5 in stage 2.0 failed 4 times, most recent failure: Lost task 5.3 in stage 2.0 (TID 227, dhpnm236-192-064, executor 25): ExecutorLostFailure (executor 25 exited caused b

farbeyonds的博客 1970

dockers报错:Cannot connect to the Docker daemon

异常信息: 22/01/1413:58:44[Reporter]INFOYarnAllocator:Completedcontainercontainer_e118_5690061100801_24379300_01_000066onhost:BJLFRZ-Evil-153-70.hadoop.jd.local(state:COMPLETE,exitstatus:7) 22/01/1413:58:44[Reporter]WARNYarnAllocator:Cont...

hzp666的博客 1146

spark开发问题汇总

1 可能导致内存溢出的聚合函数 1 错误代码 Container exited with a non-zero exit code 134. Error file: prelaunch.err. Last 4096 bytes of prelaunch.err 2 函数 collect_set 、 collect_list 3 原因 某个key值(null, unknown, 空串)过多, 被聚合的value值过多, 导致范围(数组超范围)超限; 3 解决方法 1) 内存 2) .

盛源的博客 4837

Yarn-NodeManager堆内存不足导致Container被杀

一、问题再现 由于项目需要,采购电信天翼云,由于是新搭建的集群,在yarn上跑Spark任务时,每个几个小时或者半天出现节点丢失(Lost Nodes),访问http://cloudera01:8088,如下图,可以看到2个节点和集群失去了联系 二、问题排查 1、登录cm管理界面 首先登录cm管理界面,去查看yarn的运行状况,看到2个NodeManager运行不良,点击不良链接...

星空的风fly 1万+

如何在yarn上运行Hello World(二)

在之前的一篇文章我们介绍了如何编写在yarn集群提交运行应用的AM的yarnClient端,现在我们来继续介绍如何编写在yarn集群控制应用app运行的核心模块 ApplicationMaster. 首先,介绍下我们要在yarn集群上运行的应用程序 HelloWorld. 这个应用很简单,就是一个主函数,启动的时候打印一句话表明应用已经启动,结束的时候打...

aikyyu26486的博客 894

ERROR YarnClientSchedulerBackend:Yarn application has already ended! It might have been killed

文章目录1 错误重现2 原因3 解决方法 1 错误重现 在使用Hudi Admin CLI进行compaction的MOR数据集时,报错如下: ERROR YarnClientSchedulerBackend: YARN application has exited unexpectedly with state FAILED! Check the YARN application logs for more details. is running beyond virtual memory limits

韩江雪de 小屋 3323

PySpark读大型CSV文件的三层化实战:Schema、分区与内存

CSV文件作为最基础的数据交换格式,在大数据场景下面临解析慢、内存溢出、Shuffle膨胀等典型问题。其本质是文本流式解析与分布式执行引擎之间的适配挑战,涉及文件发现、分区切分和记录解析三个关键阶段。PySpark Read CSV的性能瓶颈往往不在API用本身,而在于Schema推断开销、S3/HDFS路径扫描效率以及JVM堆外内存配置失当。通过显式定义Schema实现列裁剪与类型安全,结合分区路径化(如date=YYYY-MM-DD/*)触发Fast Listing,并合理设置spark.memor

wangqiaowqo的专栏 339

YARN资源

资源度模型 (1)双层资源度模型 YARN采用双层资源度模型,第一层,RM中的资源度器将资源分配给各个AM,第二层,AM将资源分配给内部的任务。 YARN的资源分配是异步的,资源度器将资源分配给一个应用程序后,不会立刻push到AM,而是放到缓冲区里,等待AM通过周期性的心跳主动来取,即YARN采用了pull-based通信模型。 YARN资源分配过程: NM通过周期性心跳汇报节点信息 RM为NM返回一个心跳ack,包括需要释放的Container列表等信息。 RM收到NM的信息后,触发一个N

阿松的博客 2604

YARN资源管理

资源管理container容器配置详解 开题引文 yarnhadoop2.x引入的概念,hadoop1.x这个工作是MapReduce做的,在2.x引入了yarn,yarn是用来做资源管理和任务度,本文详细介绍了yarn在生产上如何资源管理,即yarncontainer容器. 相关介绍 内存:电脑cpu处理数据是不能直接从硬盘用的,就好像我们的大脑从神经元之中读取记忆要通过长长的神经,内存条就承接啦电脑cpu于硬盘之间的数据交换所以内存条的好坏也很大程度决定了电脑处理速度的快慢。 显卡:这个部件相信

Python ORM框架sqlalchemy入门教程 409

yarn概念

yarn 1、概念 yarn是一个资源度平台,负责为运算程序提供服务器计算资源,相当于一个分布式操作系统,MR就是运行在其上的 2、组件 1)RM 1>处理来自客户端的请求 2>监控NM 3>启动或监控AM 4>资源分配与度 2)NM 1>管理单节点上的资源 2>处理来自RM的命令 3>处理来自AM的启停命令 4>容器的生命周期管理 5>向RM汇报作业资源、每个容器的运行状态 3)AM 1>与RM协商获取资源 2>把资源再分配给具体任务

weixin_43697701的博客 1347

Hadoop生态全景解析:从HDFS/YARN到Spark/Flink的工程本质

分布式数据处理是现代大数据平台的核心能力,其底层依赖于可靠的分布式存储与智能资源度。HDFS通过多副本与心跳机制实现统计级高可用,YARN解耦计算与存储资源,为Spark、Flink等引擎提供统一度基础。MapReduce定义了‘移动计算而非数据’的范式,Spark以内存计算化迭代任务,Flink则通过事件时间与状态管理实现真正流批一体。HBase弥补HDFS随机读写短板,Kafka承担高吞吐数据管道角色,Hive作为SQL翻译层降低使用门槛。这些组件并非孤立工具,而是围绕数据生命周期协同演进的有机系

weixin_33912453的博客 382

PySpark集群实战避坑指南:从本地到YARN的环境适配与故障诊断

PySpark作为Python生态中主流的分布式计算框架,其核心价值不在于语法简洁,而在于真实生产环境中的稳定性与可观测性。理解Driver与Executor的隔离机制、掌握内存配置(如spark.executor.memory和spark.driver.memory)的物理意义、识别数据倾斜与依赖分发等关键原理,是保障任务在YARN或K8s集群上可靠运行的技术基础。这些能力直接支撑日志分析、用户行为统计、ETL加速等典型大数据应用场景。本文聚焦PySpark集群落地中最易被忽略的‘环境幻觉’问题,结合真实

dicui3114的博客 330

YARN架构本质:分布式操作系统内核深度解析

YARN并非传统意义的资源度器,而是面向大数据工作负载的分布式操作系统内核——它抽象并管控内存、CPU等底层资源,提供进程级隔离(Container)、用户态自治运行环境(ApplicationMaster)及跨节点状态协同机制。其核心原理源于操作系统内核设计思想,通过RM/NM/AM三体解耦实现资源管理与任务逻辑分离,技术价值在于支撑Spark/Flink/TensorFlow等多引擎共享同一资源池,并保障细粒度资源分配、数据本地性与强隔离性。典型应用场景涵盖金融批处理、实时风控与AI训练等PB级混合负

weixin_30654419的博客 382

YARN Capacity Scheduler:多租户Hadoop集群资源度实战指南

在大数据平台中,资源度是保障多任务稳定运行的核心技术。其核心原理是通过统一的资源管理器,对集群的计算资源(如CPU、内存)进行抽象和池化,实现资源的统一分配与隔离。这项技术的核心价值在于,它能够将物理资源与上层计算框架解耦,从而在复杂的多租户、多业务场景下,实现资源的公平共享与高效利用,确保关键业务的SLA。典型的应用场景包括企业级Hadoop/Spark集群,需要同时运行ETL批处理、实时计算和临时查询等多种负载。本文聚焦于生产环境中主流的YARN Capacity Scheduler,深入解析其通过层

weixin_34238633的博客 310

Hadoop的入门学习(理论知识)

Reduce则并行地对生成的中间结果中相同的Key的所有Value进行规约合并汇总处理后,输出新的Key-Value得到最终结果,这个处理相同Key的过程称为Reduce shuffle. 可以看出,在Map和Reduce中间,其实还有一个过程,就是对Map的输出进行整理并交给Reduce,这个过程就是shuffle. Map和Reduce操作需要我们自己定义相应的Map类和Reduce类,而shuffle则是系统自动帮我们实现的。NM是每个子节点上的资源和任务管理器,或者说是YARN的slave节点。

风雨无阻学习之路 3037

Hadoop生态底层逻辑:分布式存储与计算的工程权衡

分布式文件系统与大数据计算框架是应对单机存储和算力瓶颈的基础技术方案。其核心原理在于通过数据分片、副本冗余、任务度与容错机制,在廉价硬件上构建高可用、可扩展的数据处理基础设施。技术价值体现在吞吐化、故障自愈与多引擎协同,广泛应用于日志分析、用户行为建模、实时报表等典型场景。本文深入剖析HDFS副本策略、YARN两级度、Spark DAG执行等关键设计,揭示组件间‘契约式协作’的本质,帮助工程师跳出配置表象,理解大数据基建的真实约束与工程取舍。

weixin_34054931的博客 378
上一篇: linux shell 读文件按行处理
下一篇: MapReduce实现基本SQL操作的原理-join和group by,以及Dinstinct
a11123939
博客等级 码龄15年 9粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值