2015-06-21 59 views
0

这看起来像一个愚蠢的问题,但我是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文件?此外,任何指向上述异常的指针将非常感谢。

回答

1

要包括所有必要的JAR文件,使用下面的命令编译代码:

# javac -cp `$HADOOP_HOME\bin\hadoop classpath` YourClassFile.java 

请如果您使用的是Eclipse注意引号

+0

谢谢。如果我使用eclipse,那么我只需在$ classpath中包含$ HADOOP_HOME? – Ayon

+1

在Eclipse中转到构建路径,然后将外部jar添加到项目中。 $ HADOOP_HOME/share/path包含几个文件夹(commons,hdfs,mapreduce)从这些文件夹中添加jar文件。 –

1

,请按照以下步骤JAR文件添加到您的项目

1.Right click on the project 
2.Go to Properties 
3.Click on "Java Build Path" 
4.Libraries Tab 
5.Add External JARs 
6.Select the path "/usr/local/hadoop" 
7.Select all "JAR files" & add all JARs 
8.Again "Add EXternal JARs" 
9.Go to path "/usr/local/hadoop/lib" 
10.ADD all JARs in there 
11.Click "Ok" 

您已设置。希望这有助于..再次取决于您使用的Eclipse版本。

+0

谢谢...它的工作原理 – Ayon