这看起来像一个愚蠢的问题,但我是Hadoop的新手,并试图运行一个简单的示例。但是,我不断遇到JAR文件的问题,并且似乎没有正确的导入。我使用的是cloudera CDH 4,它有很多JAR文件可供选择,每个版本都有几个版本。由于我刚开始无法区分。目前我得到这个例外:启动时Hadoop项目需要哪些JAR?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:38)
at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:36)
at org.apache.hadoop.security.UserGroupInformation$UgiMetrics.create(UserGroupInformation.java:120)
at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:236)
at org.apache.hadoop.mapreduce.task.JobContextImpl.<init>(JobContextImpl.java:72)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:144)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:131)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:139)
at com.ayon.hadoop.firstimpl.Driver1.main(Driver1.java:23)Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
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:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 9 more
这可能是由于错误的JAR文件导入。所以我的问题是这样的:
任何人都可以告诉我什么是启动一个简单的Hadoop工作所需的基本JAR文件?此外,任何指向上述异常的指针将非常感谢。
谢谢。如果我使用eclipse,那么我只需在$ classpath中包含$ HADOOP_HOME? – Ayon
在Eclipse中转到构建路径,然后将外部jar添加到项目中。 $ HADOOP_HOME/share/path包含几个文件夹(commons,hdfs,mapreduce)从这些文件夹中添加jar文件。 –