Java Hadoop:不受支持的主版本52.0
在你阅读我的问题之前,你应该知道这不是我已经读过的Stackoverflow上所有其他类似问题的重复 我已经使用Eclipse在Java Hadoop:不受支持的主版本52.0,java,hadoop,Java,Hadoop,在你阅读我的问题之前,你应该知道这不是我已经读过的Stackoverflow上所有其他类似问题的重复 我已经使用Eclipse在Windows10(开发机器)上开发(并构建和编译)了一个Hadoop程序。该程序读取WARC文件并以JSON格式重写它们。它使用: 我在我的项目中添加了hadoop-2.6.0jars文件。 这是开发机器的java版本: $java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (b
Windows10
(开发机器)上开发(并构建和编译)了一个Hadoop程序。该程序读取WARC文件并以JSON格式重写它们。它使用:
我在我的项目中添加了hadoop-2.6.0
jars文件。
这是开发机器的java版本:
$java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
我在ubuntu14
machine(测试机)上测试了我的代码,它工作得非常好。这台机器有hadoop-2.6.0:
Hadoop 2.6.0
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1
Compiled by jenkins on 2014-11-13T21:10Z
Compiled with protoc 2.5.0
From source with checksum 18e43357c8f927c0695f1e9522859d6a
This command was run using /home/username/hadoop-2.6.0/share/hadoop/common/hadoop-common-2.6.0.jar
这是测试机的java版本:
$java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
我转到CentOS oracle服务器并运行了我的程序。此服务器的java版本与我的开发机器的java版本相同:
$java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
它有一个Hadoop版本:
Hadoop 2.6.0-cdh5.13.1
Subversion http://github.com/cloudera/hadoop -r 0061e3eb8ab164e415630bca11d299a7c2ec74fd
Compiled by jenkins on 2017-11-09T16:37Z
Compiled with protoc 2.5.0
From source with checksum 16d5272b34af2d8a4b4b7ee8f7c4cbe
This command was run using /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/jars/hadoop-common-2.6.0-cdh5.13.1.jar
在此服务器上,每个作业都出现以下错误:
18/02/23 11:59:45 INFO mapreduce.Job: Task Id : attempt_1517308433710_0012_m_000003_0, Status : FAILED
Error: data/warc/WarcFileInputFormat : Unsupported major.minor version 52.0
以下是我尝试过但没有成功的方法:
$java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
Hadoop-2.6.0
更改为Hadoop-2.6.0-cdh5.13.1
mapred
而不是mapreduce
,因为读卡器类正在使用mapred
Ubuntu
机器上运行得非常好,但在与Windows
开发机器具有相同java版本的CentOS
服务器上却无法运行
有什么提示吗?问题是
Cloudera
使用了较低版本的JAVA:
/usr/java/jdk1.7.0_67-cloudera/bin/java
我收到了与您相同的错误消息,这是在我实现配置单元UDF时发生的 我看到了你的答案,我尝试用Java1.7而不是1.8来构建UDF的JAR文件,它成功了
我使用的是Cloudera Quickstart虚拟机,它将JAVA_HOME设置为JAVA 1.7这不是什么魔术,消息来自旧的JVM。尝试
sudo替代方法--显示java
或普通find
以搜索实际用于执行作业的java
。也许可以检查一下ps aux | grep java
是否包含指向java的意外路径。除了JAVA8$sudo备选方案之外,我没有其他版本的java—显示java
提供java—状态为手动。当前链接指向/opt/jdk1.8.0_151/bin/java/opt/jdk1.8.0_151/bin/java-优先级2当前最佳版本是/opt/jdk1.8.0_151/bin/java。
您是如何解决的?您是安装了java-7并删除了以前的版本,还是升级了Cloudera java版本?