文档章节

编译Hadoop Eclipse插件

张超
 张超
发布于 2015/01/25 15:02
字数 709
阅读 135
收藏 5
环境:CentOS6.6  JDK1.7.0_72  Ant1.9.4  Hadoop1.2.1 源码   Eclipse4.4.1

1.进入HADOOP_SRC_HOME/src/contrib/eclipse-plugin下面,修改build.xml,加入以下内容:eclipse的根目录、hadoop的版本号、ivy版本号、hadoop的一些引用包、在javac里加入  includeantruntime="on"

2.进入HADOOP_SRC_HOME/src/contrib下面,修改build-contrib.xml,修改javac.deprecation的值为on

3.进入HADOOP_SRC_HOME/src/contrib/eclipse-plugin/META-INF下面,修改MANIFEST.MF文件,修改Bundle-ClassPath的值

4.使用shell命令进入HADOOP_SRC_HOME/src/contrib/eclipse-plugin下面,执行ant命令进行构建

修改后的 HADOOP_SRC_HOME/src/contrib/eclipse-plugin/build.xml 的完整内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<project default="jar" name="eclipse-plugin">

  <import file="../build-contrib.xml"/>

  <property name="eclipse.home" location="/home/grid/eclipse"/>
  <property name="version" value="1.2.1"/>
  <property name="ivy.version" value="2.1.0"/>

  <path id="eclipse-sdk-jars">
    <fileset dir="${eclipse.home}/plugins/">
      <include name="org.eclipse.ui*.jar"/>
      <include name="org.eclipse.jdt*.jar"/>
      <include name="org.eclipse.core*.jar"/>
      <include name="org.eclipse.equinox*.jar"/>
      <include name="org.eclipse.debug*.jar"/>
      <include name="org.eclipse.osgi*.jar"/>
      <include name="org.eclipse.swt*.jar"/>
      <include name="org.eclipse.jface*.jar"/>

      <include name="org.eclipse.team.cvs.ssh2*.jar"/>
      <include name="com.jcraft.jsch*.jar"/>
    </fileset> 
  </path>

  <!-- Override classpath to include Eclipse SDK jars -->
  <path id="classpath">
    <pathelement location="${build.classes}"/>
    <pathelement location="${hadoop.root}/build/classes"/>
    <path refid="eclipse-sdk-jars"/>
  </path>

  <!-- Skip building if eclipse.home is unset. -->
  <target name="check-contrib" unless="eclipse.home">
    <property name="skip.contrib" value="yes"/>
    <echo message="eclipse.home unset: skipping eclipse plugin"/>
  </target>

 <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
    <echo message="contrib: ${name}"/>
    <javac
     encoding="${build.encoding}"
     srcdir="${src.dir}"
     includes="**/*.java"
     destdir="${build.classes}"
     debug="${javac.debug}"
     deprecation="${javac.deprecation}"
     includeantruntime="on">
     <classpath refid="classpath"/>
    </javac>
  </target>

  <!-- Override jar target to specify manifest -->
  <target name="jar" depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/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"  tofile="${build.dir}/lib/commons-cli.jar" verbose="true"/>  
    <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  tofile="${build.dir}/lib/commons-configuration.jar" verbose="true"/>  
    <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  tofile="${build.dir}/lib/commons-httpclient.jar" verbose="true"/>  
    <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  tofile="${build.dir}/lib/commons-lang.jar" verbose="true"/>  
    <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  tofile="${build.dir}/lib/jackson-core-asl.jar" verbose="true"/>  
    <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  tofile="${build.dir}/lib/jackson-mapper-asl.jar" verbose="true"/>
    <jar
      jarfile="${build.dir}/hadoop-${name}-${version}.jar"
      manifest="${root}/META-INF/MANIFEST.MF">
      <fileset dir="${build.dir}" includes="classes/ lib/"/>
      <fileset dir="${root}" includes="resources/ plugin.xml"/>
    </jar>
  </target>

