Hive 报错
hadoop hive任务失败,原因是GC overhead limit exceeded (OOM)
GC Overhead Limit Exceeded error
是java.lang.OutOfMemoryError
家族的一员,表示JVM
内存被耗尽。
OutOfMemoryError
是java.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 报错的更多相关文章
- 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 ...
- Sqoop- sqoop将mysql数据表导入到hive报错
sqoop将mysql数据表导入到hive报错 [root@ip---- lib]# sqoop import --connect jdbc:mysql://54.223.175.12:3308/gx ...
- 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 ...
- hive报错( Non-Partition column appears in the partition specification)
在写及测的过程中发现的,有一些可能需要进一步验证.有时候hive报错位置不一定正确需要多确认 1 FAILED: NullPointerException null 不能用视图作为left outer ...
- Hive 报错 Failed to load class "org.slf4j.impl.StaticLoggerBinder".
打开hive报错 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaultin ...
- Hive 报错Class path contains multiple SLF4J bindings.
进入hive报错信息如下 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/ ...
- Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory
一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...
- hive报错 Another instance of Derby may have already booted the database
刚装好hive后,启动之后showtables;等正常,退出之后再进入,就发现会报错 Caused by: ERROR XSDB6: Another instance ofDerbymay have ...
- 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数据库中执行如 ...
- 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 ...
随机推荐
- leetcode网站中找到的关于trie树的JAVA版本介绍
class TrieNode { // R links to node children private TrieNode[] links; private final int R = 26; pri ...
- mysql远程访问被拒绝问题
远程连接MySql数据库时: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 远 ...
- Cocos Creator 新资源管理系统剖析
目录 1.资源与构建 1.1 creator资源文件基础 1.2 资源构建 1.2.1 图片.图集.自动图集 1.2.2 Prefab与场景 1.2.3 资源文件合并规则 2. 理解与使用 Asset ...
- 查找Command
Find [路径] [匹配表达式] -name filename : 查找指定名称的文件 -user username: 查找属于指定用户的文件 -group grpname: 查找属于指定组的文件 ...
- Spring的自动装配与依赖注入
Spring的自动装配与依赖注入 装配 = 创建Bean + 注入Bean 创建Bean 自动发现 显式注册Bean 注入Bean 基于配置的注入 自动注入 Spring的装配分为显式装配和隐式装配, ...
- 基于 MPI 的快速排序算法的实现
完整代码: #include <iostream> #include <cstdlib> #include <ctime> #include <algorit ...
- Docker Harbor 高可用 1.7.5版本(七)
环境说明: node1 10.10.5.135 仓库 1 node2 10.10.5.136 仓库 2 node3 10.10.5.137 客户端 实验内容: Harbor 可以在两台主机之间相互同步 ...
- 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 ...
- 【Oracle】查看oracle表空间大小及增加表空间的几种方法
在oracle中表空间是必不可少的.但是怎么查看表空间呢 简单的查看方式是: SQL> select tablespace_name from dba_tablespaces; 想要查看表空间对 ...
- C#+Layui开发后台管理系统
我是笑林新记,分享一下我一套C#开发的后台管理系统,希望对大家有帮助!欢迎关注微信公众号:笑林新记 后台开发语言:C# 前端框架:layui 前天用毛笔笔画制作了一个毛笔字效果的Logo,主 ...