HIVE-执行distribute by时报错的解决过程---之如何分析hive执行的错误并解决

在执行一条HIVE语句的时候报了以下错误,重新检查了所有步骤,重启所有服务,发现没有问题。 但发现一个有趣的事情

1,select sno,sname,sex,sage,sdept from student可以正常执行

2,sno,sname,sex,sage,sdept from student distribute by(sname) 不可以执行报错

在/tmp/用户名下查看系统hive.log,发现信息并不多。网上有其他方法可以查看更多日志,但太麻烦,速度很慢所以就没尝试。

select sno,sname,sex,sage,sdept from student distribute by(sname)
    > ;
Query ID = root_20171108131253_43a3d026-0e04-44f2-8312-c92d1c0b6125
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Defaulting to jobconf value of: 2
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapreduce.job.reduces=<number>
Starting Job = job_1510116443491_0001, Tracking URL = http://server71:8088/proxy/application_1510116443491_0001/
Kill Command = /usr/local/hadoop/bin/hadoop job  -kill job_1510116443491_0001
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0
2017-11-08 13:13:34,560 Stage-1 map = 0%,  reduce = 0%
Ended Job = job_1510116443491_0001 with errors
Error during job, obtaining debugging information...
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 FAIL

原因分析

上面1,2的区别表明了一件事情,单纯的select语句是不通过mapreduce的,加上distribute by后调用了yarn程序。打开8088端口的yarn端口

可怕的是没有错误信息,非常高兴看到了下面错误,表明了两件事。

1,刚才的sql用到了yarn,2,在使用yarn的时候无法启动container报错。这里需要了解yarn的基本知识。

解决方法:百度后得知这个是因为namenode和datanode时间不一致导致。简单说就是几台虚拟机的时间不一致。

用date查看四台机器,果然不一致。可能是因为某台曾经还原过快照,所以时间不一致。

org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container.

解决过程

虽然知道了原因,但还不是很顺利,这也是很多人遇到的问题,我们的问题和其他人虽然是一个问题。但因为环境不同的原因,同样的方法并不好用。

首先,我尝试了ntpdate pool.ntp.org,但这个命令无效,报了name server问题,后来明白我电脑不联网,而刚才命令是同步网络时间的。所以我需要找到直接修改时间的方法

最后成功修改我的机器的时间的命令是下面的

date -s 15:55:33 (15点55分33秒) 时间可以自己修改

修改时间的其他方法,大家可以都尝试一下,问题关键在于修改了机器时间,把问题简化就是解决问题的基本步骤。

http://www.xitongzhijia.net/xtjc/20150219/38844.html

以上,希望对大家找到解决问题的思路有所帮助,问题有时候会让我们崩溃和绝望。但总是有解决办法的,比如终极方法:重装系统

时间: 2024-10-11 20:37:33

HIVE-执行distribute by时报错的解决过程---之如何分析hive执行的错误并解决的相关文章

Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法

Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法 首先进入package.json文件,将scripts下的所有cross-env删除掉,(devDependencies下的不能删除)处理结果代码如下: { "private": true, "scripts": { "dev": "npm run development&qu

(转)Linux安装SwfTools-0.9.2安装事,在执行make install时报错

系统:CentOS6.5 安装SwfTools-0.9.2的时候,在执行make install时报错, rm -f /usr/local/share/swftools/swfs/default_viewer.swf -o -L /usr/local/share/swftools/swfs/default_viewer.swfrm:无效选项 -- o请尝试执行"rm --help"来获取更多信息.make[1]: *** [install] 错误 1make[1]: Leaving d

MyEclipse for Spring启动时报错&quot;An internal error occurred during: &#39;Updating indexes&#39;.Java heap space&quot;的解决办法

问题 MyEclipse for Spring在启动时,报如下错误:An internal error occurred during: 'Updating indexes'.Java heap space 解决办法 对于这种问题,可以采用禁止MyEclipse的updating indexes的方法来解决. Window -> Preferences -> Myeclipse -> Maven4Myeclipse,禁用Download repository index updates

特殊符号存入mysql数据库时报错:Incorrect string value: &#39;\xF0\x9F\x98\x84\xF0\x9F的解决方法

问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varchar,字符编码utf-8.部分插入成功,部分插入失败,报错如标题. 在网上查询,有人说是编码问题,建议修改编码格式,比如改成gbk,UTF-8,blob等等,但是几乎没有人给出更详细的答案.在一个英文网站上,才发现真正错误的原因.链接1 链接2 错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为

mysql执行update语句时报错:Data truncation: Truncated incorrect DOUBLE value: &#39;null&#39;

出现这个问题的原因网上有说是update的参数连接符要用,而不是and,但是我遇到的不是这个. 我出现问题的原因是,在update语句的where中varchar类型的字段我直接用了数字类型 update address set province = '北京' where userId = 250; userId是varchar类型的,报错Data truncation: Truncated incorrect DOUBLE value: 'null' 改成这样就可以了 update addre

mysql执行SQL语句时报错:[Err] 3 - Error writing file &#39;/tmp/MYP0G1B8&#39; (Errcode: 28 - No space left on device)

问题描述: 今天一同事在mysql中执行SQL语句的时候,报了/tmp空间不足的问题,报错如下: [SQL] SELECT f.prov as 字段1, MAX( CASE f.flag_name WHEN '字段1' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '店员量' THEN f.num ELSE 0 END ) AS '字段1', MAX( CASE f.flag_name WHEN '字段1' THEN f

Apache HTTP Server 2.2.25执行Test Configuration时报错(Could not reliably determine the server&#39;s fully qualified domain name, using 192.168.0.103 for ServerName)

以httpd-2.2.25-win32-x86-openssl-0.9.8y.msi为例. Apache HTTP Server 2.2.25执行Test Configuration时,实际上是直接运行了httpd.exe C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin>httpd.exehttpd.exe: Could not reliably determine the server's fully qualif

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析 1)要关联的字段类型或长度不一致. 2)两个要关联的表编码不一样. 3)某个表已经有记录了. 4)将"删除时"和"更新时"都设置相同,如都设置成CASCADE. 原文地址:https://www.cnblogs.com/neymargoal/p/10072347.html

opensips执行opensipsdbctl create时报错

在执行opensipsdbctl create时报下列错误 [[email protected] opensips]# opensipsdbctl createMySQL password for root: INFO: test server charset/usr/lib64/opensips/opensipsctl/opensipsdbctl.mysql: line 105: mysql: command not found/usr/lib64/opensips/opensipsctl/o