NoClassDefFoundException while running TestDFSIO on Hadoop 3.1.4

Viewed 381

I am running a standard Hadoop IO test program called TestDFSIO using the following command:

sudo -u hdfs hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 1GB

It's expected to write 10 files 1 GB each on HDFS and report the performance.

Right after the test is run, I get the following error:

java.lang.NoClassDefFoundError: junit/framework/TestCase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.hadoop.test.MapredTestDriver.<init>(MapredTestDriver.java:109)
    at org.apache.hadoop.test.MapredTestDriver.<init>(MapredTestDriver.java:61)
    at org.apache.hadoop.test.MapredTestDriver.main(MapredTestDriver.java:147)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
Caused by: java.lang.ClassNotFoundException: junit.framework.TestCase
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more

The test actually proceeds after throwing the error and eventually shows some results, but I am not sure how reliable they are provided that the test apparently doesn't function the way it's supposed to.

I found this error to be reported on the Cloudera website, but no answer given. Will appreciate any ideas on why this error appears and how to get rid of it.

My system:

CentOS 7

openjdk version "1.8.0_252"

Hadoop 3.1.4 installed via Ambari 2.7.4 from Cloudera binaries

0 Answers
Related