Hadoop错误记录(一):MapReduce过程虚拟内存溢出

在运行Hadoop HA集群上的MapReduce程序时遇到虚拟内存溢出错误,由于Task的数据量超过默认Container内存限制。解决方案包括:1) 降低每个Task的数据量,可通过调整HDFS Block大小实现;2) 扩大Container的虚拟内存容量,通过配置yarn-site.xml和mapred-site.xml调整内存比例。注意调整可能导致其他错误,需谨慎操作。
摘要由CSDN通过智能技术生成

使用4台Linux虚拟机搭建Hadoop HA集群后运行自行编写的轨迹数据处理程序时出现以下错误(原始文件1.3GB),该程序在本机Java环境下可正常运行。控制台提示错误如下,显然每个Task需要使用的虚拟内存值超过了yarn默认Container的最大内存值,导致container被Kill,程序运行中断。

解决方案:

思路一:在Container容量不变的情况下,降低每个Task的数据量,使之不再溢出

Task的数据量必须大于HDFS中数据块的大小,Hadoop 3.x.x版本默认每个Block块的大小为128MB,若需要降低Block的大小,需在hdfs-site.xml配置文件中添加以下内容,其中xxx是每个块的字节数,例如128MB对应的数值为1024*1024*128=134217728,修改至合适的数值后重启HA集群。

<property>
  <name>dfs.blocksize</name>
  <value>xxx</value>
</property>

思路二:扩大Container虚拟内存的容量,使之不再溢出

具体设置原理可参阅https://blog.csdn.net/u010226454/article/details/80907088࿱

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值