hive报错一例

Posted by 道行尚浅 on August 20, 2020

问题简述

在hive中执行语句,产生如下报错


hive> select id,count(*) from dao_t1 group by id ;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = root_20200822010936_ce882ef7-11bd-4f86-b772-3fcfefa6734c
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
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_1598072739288_0001, Tracking URL = http://node2:8888/proxy/application_1598072739288_0001/
Kill Command = /hadoop/bin/hadoop job  -kill job_1598072739288_0001
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 1
2020-08-22 01:10:05,263 Stage-1 map = 0%,  reduce = 0%
2020-08-22 01:10:07,655 Stage-1 map = 0%,  reduce = 100%, Cumulative CPU 2.13 sec
2020-08-22 01:10:16,324 Stage-1 map = 0%,  reduce = 0%
MapReduce Total cumulative CPU time: 2 seconds 130 msec
Ended Job = job_1598072739288_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: Reduce: 1   Cumulative CPU: 2.13 sec   HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 2 seconds 130 msec

诊断

首先在hive中执行无需mapreduce的查询,可以成功执行,排除hive本身的问题

0: jdbc:hive2://localhost:10000/> select * from t1 ;dao_t1 ;
+------------+--------------+---------------+---------------+--+
| dao_t1.id  | dao_t1.name  | dao_t1.grade  | dao_t1.class  |
+------------+--------------+---------------+---------------+--+
| 1          | dao1         | 1             | 1             |
+------------+--------------+---------------+---------------+--+

ui界面日志如下


Jobs
Tools
Log Type: stderr

Log Upload Time: Sat Aug 22 00:05:43 -0400 2020

Log Length: 240

log4j:WARN No appenders could be found for logger (org.apache.hadoop.mapreduce.v2.app.MRAppMaster).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Log Type: stdout

Log Upload Time: Sat Aug 22 00:05:43 -0400 2020

Log Length: 0


Log Type: syslog

Log Upload Time: Sat Aug 22 00:05:43 -0400 2020

Log Length: 5508

Showing 4096 bytes of 5508 total. Click here for the full log.

mapreduce.jobhistory.JobHistoryEventHandler
2020-08-22 00:05:38,464 INFO [main] org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.mapreduce.v2.app.rm.ContainerAllocator$EventType for class org.apache.hadoop.mapreduce.v2.app.MRAppMaster$ContainerAllocatorRouter
2020-08-22 00:05:38,712 INFO [main] org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils: Default file system [hdfs://mycluster:8020]
2020-08-22 00:05:38,806 INFO [main] org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils: Default file system [hdfs://mycluster:8020]
2020-08-22 00:05:38,887 INFO [main] org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils: Default file system [hdfs://mycluster:8020]
2020-08-22 00:05:38,923 INFO [main] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Emitting job history data to the timeline server is not enabled
2020-08-22 00:05:38,941 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Will not try to recover. recoveryEnabled: true recoverySupportedByCommitter: false numReduceTasks: 1 shuffleKeyValidForRecovery: true ApplicationAttemptID: 2
2020-08-22 00:05:39,019 INFO [main] org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils: Default file system [hdfs://mycluster:8020]
2020-08-22 00:05:39,029 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Previous history file is at hdfs://mycluster:8020/tmp/hadoop-yarn/staging/root/.staging/job_1598066523510_0006/job_1598066523510_0006_1.jhist
2020-08-22 00:05:39,669 INFO [main] org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.mapreduce.v2.app.job.event.JobFinishEvent$Type for class org.apache.hadoop.mapreduce.v2.app.MRAppMaster$JobFinishEventHandler
2020-08-22 00:05:39,729 INFO [main] org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2020-08-22 00:05:39,861 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2020-08-22 00:05:39,861 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: MRAppMaster metrics system started
2020-08-22 00:05:39,923 INFO [main] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerRequestor: nodeBlacklistingEnabled:true
2020-08-22 00:05:39,924 INFO [main] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerRequestor: maxTaskFailuresPerNode is 3
2020-08-22 00:05:39,924 INFO [main] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerRequestor: blacklistDisablePercent is 33
2020-08-22 00:05:40,316 INFO [main] org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator: maxContainerCapability: <memory:8192, vCores:32>
2020-08-22 00:05:40,316 INFO [main] org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator: queue: default
2020-08-22 00:05:40,422 INFO [main] org.apache.hadoop.mapreduce.v2.jobhistory.JobHistoryUtils: Default file system [hdfs://mycluster:8020]
2020-08-22 00:05:40,437 INFO [main] org.apache.hadoop.mapreduce.jobhistory.JobHistoryCopyService: History file is at hdfs://mycluster:8020/tmp/hadoop-yarn/staging/root/.staging/job_1598066523510_0006/job_1598066523510_0006_1.jhist
2020-08-22 00:05:40,785 INFO [eventHandlingThread] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Event Writer setup for JobId: job_1598066523510_0006, File: hdfs://mycluster:8020/tmp/hadoop-yarn/staging/root/.staging/job_1598066523510_0006/job_1598066523510_0006_2.jhist
2020-08-22 00:05:40,999 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.io.IOException: Was asked to shut down.
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$5.run(MRAppMaster.java:1554)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1548)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1481)
2020-08-22 00:05:41,016 INFO [main] org.apache.hadoop.util.ExitUtil: Exiting with status 1

问题解决

执行hadoop classpath 命令

[root@node3 logs]# hadoop classpath
/hadoop/etc/hadoop:/hadoop/share/hadoop/common/lib/*:/hadoop/share/hadoop/common/*:/hadoop/share/hadoop/hdfs:/hadoop/share/hadoop/hdfs/lib/*:/hadoop/share/hadoop/hdfs/*:/hadoop/share/hadoop/yarn/lib/*:/hadoop/share/hadoop/yarn/*:/hadoop/share/hadoop/mapreduce/lib/*:/hadoop/share/hadoop/mapreduce/*:/hadoop/contrib/capacity-scheduler/*.jar

将结果复制,并配置到yarn-site.xml中

   <property>
      <name>yarn.application.classpath</name>
      <value>/hadoop/etc/hadoop:/hadoop/share/hadoop/common/lib/*:/hadoop/share/hadoop/common/*:/hadoop/share/hadoop/hdfs:/hadoop/share/hadoop/hdfs/lib/*:/hadoop/share/hadoop/hdfs/*:/hadoop/share/hadoop/yarn/lib/*:/hadoop/share/hadoop/yarn/*:/hadoop/share/hadoop/mapreduce/lib/*:/hadoop/share/hadoop/mapreduce/*:/hadoop/contrib/capacity-scheduler/*.jar
      </value>
    </property>