java.lang.NoClassDefFoundError:org / apache / hadoop / hdfs / BenchmarkThroughput

时间:2014-06-10 11:58:22

标签: hadoop cloudera

我尝试在CDH4.4上运行TestDFSIO,我是通过命令行启动的(而不是Cloudera Manager)。 这是我运行的命令:

bin/hadoop jar hadoop-test-2.0.0-mr1-cdh4.4.0-SNAPSHOT.jar TestDFSIO -Ddfs.replication=1 -write -nrFiles 2 -fileSize 4000

这是我得到的错误:

java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/BenchmarkThroughput
        at org.apache.hadoop.test.AllTestDriver.main(AllTestDriver.java:74)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hdfs.BenchmarkThroughput
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 6 more

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

此类是HDFS测试代码的一部分,而不是主HDFS库。您将无法在群集中的类路径上自动找到它。

测试代码使用Hadoop作为编译工件发布,但只是不同的工件。 CDH也不例外。对于CDH 4.4,您可以在工件hadoop-hdfs-2.0.0-cdh4.4.0-tests.jar中找到HDFS测试类 例如,您可以在Maven构建中依赖它。

https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/hadoop/hadoop-hdfs/2.0.0-cdh4.4.0/