启动时Hadoop项目需要哪些JAR?

时间:2015-06-21 13:09:45

标签: java hadoop jar mapreduce hadoop2

这看起来似乎是一个愚蠢的问题,但我是Hadoop的新手,并试图运行一个简单的例子。但是,我一直遇到JAR文件的问题,似乎没有正确的导入。我正在使用cloudera CDH 4,它有很多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文件是什么?此外,任何指向上述异常的指针都将非常感激。

2 个答案:

答案 0 :(得分:1)

要包含所有必需的jar文件,请使用以下命令编译代码:

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

请注意引号

答案 1 :(得分:1)

如果您正在使用Eclipse,请按照以下步骤将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版本。