Ubuntu 搭建Hadoop源码阅读环境

Ant安装:

下载ant:http://ant.apache.org/bindownload.cgi

解压Ant:

tar -xvzf apache-ant-1.9.2-bin.tar.gz

移动重命名:

  mv apache-ant-1.9.2/ ~/opt/
  mv apache-ant-1.9.2/ ant

配置环境变量,添加ANT_HOME,和$ANT_HOME/bin:

sudo vim /etc/profile

  .......................
  export ANT_HOME=/opt/ant
  export PATH=$PATH:$ANT_HOME/bin
 .......................

source /etc/profile

测试是否生效:

 ant -version
Apache Ant(TM) version 1.9.2 compiled on July 8 2013

Hadoop Eclipse 插件安装:

Hadoop的eclipse插件需要自行安装编译,也很简单,用ant进行编译打包

cd /opt/hadoop-1.2.1/src/contrib/eclipse-plugin

此处贴出build.xml全部和META-INFO改动的:

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. 
   --> 

   <!-- build.xml --> 
   <project default="jar" name="eclipse-plugin"> 

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


   <property name="eclipse.home" location="/opt/eclipse"/> 
   <property name="version" value="1.2.1"/> 

   <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"/> 
   <fileset dir="${hadoop.root}"> 
   <include name="**/*.jar" /> 
   </fileset> 
   <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> 

相关阅读

相关推荐