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
以上,希望对大家找到解决问题的思路有所帮助,问题有时候会让我们崩溃和绝望。但总是有解决办法的,比如终极方法:重装系统
HIVE-执行distribute by时报错的解决过程---之如何分析hive执行的错误并解决的更多相关文章
- python3.x执行post请求时报错“POST data should be bytes or an iterable of bytes...”的解决方法
使用python3.5.1执行post请求时,一直报错"POST data should be bytes or an iterable of bytes. It cannot be of ...
- Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法
Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法 首先进入package.json文 ...
- 执行rpm -ivh 时报错:error rpmdb BDB0113 Threadprocess 11690140458095421504 failed
执行rpm -ivh 时报错:error rpmdb BDB0113 Threadprocess 11690140458095421504 failed 1.具体报错如下: [root@heyong ...
- (转)Linux安装SwfTools-0.9.2安装事,在执行make install时报错
系统:CentOS6.5 安装SwfTools-0.9.2的时候,在执行make install时报错, rm -f /usr/local/share/swftools/swfs/default_vi ...
- svn执行clean up 操作时报错 "Previous operation has not finished; run 'cleanup' if it was interrupted"解决如下!
今天在项目中更新的时候,突然间爆了一个svn的这个错误,当时提示我去clean up操作,结果我执行clean up操作时候,还是报错,后来坚持出来,是因为ios项目中的一个图标出了问题,使svn进入 ...
- hive 使用where条件报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode
hadoop 版本 2.6.0 hive版本 1.1.1 错误: java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalk ...
- 伪分布模式下执行wordcount实例时报错解决办法
问题1.不能分配内存,错误提示如下: FAILEDjava.lang.RuntimeException: Error while running command to get file permiss ...
- 安装redis 执行make命令时报错解决方法
一.未安装GCC 解决方法:执行yum install gcc-c++命令安装GCC,完成后再次执行make命令 yum install gcc-c++ Linux无法连接网络 http://www. ...
- RobotFramework+Appium 升级Appium v1.10.0后,执行click element时报错:InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for this session,解决办法
报错信息如下: debug] [35m[XCUITest][39m Connection to WDA timed out[debug] [35m[XCUITest][39m Connection t ...
随机推荐
- Linux Shell编程 循环语法
for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环.有时也把 for 循环称为计数循环.语法: for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,fo ...
- 【Topcoder】SRM157 DIV2总结
250分题:简单的二分,就是平常玩的猜数字游戏 代码:GitHub 500分题:给出一个员工一天的打卡时间段,要求求出员工这一天的工资.其中正常上班时间是6:00:00到18:00:00,薪水是wag ...
- Shell 语句
一 test 测试: 测试命令 test [ ] [[ ]] (( ))打开man test 逐一介绍每个参数 浮点计算:echo 'scale=2;1/3'|bc -l 测试操作命令执行后会返回到 ...
- java利用反射将pojo转为json对象
最近做以太坊钱包项目需要与前台进行json交互,写一个工具类,经普通javaBean转为json对象 package util; import java.lang.reflect.Field; imp ...
- classpath是什么
作用: 告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包(也就是.class文件) JDK 5.0默认就会到JDK的lib目录下寻找Java程序. 如何配置? 有许多 ...
- golang注册码
许可证服务认证 由于更新,最近注册码都不能用了,下面是能用的, http://idea.youbbs.org
- Python的format函数
Python的format函数 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下面的示例,基本上总 ...
- Android源码目录分析【转】
本文转载自:http://blog.csdn.net/backgarden_straw/article/details/8050783 在学习Android的过程中,学习写应用还好,一开始不用管太多代 ...
- pache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口
Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC ...
- string 类(二)
处理string对象中的字符: 在cctype头文件中定义了一组标准库函数来处理string对象中的字符,比如检查一个string对象是否包含空白,或者把string对象中的字母改成小写,再或者查看某 ...