hadoop hive任务失败,原因是GC overhead limit exceeded (OOM)

GC Overhead Limit Exceeded errorjava.lang.OutOfMemoryError家族的一员,表示JVM内存被耗尽。

OutOfMemoryErrorjava.lang.VirtualMachineError的子类,当JVM资源利用出现问题时抛出,更具体地说,这个错误是由于JVM花费太长时间执行GC且只能回收很少的堆内存时抛出的。

根据Oracle官方文档,默认情况下,如果Java进程花费98%以上的时间执行GC,并且每次只有不到2%的堆被恢复,则JVM抛出此错误。换句话说,这意味着我们的应用程序几乎耗尽了所有可用内存,垃圾收集器花了太长时间试图清理它,并多次失败。

原文链接:https://developer.aliyun.com/ask/59564?spm=a2c6h.13159736

Hadoop任务可能引起OOM错误的原因有很多。一般情况下,首先检查是否重设了hadoop参数:mapred.child.java.opts,一般设为-Xmx2000m,即使用2G的最大堆内存。
Hive中可能引起OOM的原因及相关的修复设定如下表所示:

原因:map aggregation
map aggregation使用哈希表存储group by/distinct key和他们的aggregation结果。
aggregate结果字段过多,或group by/distinct key的散度过大,可能导致内存占用过多。
修复:
减小hive.map.aggr.hash.percentmemory设定(默认为0.5,即使用50%的child堆内存)。

原因:join
join需要cache所有相同join key的非驱动表的记录
修复:
检查是否把大表设定为驱动表(大表写在join的最右边)。
如果已经设定正确的驱动表,减小hive.join.emit.interval设定(默认为1000,即每1000行的join结果集输出一次)。

原因:map join
map join需要cache全部小表的所有数据
修复:
检查小表是否足够小。如果小表超过1G,考虑不要使用map join。

--加了以下参数解决了问题

set mapreduce.map.java.opts=-Xmx3072m;
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=16;
set hive.exec.compress.output=true;
set hive.map.aggr.hash.percentmemory=0.3;
set hive.join.emit.interval=600;
set hive.auto.convert.join = false;

Hive Runtime Error while processing row at

--加以下参数
set hive.vectorized.execution.enabled=false;
set hive.vectorized.execution.reduce.enabled=false;

FAILED: Class com.shield.xlab.hive.sql.UDFsha not found

jar包名被写错,UDFSha

Hive 报错的更多相关文章

  1. hive报错:Caused by: ERROR XBM0H: Directory /var/lib/hive/metastore/metastore_db cannot be created.

    在cdh集群中,删除之前的hive服务,然后将hive添加到其他节点,然后再通过hive客户端连接hive报错: Caused by: ERROR XJ041: Failed to create da ...

  2. Sqoop- sqoop将mysql数据表导入到hive报错

    sqoop将mysql数据表导入到hive报错 [root@ip---- lib]# sqoop import --connect jdbc:mysql://54.223.175.12:3308/gx ...

  3. Hive 报错 Error while compiling statement: FAILED: ParseException line 1:0 character '' not supported here (state=42000,code=40000)

    Hive报错 Error while compiling statement: FAILED: ParseException line 1:0 character '' not supported h ...

  4. hive报错( Non-Partition column appears in the partition specification)

    在写及测的过程中发现的,有一些可能需要进一步验证.有时候hive报错位置不一定正确需要多确认 1 FAILED: NullPointerException null 不能用视图作为left outer ...

  5. Hive 报错 Failed to load class "org.slf4j.impl.StaticLoggerBinder".

    打开hive报错 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaultin ...

  6. Hive 报错Class path contains multiple SLF4J bindings.

    进入hive报错信息如下 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/ ...

  7. Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory

    一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...

  8. hive报错 Another instance of Derby may have already booted the database

    刚装好hive后,启动之后showtables;等正常,退出之后再进入,就发现会报错 Caused by: ERROR XSDB6: Another instance ofDerbymay have ...

  9. hive报错 Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections,

    学习hive 使用mysql作为元数据  hive创建数据库和切换数据库都是可以的 但是创建表就是出问题 百度之后发现 是编码问题 特别记录一下~~~ 1.报错前如图: 2.在mysql数据库中执行如 ...

  10. Hive 报错:java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

    在配置好hive后启动报错信息如下: [walloce@bigdata-study- hive--cdh5.3.6]$ bin/hive Logging initialized using confi ...

随机推荐

  1. leetcode网站中找到的关于trie树的JAVA版本介绍

    class TrieNode { // R links to node children private TrieNode[] links; private final int R = 26; pri ...

  2. mysql远程访问被拒绝问题

    远程连接MySql数据库时: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 远 ...

  3. Cocos Creator 新资源管理系统剖析

    目录 1.资源与构建 1.1 creator资源文件基础 1.2 资源构建 1.2.1 图片.图集.自动图集 1.2.2 Prefab与场景 1.2.3 资源文件合并规则 2. 理解与使用 Asset ...

  4. 查找Command

    Find [路径] [匹配表达式] -name filename : 查找指定名称的文件 -user username: 查找属于指定用户的文件 -group grpname: 查找属于指定组的文件 ...

  5. Spring的自动装配与依赖注入

    Spring的自动装配与依赖注入 装配 = 创建Bean + 注入Bean 创建Bean 自动发现 显式注册Bean 注入Bean 基于配置的注入 自动注入 Spring的装配分为显式装配和隐式装配, ...

  6. 基于 MPI 的快速排序算法的实现

    完整代码: #include <iostream> #include <cstdlib> #include <ctime> #include <algorit ...

  7. Docker Harbor 高可用 1.7.5版本(七)

    环境说明: node1 10.10.5.135 仓库 1 node2 10.10.5.136 仓库 2 node3 10.10.5.137 客户端 实验内容: Harbor 可以在两台主机之间相互同步 ...

  8. redis 5.0.5 安装

    redis 5.0.5 安装脚本: #!/bin/bash cd /data/src/ test -e tcl8.6.9-src.tar.gz || wget http://downloads.sou ...

  9. 【Oracle】查看oracle表空间大小及增加表空间的几种方法

    在oracle中表空间是必不可少的.但是怎么查看表空间呢 简单的查看方式是: SQL> select tablespace_name from dba_tablespaces; 想要查看表空间对 ...

  10. C#+Layui开发后台管理系统

    ​我是笑林新记,分享一下我一套C#开发的后台管理系统,希望对大家有帮助!欢迎关注微信公众号:笑林新记   后台开发语言:C# 前端框架:layui   前天用毛笔笔画制作了一个毛笔字效果的Logo,主 ...