sqoop从关系数据库抽数到hdfs报错:Unsupported major.minor version 52.0

  其他常见问题
内容纲要

概要描述


本文描述用sqoop从关系数据库抽数到hdfs时报错:Unsupported major.minor version 52.0的原因及解决方法。

详细说明


1、问题描述:

用sqoop从mssql抽数到hdfs,MAP100%之后REDUCE不执行,查看日志,报错:Error: QueryResult : Unsupported major.minor version 52.0

2020-01-02 16:13:13,535 INFO mapreduce.Job: Task Id : attempt_1574765143808_0013_m_000003_2, Status : FAILED
**Error: QueryResult : Unsupported major.minor version 52.0
**Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

2020-01-02 16:13:13,536 INFO mapreduce.Job: Task Id : attempt_1574765143808_0013_m_000000_2, Status : FAILED
Error: QueryResult : Unsupported major.minor version 52.0
2020-01-02 16:13:17,559 INFO mapreduce.Job:  map 100% reduce 0%
2020-01-02 16:13:18,571 INFO mapreduce.Job: Job job_1574765143808_0013 failed with state FAILED due to: Task failed task_1574765143808_0013_m_000001
Job failed as tasks failed. failedMaps:1 failedReduces:0

原因:
Unsupported major.minor version这种报错基本都是jdk版本不兼容的问题,低版本不能兼容高版本。
stanford parser和jdk版本对应关系:
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

java -version查看宿主机jdk版本:
file
sqoop需要在jdk1.7版本中运行,所以需要指定sqoop的运行环境为jdk1.7即可。

1、解决方案:

1、查看本地是否有jdk1.7,如果没有从官网下载一个,放到/usr/java目录下。假设我们下载了jdk1.7.0_71版本放到该目录下。
file

2、TDH-Client/sqoop/bin下,找到sqoop文件,并编辑,在最上面指定jdk1.7即可。
export JAVA_HOME=/usr/java/jdk1.7.0_71/

file

2、问题描述

sqoop报错:java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/security/token/AuthenticationTokenIdentifier : Unsupported major.minor version 52.0

2、解决方案

find TDH-Client/ -name "*.jar" | while read jarfile; do jar -tf $jarfile | grep "AuthenticationTokenIdentifier"; if [ $? -eq 0 ]; then echo "find class in jar : "$jarfile; fi; done 找到报错类所在的jar包然后移走

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。