2013-05-11 55 views
1

我已經安裝了Hadoop 1.1.2,並且我按照步驟構建了在http://surajit-paul.blogspot.com/p/eclipse-configuration-for-hadoop-112.html 中描述的eclipse插件但是當我想構建插件並運行ant命令時,我越來越長的錯誤列表[javac] 100 errorsHadoop Eclipse插件構建錯誤

ivy-retrieve-common: 
[ivy:retrieve] :: retrieving :: org.apache.hadoop#eclipse-plugin [sync] 
[ivy:retrieve] confs: [common] 
[ivy:retrieve] 0 artifacts copied, 2 already retrieved (0kB/5ms) 
[ivy:cachepath] DEPRECATED: 'ivy.conf.file' is deprecated, use 'ivy.settings.file' instead 
[ivy:cachepath] :: loading settings :: file = /Users/majid/Desktop/hadoop-1.1.2/ivy/ivysettings.xml 

compile: 
[echo] contrib: eclipse-plugin 
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/build.xml:61: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
[javac] Compiling 45 source files to /Users/majid/Desktop/hadoop-1.1.2/build/contrib/eclipse-plugin/classes 
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSFolder.java:28: package org.apache.hadoop.fs does not exist 
[javac] import org.apache.hadoop.fs.FileStatus; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSFolder.java:29: package org.apache.hadoop.fs does not exist 
[javac] import org.apache.hadoop.fs.Path; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSPath.java:25: package org.apache.hadoop.hdfs does not exist 
[javac] import org.apache.hadoop.hdfs.DistributedFileSystem; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSPath.java:29: package org.apache.hadoop.fs does not exist 
[javac] import org.apache.hadoop.fs.FileSystem; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/dfs/DFSPath.java:30: package org.apache.hadoop.fs does not exist 
[javac] import org.apache.hadoop.fs.Path; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopServer.java:36: package org.apache.hadoop.conf does not exist 
[javac] import org.apache.hadoop.conf.Configuration; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopServer.java:38: package org.apache.hadoop.fs does not exist 
[javac] import org.apache.hadoop.fs.FileSystem; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopServer.java:39: package org.apache.hadoop.io does not exist 
[javac] import org.apache.hadoop.io.IOUtils; 
[javac]       ^
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopServer.java:40: package org.apache.hadoop.mapred does not exist 
[javac] import org.apache.hadoop.mapred.JobClient; 
[javac]        ^
. 
. 
. 
. 
. 
[javac] /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/HadoopJob.java:302: package Counters does not exist 
[javac]  Counters.Group group = counters.getGroup(groupName); 
[javac]    ^
[javac] Note: /Users/majid/Desktop/hadoop-1.1.2/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/server/JarModule.java uses or overrides a deprecated API. 
[javac] Note: Recompile with -Xlint:deprecation for details. 
[javac] Note: Some input files use unchecked or unsafe operations. 
[javac] Note: Recompile with -Xlint:unchecked for details. 
[javac] 100 errors 

我已經在這裏和那裏尋找了很多,但什麼都沒有改變。 我是ant或其他這類東西的新手。 如果有人可以幫助我,我真的很感激,或者如果你已經擁有它,請直接上傳你的hadoop-eclipse-1.1.2.jar插件。

回答

2

您需要包含所有Hadoop依賴關係。當你編譯你的hadoop程序時,它使用hadoop類並確保編譯器能夠看到這些hadoop類,你需要告訴它所有Hadoop jars所在的位置。

以下是如何修改build.xml以使用ant設置類路徑的示例,但您必須添加完整列表。完整列表是您在eclipse中包含的所有jar,包括您添加的庫中找到的任何jar。

<property name="src" location="my/src/path" /> 
<property name="bin" location="my/bin/directory" /> 
<property name="lib" location="/path/to/hadoop/libs/" /> 
<target name="build" depends="init" description="compiling my hadoop program source"> 
    <javac srcdir="${src}" destdir="${bin}" debug="on" debuglevel="lines,vars,source" includeantruntime="false" encoding="Cp1252"> 
     <classpath> 
      <pathelement path="${lib}" /> 
      <pathelement location="${lib}/hadoop-mapreduce-client-core-*.jar" /> 
      <pathelement location="${lib}/hadoop-mapreduce-client-common-*.jar" /> 
      ... 
      <pathelement location="${lib}/some-other-jar.jar" /> 
     </classpath> 
    </javac> 
</target> 
+0

謝謝您的迴應!我應該在哪裏添加這些行? eclipse-plugin目錄下的build.xml文件? – Majid 2013-05-11 15:49:02

+0

是的,您應該將這些添加到您的build.xml – greedybuddha 2013-05-11 15:54:27

+0

我應該用一個真實的地址替換$ {src}和$ {bin}嗎?或者他們是預定義的變量? – Majid 2013-05-11 16:13:01