设为首页 收藏本站
查看: 963|回复: 0

[经验分享] Eclipse编译Hadoop 0.20.203源码

[复制链接]

尚未签到

发表于 2016-12-9 08:27:12 | 显示全部楼层 |阅读模式
  1、软件环境:
  Eclipse:Indigo Service Release 1
  Hadoop:Hadoop 0.20.203
  2、设置系统环境变量
  JAVA_HOME = C:\Program Files\Java\jdk1.6.0_25
  ANT_HOME = D:\apache-ant-1.8.2
  M2_HOME = D:\apache-maven-2.2.1
  Path = %M2_HOME%\bin;%ANT_HOME%\bin
  classpath = .;%JAVA_HOME%\lib\dt.jar
  3、新建Java Project,把hadoop-0.20.203.0\src下面的core、hdfs和mapred三个文件夹拷贝到Eclipse src目录
  4、在Eclipse下新建lib文件夹,并把hadoop-0.20.203.0\lib和hadoop-0.20.203.0\lib\jsp-2.1中的所有jar包拷贝到此目录,把ant jar包也拷贝到此目录
  
DSC0000.png
 
  5、新建conf目录,把自定义hadoop配置文件(core-site.xml/hdfs-site.xml/mapred-site.xml/hadoop-env.sh/masters/slaves)以及hadoop-0.20.203.0\webapps拷贝到此目录
  6、把hadoop-0.20.203.0\src\webapps拷贝到Eclipse JSP目录下
  7、编写build.xml
  <?xml version="1.0"?>
  <project name="hadoop-0.20.203" default="compile-all">
 <property name="basedir" value="." />
  <property name="lib.dir" location="${basedir}/lib" />
 <property name="build.classes" location="${basedir}/build" />
  <property name="javac.debug" value="on" />
 <property name="javac.optimize" value="on" />
 <property name="javac.deprecation" value="off" />
 <property name="javac.version" value="1.6" />
 <property name="javac.args" value="-Xlint:unchecked" />
 <property name="javac.encoding" value="UTF-8" />
  <property name="src" value="${basedir}/src" />
 <!--<property name="hdfs.src" value="${basedir}/hdfs" />-->
  <property name="release.dir" value="${basedir}/release" />
  <property name="config.dir" value="${basedir}/conf" />
 <!--<property name="cmd.dir" value="${basedir}/cmd" />
 <property name="jre.dir" value="${cmd.dir}/jre" />-->
  <property name="jsp.path" value="${basedir}/webapps" />
 <property name="webapps.path" value="${basedir}/conf/webapps" />
 <property name="servlet.path" location="${jsp.path}/src" />
 <!--<property name="jre.version" value="1.6.0_21" />-->
  <path id="classpath">
  <fileset dir="${lib.dir}" id="libdir">
   <include name="**/*.jar" />
   <include name="**/*.zip" />
   <exclude name="**/excluded/" />
  </fileset>
 </path>
  <target name="init">
  <mkdir dir="${build.classes}" />
  <mkdir dir="${release.dir}" />
  <mkdir dir="${servlet.path}" />
 </target>
  
 <target name="clean_build_dir">
  <delete dir="${build.classes}" />
  <delete dir="${release.dir}" />
  <delete dir="${servlet.path}" />
 </target>
  
 <target name="clean-all-and-compile-all"
         depends="clean_build_dir,compile-all" />
  
 <!--///////////////////////Compile Area - Start ////////////////////////-->
 <target name="compile-all" depends="clean_build_dir,init,compile-jsp">
  <macro_javac srcdir="${src}" destdir="${build.classes}" />
  <macro_javac srcdir="${servlet.path}" destdir="${build.classes}" />
 </target>
  
 <!-- ====================================================== -->
 <!-- Generate Install Package                               -->
 <!-- ====================================================== -->
 <target name="tar-install-32" depends="jar-all">
  <macro_tar version="32" />
 </target>
  <target name="tar-install-64" depends="jar-all">
  <macro_tar version="64" />
 </target>
  <target name="tar-install" depends="tar-install-32,tar-install-64" />
  <!-- ====================================================== -->
 <!-- Macro definitions                                      -->
 <!-- ====================================================== -->
 <macrodef name="macro_tar" description="Worker Macro for tar">
  <attribute name="version" />
  <sequential>
   <tar compression="gzip"
        longfile="gnu"
        destfile="${release.dir}/${ant.project.name}-@{version}.tar.gz">
  <tarfileset dir="${release.dir}" mode="664" prefix="/${ant.project.name}/lib">
     <include name="*.jar" />
    </tarfileset>
  <tarfileset dir="${config.dir}" mode="755" prefix="/${ant.project.name}/conf">
     <include name="**/*" />
    </tarfileset>
  <tarfileset dir="${lib.dir}/" mode="755" prefix="/${ant.project.name}/lib">
     <include name="**/*" />
    </tarfileset>
  <!--<tarfileset dir="${cmd.dir}"
                prefix="/cfs/bin"
                mode="777"
                dirmode="777">
     <include name="*" />
     <exclude name="**/.svn" />
     <exclude name="**/py" />
    </tarfileset>
  <tarfileset dir="${jre.dir}/linux@{version}/${jre.version}"
                mode="777"
                dirmode="777"
                prefix="/cfs/jre">
     <include name="**/*" />
    </tarfileset>-->
  </tar>
  </sequential>
 </macrodef>
  <target name="compile-jsp">
  <taskdef classname="org.apache.jasper.JspC" name="jsp-compile">
   <classpath refid="classpath" />
  </taskdef>
  <jsp-compile uriroot="${jsp.path}/datanode"
               outputdir="${servlet.path}"
               package="org.apache.hadoop.hdfs.server.datanode"
               webxml="${webapps.path}/datanode/WEB-INF/web.xml">
  </jsp-compile>
  <jsp-compile uriroot="${jsp.path}/hdfs"
               outputdir="${servlet.path}"
               package="org.apache.hadoop.hdfs.server.namenode"
               webxml="${webapps.path}/hdfs/WEB-INF/web.xml">
  </jsp-compile>
  <jsp-compile uriroot="${jsp.path}/job"
               outputdir="${servlet.path}"
               package="org.apache.hadoop.mapred"
               webxml="${webapps.path}/job/WEB-INF/web.xml">
  </jsp-compile>
  
  <jsp-compile uriroot="${jsp.path}/task"
               outputdir="${servlet.path}"
               package="org.apache.hadoop.mapred"
               webxml="${webapps.path}/task/WEB-INF/web.xml">
  </jsp-compile>
 </target>
  <!-- ====================================================== -->
 <!-- Core jar                                               -->
 <!-- ====================================================== -->
 <target name="jar-all" depends="compile-all" description="Make jar of cfs">
  <jar jarfile="${release.dir}/${ant.project.name}.jar">
   <manifest>
    <section name="cn/com/cncloud">
     <attribute name="Implementation-Title" value="${ant.project.name}" />
     <attribute name="Implementation-Version" value="2" />
     <attribute name="Implementation-Vendor" value="cncloud.com.cn" />
    </section>
   </manifest>
   <fileset dir="${build.classes}">
    <exclude name="src/**" />
   </fileset>
  </jar>
 </target>
  
 <macrodef name="macro_javac" description="Worker Macro for compile">
  <attribute name="destdir" />
  <attribute name="srcdir" />
  <sequential>
   <javac encoding="${javac.encoding}"
          srcdir="@{srcdir}"
          destdir="@{destdir}"
          debug="${javac.debug}"
          optimize="${javac.optimize}"
          target="${javac.version}"
          source="${javac.version}"
          deprecation="${javac.deprecation}"
          includes="**/*">
  <compilerarg line="${javac.args}" />
  <classpath refid="classpath" />
   </javac>
  <copy todir="@{destdir}">
    <fileset dir="@{srcdir}">
     <exclude name="**/*.java" />
    </fileset>
   </copy>
  </sequential>
 </macrodef>
</project>
  8、首先ant下面的init,然后运行compile-jsp,接着把build目录下面的src目录设置成Use as a source folder,最后运行compile-all

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-311654-1-1.html 上篇帖子: Hadoop集群(第8期)_HDFS 下篇帖子: hadoop如何分发本地的jar文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表