hive job oom问题

错误信息例如以下:Container [pid=26845,containerID=container_1419056923480_0212_02_000001]
is running beyond virtual memory limits. Current usage: 262.8 MB of 2 GB physical memory used; 4.8 GB of 4.2 GB virtual memory used. Killing container.

分析:刚開始以为是内存不够,所以不断的调大虚拟内存,问题是攻克了。可是实际执行的时候还是会偶尔报这个错误。

问题的解决办法在于:

set yarn.nodemanager.resource.memory-mb=2048;

set yarn.app.mapreduce.am.command-opts=-Xmx2048m;

这两个參数配成了相等,而实际上第一个參数为节点能从yarn上获得的全部内存,第二个參数为其上执行的jvm内存。除了jvm之外还须要一些空间来让总体work起来。

当jvm占用内存太大的时候就有可能大于yarn.nodemanager.resource.memory-mb配置的临界点。被Container
kill掉。推荐的比例是jvm为实际内存的0.8

map和reduce的内存配置相同有这个问题。演示样例配置:

mapred-site.xml

set mapreduce.map.memory.mb=1024;

set mapreduce.map.java.opts=-Xmx819m;

set mapreduce.reduce.memory.mb=2048;

set mapreduce.reduce.java.opts=-Xmx1638m;

yarn-site.xml

set yarn.nodemanager.resource.memory-mb=2048;

set yarn.app.mapreduce.am.command-opts=-Xmx1638m;

这篇文章详细说明了问题的解决办法和推荐的配置

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.9.1/bk_installing_manually_book/content/rpm-chap1-11.html?

textToSearch=queue#

时间: 2024-12-29 01:50:01

hive job oom问题的相关文章

记一则罕见的hive字段值异常引起map阶段的OOM

前段时间遇到了一个很诡异的发生的Map阶段的OOM异常,花了些时间才找到原因,这个简要记录一下. 先看log. 节点一的TaskTracker的log: 节点二的TaskTracker的log: 节点三的TaskTracker的log: 其他节点的TaskTracker中的log都和slave4的一样的: 故障分析: OOM是一个比较常见的故障,其中发生在reduce阶段最为常见,最有可能是数据通过map函数后,shuffle到reduce端处理时由于分布问题导致某个分组的值太多出现OOM.另外

Hive中跑MapReduce Job出现OOM问题分析及解决

一.引子 今天在跑一段很复杂而且涉及数据量10多年的N个表join的长SQL时,发生了OOM的异常. 由于一个map通常配置只有64MB或者128MB,则在Map阶段出现OOM的情况很少见.所以一般发生在reduce阶段. 但是今天这个异常详细的看后,会发现既不是map阶段,也不是reduce阶段,发现不是执行过程,而是driver提交job阶段就OOM了.Hive中XMLEncoder序列化MapredWork引发OutOfMemoryError XMLEncoder导致java.lang.O

Hive Map 端OOM 异常

怪异现象:数据量不大,且不是Reduce端OOM,是Map端OOM Map Task运行的时候数据流中包含了非法字符例如:EOF.NOP等东西,导致BufferedReader读取和StreamDecoder解码出错, 进一步导致了OOM,需要剔除这些记录,可以通过length来限制. PS:当然,这只是Map 端OOM出现的其中一种原因,仅供参考.

Hive基本语法操练

建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (

hive里的优化和高级功能

在一些特定的业务场景下,使用hive默认的配置对数据进行分析,虽然默认的配置能够实现业务需求,但是分析效率可能会很低. Hive有针对性地对不同的查询进行了优化.在Hive里可以通过修改配置的方式进行优化. 以下,几种方式调优的属性. 1.列裁剪 在通过Hive读取数据的时候,并不是所有的需求都要获取表内的所有的数据.有些只需要读取所有列中的几列,而忽略其他列的的数据. 例如,表Table1包含5个列Column1.Column2.Column3.Column4.Column5.下面的语句只会在

hadoop、spark、hive、solr、es与YDB在车辆即席分析上的对比分析

自2012年以来,公安部交通管理局在全国范围内推广了机动车缉查布控系统(简称卡口系统),通过整合共享各地车辆智能监测记录等信息资源,建立了横向联网.纵向贯通的全国机动车缉查布控系统,实现了大范围车辆缉查布控和预警拦截.车辆轨迹.交通流量分析研判.重点车辆布控.交通违法行为甄别查处及侦破涉车案件等应用.在侦破肇事逃逸案件.查处涉车违法行为.治安防控以及反恐维稳等方面发挥着重要作用. 随着联网单位和接入卡口的不断增加,各省市区部署的机动车缉查布控系统积聚了海量的过车数据.截至目前,全国32个省(区.

Hive部署及优化配置

1.1安装 1.Hive依赖hadoop环境,所有在装之前要先安装hadoop,hive一般安装在hadoop的NameNode节点上面: 2.下载 Hive最新Release版(0.7.1 ) http://www.apache.org/dyn/closer.cgi/hive/ 3.将压缩安装包解压至一目录,如/home/hadoop/hive 4.配制metadata存放方式 默认metadatga是存放在derby里,这种方式不允许多个用户同时登陆hive shell,所有建议用mysql

Hive ERROR: Out of memory due to hash maps used in map-side aggregation

当hive在执行大数据量的统计查询语句时,经常会出现下面OOM错误,具体错误提示如下: Possible error: Out of memory due to hash maps used in map-side aggregation. Solution: Currently hive.map.aggr.hash.percentmemory is set to 0.5. Try setting it to a lower value. i.e 'set hive.map.aggr.hash.

hive组件和执行过程

转自http://blog.csdn.net/lifuxiangcaohui/article/details/40262021 对Hive的基本组成进行了总结: 1.组件: 元存储(Metastore )-存储“系统目录以及关于表.列.分区等的元数据”的组件.驱动(Driver )- 控制 HiveQL 生命周期的组件,当 HiveQL 查询穿过 Hive时.该驱动管理着会话句柄以及任何会话的统计.查询编译器(Query Compiler) - 是一个组件,将HiveQL编译成有向无环图(dir