在执行一条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执行的错误并解决的更多相关文章

  1. 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 ...

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

    Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法   首先进入package.json文 ...

  3. 执行rpm -ivh 时报错:error rpmdb BDB0113 Threadprocess 11690140458095421504 failed

    执行rpm -ivh 时报错:error rpmdb BDB0113 Threadprocess 11690140458095421504 failed 1.具体报错如下: [root@heyong ...

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

    系统:CentOS6.5 安装SwfTools-0.9.2的时候,在执行make install时报错, rm -f /usr/local/share/swftools/swfs/default_vi ...

  5. svn执行clean up 操作时报错 "Previous operation has not finished; run 'cleanup' if it was interrupted"解决如下!

    今天在项目中更新的时候,突然间爆了一个svn的这个错误,当时提示我去clean up操作,结果我执行clean up操作时候,还是报错,后来坚持出来,是因为ios项目中的一个图标出了问题,使svn进入 ...

  6. 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 ...

  7. 伪分布模式下执行wordcount实例时报错解决办法

    问题1.不能分配内存,错误提示如下: FAILEDjava.lang.RuntimeException: Error while running command to get file permiss ...

  8. 安装redis 执行make命令时报错解决方法

    一.未安装GCC 解决方法:执行yum install gcc-c++命令安装GCC,完成后再次执行make命令 yum install gcc-c++ Linux无法连接网络 http://www. ...

  9. 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 ...

随机推荐

  1. Linux文件系统管理 swap分区及作用

    概述 在安装系统的时候已经建立了 swap 分区.swap 分区是 Linux 系统的交换分区,当内存不够用的时候,我们使用 swap 分区存放内存中暂时不用的数据.也就是说,当内存不够用时,我们使用 ...

  2. 正则表达式 获取字符串内提取图片URL字符串

    #region 获取字符串内提取图片URL字符串 /// <summary> /// 获取字符串内提取图片URL字符串 /// </summary> /// <param ...

  3. Hadoop相关知识整理系列之一:HBase基本架构及原理

    1. HBase框架简单介绍 HBase是一个分布式的.面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式.HBas ...

  4. [RK3288][Android6.0] USB OTG模式及切换【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/78620960 Platform: RK3288 OS: Android 6.0 Kerne ...

  5. Kubernetes 命令补全

    yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl c ...

  6. python之命令行解析工具argparse

    以前写python的时候都会自己在文件开头写一个usgae函数,用来加上各种注释,给用这个脚本的人提供帮助文档. 今天才知道原来python已经有一个自带的命令行解析工具argparse,用了一下,效 ...

  7. 第一章 安装MongoDB

    需要下载 高效开源数据库(mongodb) V3.0.6 官方正式版 安装配置: MongoDB默认的数据目录为:C:\data\db.如果不用默认目录,则需要在在mongod.exe命令后加--db ...

  8. CCNA 课程 六

    路由协议概述: 通过一种路由协议学习到了多个去往同一目标网络的路由,metric小的放入路由表中.metric一样,同时放进路由表. 通过多种路由协议学习到了去往同一目标网络的路由,路由协议管理距离小 ...

  9. window.open、window.showModalDialog和window.showModelessDialog 的区别[转]

    一.前言 要打开一个可以载入页面的子窗口有三种方法,分别是window.open.window.showModalDialog和window.showModelessDialog. open方法就是打 ...

  10. 百度竞价推广URL通配符使用说明

    {keywordid} 被替换为触发该创意的关键词ID(全局唯一ID,不是字面ID),当没有对应的keywordid时,替换为0. {creative} 被替换为所点击的创意ID(全局唯一ID). 2 ...