安装hadoop的eclipse插件

wi3ka0sx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(431)

我对hadoop的eclipse插件做了一个噩梦。首先,最新的hadoop版本(1.1.1)甚至没有包含eclipse插件jar文件。版本1.0.4有这个插件,但是不起作用。早期版本的hadoop,比如0.22.0,有这个插件,它可以工作,但是现在这些版本的hadoop已经很旧了,我想使用最新版本。那么,针对hadoop的eclipse插件有什么用呢?为什么最新版本要么没有插件,要么如果有,那么插件就不工作了?每个人都对这个插件有这么多问题吗?我应该放弃这个插件吗?
谢谢,香农

t9eec4r0

t9eec4r01#

我昨天好不容易才为hadoop-1.0.4安装了eclipse插件,并成功地进行了测试。
插件不工作的原因是jar包丢失了一些lib:
commons-cli-1.2.jar
commons-configuration-1.6.jar
jackson-core-asl-1.8.8.jar文件
jackson-mapper-asl-1.8.8.jar
commons-httpclient-3.0.1.jar
commons-lang-2.4.jar
您可以将这个jar从${hadoop}/lib复制到${jar}/lib,并且不要忘记修改清单。
为了方便起见,我向${eclipse plugin src}/build.xml目标jar添加了一些代码

<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

以及${eclipse plugin src}/meta-inf中修改的manifest.mf

undle-ClassPath: classes/,
 lib/hadoop-core.jar,
 lib/commons-cli-1.2.jar,
 lib/commons-configuration-1.6.jar,
 lib/jackson-core-asl-1.8.8.jar,
 lib/commons-httpclient-3.0.1.jar,
 lib/jackson-mapper-asl-1.8.8.jar,
 lib/commons-lang-2.4.jar

重建eclipse插件,玩得开心!

4dbbbstv

4dbbbstv2#

好吧,结合hs3180的答案,这里是我在配置编译时实际做的。
在${eclipse plugin src}/build.xml中,使用以下指令包含eclipse插件所需的jar。注意这里,而不是从 ${hadoop.root}/build ,复制 hadoop-core-${version}.jar 现在来自 ${hadoop.root} 因为如果您使用的是hadoop的编译版本 ${hadoop.root}/build 文件夹实际上是空的。复制 commons-cli-${commons-cli.version}.jar 现在来自 ${hadoop.root}/lib 出于同样的原因。

<!-- <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> -->
<!-- <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/> -->
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

修改${eclipse plugin src}/meta-inf/manifest.mf文件以适应对${eclipse plugin src}/build.xml所做的更改。

Bundle-ClassPath: classes/,
 lib/hadoop-core.jar,
 lib/commons-cli-1.2.jar,
 lib/commons-configuration-1.6.jar,
 lib/jackson-core-asl-1.8.8.jar,
 lib/commons-httpclient-3.0.1.jar,
 lib/jackson-mapper-asl-1.8.8.jar,
 lib/commons-lang-2.4.jar

在两个位置修改${hadoop.root}/src/contrib/build-contrib.xml文件。首先是设置插件编译所需的属性。第二是确保jar hadoop-core-1.0.4.jar ,在 ${hadoop.root} 文件夹对javac是可见的,因为eclipse插件引用了hadoop类。这种设置与前两种不同,因此不是可有可无的。

<!-- Properties added for compiling eclipse-plugin -->
<!-- http://yiyujia.blogspot.com/2012/11/build-hadoop-eclipse-plugin-from-source.html -->
<property name="eclipse.home" location="/Users/xuj/Downloads/eclipse/"/>
<property name="version" value="1.0.4"/>
<property name="commons-cli.version" value="1.2"/>

<!-- the normal classpath -->
<path id="contrib-classpath">
  <fileset dir="${hadoop.root}">
    <include name="*.jar" />
  </fileset>
  <!-- more path elements go here -->
</path>

正确配置所有文件后,从 ${eclipse-plugin-src}/ 在控制台中应足以容纳其余部分。

相关问题