# 故障描述:

hive > select substring(request_body["uuid"], -, ) as uuid, count(distinct(request_body["uuid"])) as count
from log_bftv_api
where year= and month= and day= and request_body["method"] = "bv.lau.urecommend" and length(request_body["uuid"]) =
group by
order by uuid; # hive 执行该HQL语句时报错信息如下:( 数据量小的时候没有问题 )

# 报错信息:

MapReduce Total cumulative CPU time:  minutes  seconds  msec
Ended Job = job_1510050683827_0137 with errors
Error during job, obtaining debugging information...
Examining task ID: task_1510050683827_0137_m_000002 (and more) from job job_1510050683827_0137 Task with the most failures():
-----
Task ID:
task_1510050683827_0137_m_000000 URL:
http://namenode:8088/taskdetails.jsp?jobid=job_1510050683827_0137&tipid=task_1510050683827_0137_m_000000
-----
Diagnostic Messages for this Task:
Error: Java heap space FAILED: Execution Error, return code from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-: Map: Reduce: Cumulative CPU: 106.07 sec HDFS Read: HDFS Write: FAIL
Total MapReduce CPU Time Spent: minutes seconds msec

# 原因分析:

报错显示 Error: Java heap space、return code  from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

查资料说是因为内存的原因,由于HQL实际上是被转换成mapreduce的java任务,所以做了以下操作。

解决方法:

hadoop shell > vim etc/hadoop/hadoop-env.sh

# 默认
export HADOOP_HEAPSIZE= hadoop shell > vim etc/hadoop/yarn-env.sh # 默认
YARN_HEAPSIZE= # 跟据实际情况,按需调整! hadoop shell > vim etc/hadoop/mapred-site.xml <property>
<name>mapreduce.map.memory.mb</name>
<value></value>
</property> <property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property> <property>
<name>mapreduce.reduce.memory.mb</name>
<value></value>
</property> <property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property> <property>
<name>mapreduce.task.io.sort.mb</name>
<value></value>
</property> <property>
<name>mapreduce.task.io.sort.factor</name>
<value></value>
</property> <property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value></value>
</property> # 新增这些参数 ( 跟据机器实际情况,按需成倍调整 )
# 我的这个测试环境是4台8核8G的KVM虚拟机,一个NameNode,三个DataNode! # 经过这次参数调整,目前600G的数据集上没出过问题,HDFS 上还在不断的写入历史数据、新数据。

Apache Hive 执行HQL语句报错 ( 10G )的更多相关文章

  1. mysql5.7执行sql语句报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains nonagg

    mysql5.7执行sql语句报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains nonagg ...

  2. 【spring boot jpa】hql语句报错 :antlr.NoViableAltException: unexpected token: roleName

    使用场景:在spring data jpa下使用@Query("hql语句") 然后在项目启动的时候报错 hql语句报错:antlr.NoViableAltException: u ...

  3. 解决Mysql搭建成功后执行sql语句报错以及区分大小写问题

    刚搭建完mysql 8.0以后会: 一.表区分大小写, 二.执行正确的sql语句成功且会报:[Err] 1055 - Expression #1 of ORDER BY clause is not i ...

  4. PHP执行insert语句报错“Data too long for column”解决办法

    PHP执行mysql 插入语句, insert语句在Navicat for mysql(或任意的mysql管理工具) 中可以正确执行,但是用mysql_query()函数执行却报错. 错误 : “Da ...

  5. mysqlworkbench 执行update语句报错:You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

    You are using safe update mode and you tried to update a table without a WHERE that uses a KEY colum ...

  6. Hive 执行sql命令报错

    Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxExce ...

  7. sql无效字符 执行sql语句报错解决方案

    以为是sql中参数赋值有问题,但是将sql语句直接copy到PLSQL中执行,却没问题,纠结了好久,原来是 insert语句多了:唉,坑爹 http://www.jb51.net/article/32 ...

  8. SQL Server中事务transaction如果没写在try catch中,就算中间语句报错还是会提交

    假如我们数据库中有两张表Person和Book Person表: CREATE TABLE [dbo].[Person]( ,) NOT NULL, ) NULL, ) NULL, [CreateTi ...

  9. shell脚本if判断语句报错[: too many arguments的两种原因

    shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...

随机推荐

  1. tomcat下安装jenkins

    参考网址:http://www.cnblogs.com/edward2013/p/5269465.html 5.安装Jenkins 方法1: jenkins.war下载地址:   http://mir ...

  2. POJ3585 Accumulation Degree(二次扫描与换根法)

    题目:http://poj.org/problem?id=3585 很容易想出暴力.那么就先扫一遍. 然后得到了指定一个根后每个点的子树值. 怎么转化利用一下呢?要是能找出当前点的父亲的 “ 不含当前 ...

  3. mySQL 教程 第4章 数据查询

    mySQL运算符 这些运算符在SQL查询中用得到. 算数运算符 + 加 - 减 * 乘 / DIV 除 % MOD 取余数 比较运算符 = 等于 <> != 不等于 < <= ...

  4. 【转】ORACLE Dataguard安装

    ORACLE Dataguard安装 标签: oracledatabasearchivesql数据库list 2011-08-01 09:40 5548人阅读 评论(1) 收藏 举报  分类: ORA ...

  5. ng-model的用法

    参考: http://www.cnblogs.com/guanglin/p/5200097.html http://www.runoob.com/angularjs/ng-ng-cloak.html ...

  6. spring boot学习(2) SpringBoot 项目属性配置

    第一节:项目内置属性 application.properties配置整个项目的,相当于以前的web.xml: 注意到上一节的访问HelloWorld时,项目路径也没有加:直接是http://loca ...

  7. [UE4]添加射击的准心

    其实就是创建一个UI Widget,在UI Widget中添加一个准心图片(png)格式,准心图片设置为屏幕居中对齐,然后在自定义的GameMode中把这个UI Widget添加到视图中.

  8. Python单例模式的4种实现方法

    #-*- encoding=utf-8 -*- print '----------------------方法1--------------------------' #方法1,实现__new__方法 ...

  9. sencha touch在华为emotion ui 2.0自带浏览器中圆角溢出的bug

    在华为emotion ui 2.0自带的浏览器中,给部分组件设置了圆角后会发现背景仍然是方的,内部边框是圆的, 对于这种bug, 只需在对应的设置圆角的css样式中加入 background-clip ...

  10. MAN 手册各章节功能介绍及快捷键键位整理

    前言   Man 手册页(Manua pages ,缩写man page) 是在linux操作系统在线软件文档的一种普遍形式.内容包括计算机程序库和系统调用等命令的帮助手册. 手册页是用troff排版 ...