</project>

HADOOP_SRC_HOME/src/contrib/build-contrib.xml 只需要修改 javac.deprecation 的值为 on ,默认的是 off



HADOOP_SRC_HOME/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF 只需要修改 Bundle-ClassPath 的值为 Bundle-ClassPath: classes/,lib/commons-cli.jar,lib/commons-httpclient.jar,lib/hadoop-core.jar,lib/jackson-mapper-asl.jar,lib/commons-configuration.jar,lib/commons-lang.jar,lib/jackson-core-asl.jar

编译成功后可以 HADOOP_SRC_HOME/build/contrib/eclipse-plugin 路径找到插件



遇到的问题总结
ant打包时报错:
BUILD FAILED
hadoop-1.2.1/src/contrib/eclipse-plugin/build.xml:66: Compile failed; see the compiler error output for details.
解决方法:在 HADOOP_SRC_HOME 目录下运行 ant 命令编译,然后再到 HADOOP_SRC_HOME/src/contrib/eclipse-plugin 目录下运行 ant 命令编译

© 著作权归作者所有

张超
粉丝 43
博文 132
码字总数 100517
作品 0
广州
后端工程师
私信 提问
配置hadoop开发环境(eclipse,hadoop2.2.0)

通常我们可以用Eclipse作为Hadoop程序的开发平台。 1) 下载Eclipse 下载地址:http://www.eclipse.org/downloads/ 根据操作系统类型,选择合适的版本下载并安装。 2) 下载并编译Hadoop的E...

颜建海
2014/05/06
2.8K
0
Hadoop Eclipse 插件编译安装

最近开始学习Hadoop,hadoop 的新版本为了能和各个eclipse 的版本兼容,因此只提供了源代码,开发人员需要手动编译。 hadoop eclipse 插件的源代码位于$HADOOP_HOME/src/contrib/eclipse-pl...

chengxw
2013/05/18
996
0
编译hadoop2.x的hadoop-eclipse-plugin和配置

一、编译 1.安装jdk,并且配置好环境变量。 2.eclipse已经下载并且配置好了。 3.安装ant,并且配置好了环境变量。 4.hadoop包在windows本地已经有了,要和hadoop集群上的hadoop包一样,eclip...

cjun1990
2015/07/06
431
0
零基础学习hadoop到上手工作线路指导(编程篇)

问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如何编译hadoop源码? ...

一枚Sir
2014/08/07
892
0
Hadoop Eclipse 开发环境的构建

1.安装eclipse 下载的eclipse包直接解压即可。 2.hadoop-eclipse插件的配置 本文使用的Hadoop为1.2.1版本,网上很多教程说该插件在hadoop-1.2.1/contrib/目录下,但是我发现该目录下并没有该...

Coder哥
2015/03/16
109
0

没有更多内容

加载失败,请刷新页面

加载更多

用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
32分钟前
4
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
36分钟前
3
0
《Java实践指南》--读后

闲读《Java实践指南》... 1.lvy 某些项目中能够看到ivy.xml。早期使用ant的项目中,常常用ivy.xml来下载项目依赖。 2.ant 作为java程序员,应该都知道ant,虽然可能用过的人不多。为什么ant...

RippleChan
38分钟前
3
0
前端:固定表格(table)表头的实现方式

在写插件 bootstrap table 的时候,当数据过多的时候,需要对表格的 thead 进行固定,然后滚动表格的 tbody 。但是在实际的操作上,花了很多的时间在这个问题上,到现在也没有找到完美的解决...

前端老手
39分钟前
5
0
第五章 spring-connet之AnnotationConfigUtils

前言 AnnotatedBeanDefinitionReader是AnnctionConfig相关上下文与AnnotationConfigUtils的桥梁。还有一个作用是解析class成为BeanDefinitionHolder,注册到容器里面。AnnotationConfigUtils...

鸟菜啊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部