Reply
New Contributor
Posts: 4
Registered: ‎04-05-2017
Accepted Solution

Unsupported major.minor version 51.0 in CDH 5.10

Clean install of CDH 5.10 - Running any hadoop ** command returns the "Unsupported major.minor version 51.0" error message on any node in the cluster.  Found while working through Testing the Installation....

 

Occurs with or without the "Java Home Directory" setting override in Hosts Configuration in Cloudera Manager.

 

hdfs@hadoop1:/> hadoop fs
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/fs/FsShell : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.fs.FsShell.  Program will exit.

 

login as: root
Using keyboard-interactive authentication.
Password:
Last login: Fri Apr 14 12:31:18 2017 from 10.4.4.44
hadoop1:~ # sudo su hdfs
hdfs@hadoop1:/root> hadoop version
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/util/VersionInfo : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.util.VersionInfo.  Program will exit

 

There are two versions of Java in /usr/java

   jdk1.6.0_31

   jdk1.7.0_67-cloudera

 

$PATH = /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

New Contributor
Posts: 4
Registered: ‎04-05-2017

Re: Unsupported major.minor version 51.0 in CDH 5.10

Found my $JAVA_HOME returns

/usr/java/jdk1.6.0_31

 

Unsure how to change this for all users to
/usr/java/jdk1.7.0_67-cloudera

Posts: 37
Topics: 0
Kudos: 7
Solutions: 6
Registered: ‎01-05-2015

Re: Unsupported major.minor version 51.0 in CDH 5.10

[ Edited ]

Hello Brian,

 

CDH 5.10 does not support JDK release versions below 1.7.x. Your JAVA_HOME must not point to jdk1.6.0_31. As this JDK is not supported by the platform I would recommend that you remove this JDK from all host in your environment as an inital troubleshooting step. You can also set environment variables like the Java Home in your global profiles, agent defaults, etc. However I would recommend removing the old JDK first.

 

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_...

Customer Operations Engineer | Cloudera, Inc.
New Contributor
Posts: 4
Registered: ‎04-05-2017

Re: Unsupported major.minor version 51.0 in CDH 5.10

We uninstalled the earlier version of Java from all nodes, restarted all, and confirmed our $JAVA_HOME is now pointed to the correct version of Java. 

 

This corrected the issue and we were able to validate the environment.

New Contributor
Posts: 4
Registered: ‎04-07-2017

Re: Unsupported major.minor version 51.0 in CDH 5.10

[ Edited ]
@task
def install_jdk8_centos():
	sudo("yum install -y wget")
	sudo('cd /opt/ && tar xzf jdk-8u121-linux-x64.tar.gz && cd /opt/jdk1.8.0_121/')
	sudo("alternatives --install /usr/bin/java java /opt/jdk1.8.0_121/bin/java 2")
	sudo("alternatives --set java /opt/jdk1.8.0_121/bin/java")
	sudo("alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_121/bin/jar 2")
	sudo("alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_121/bin/javac 2")
	sudo("alternatives --set jar /opt/jdk1.8.0_121/bin/jar")
	sudo("alternatives --set javac /opt/jdk1.8.0_121/bin/javac")
	sudo("export JAVA_HOME=/opt/jdk1.8.0_121")
	sudo("export JRE_HOME=/opt/jdk1.8.0_121/jre")
	sudo("export PATH=$PATH:/opt/jdk1.8.0_121/bin:/opt/jdk1.8.0_121/jre/bin")
	sudo("echo JAVA_HOME=/opt/jdk1.8.0_121 | tee -a /etc/environment")
	sudo("echo JRE_HOME=/opt/jdk1.8.0_121/jre | tee -a /etc/environment")
	sudo("echo PATH=$PATH:/opt/jdk1.8.0_121/bin:/opt/jdk1.8.0_121/jre/bin | tee -a /etc/environment")

With that style of fabfile fabric script and setting the java home directory in CM, the infamous unsupported major.minor problem was vanquished for me.

 

Source of exquisite instructions: https://tecadmin.net/install-java-8-on-centos-rhel-and-fedora/

Announcements