Hadoop源代码修改编译执行

来源:互联网 发布:网络营销策划论文 编辑:程序博客网 时间:2024/05/21 18:35
 针对的是hadoop 0.20.2版本,windows 平台。Linux可以参照着来弄

(之前必须安装有jdk,ant,cygwin,并且配置好环境变量,使得cmd命令行下可以执行相应的命令)

 

1.首先到官网上把该版本的tar包下载下来,并解压到$HADOOP_HOME目录下

2.进入到$HADOOP_HOME/src目录中,修改saveVersion.sh文件,因为原saveVersion.sh生成的package-info.java有问题。更正内容为:

在这里特别郑重感谢网上的兄弟们!这是从网上找到的

  1. unset LANG   
  2. unset LC_CTYPE   
  3. version=$1  
  4. user=`whoami` #此处修改成固定值,如jbm3072   
  5. date=`date`   
  6. if [ -d .git ]; then   
  7.   revision=`git log -1 --pretty=format:"%H"`   
  8.   hostname=`hostname`   
  9.   branch=`git branch | sed -n -e 's/^* //p'`   
  10.   url="git://$hostname/$cwd on branch $branch"  
  11. else  
  12.   revision=`svn info | sed -n -e 's/Last Changed Rev: \(.*\)/\1/p'`   
  13.   url=`svn info | sed -n -e 's/URL: \(.*\)/\1/p'`   
  14. fi   
  15. mkdir -p build/src/org/apache/hadoop   
  16. cat << EOF | \   
  17.   sed -e "s/VERSION/$version/" -e "s/USER/$user/" -e "s/DATE/$date/" \   
  18.       -e "s|URL|$url|" -e "s/REV/$revision/" \   
  19.       > build/src/org/apache/hadoop/package-info.java   
  20. /*  
  21.  * Generated by src/saveVersion.sh  
  22.  */  
  23. @HadoopVersionAnnotation(version="VERSION", revision="REV",    
  24.                          user="USER", date="DATE", url="URL")   
  25. package org.apache.hadoop;   
  26. EOF  

3.cmd进入到$HADOOP_HOME目录中运行ant命令,就可以编译成功了,他会在$HADOOP_HOME目录下生成一个build目录

4.cmd进入$HADOOP_HOME/build/class目录,输入命令

     jar cvf hadoop-0.20.2-core.jar *

  生成core的jar包

5.将该jar包覆盖掉所有节点上的$HADOOP_HOME/目录下的hadoop-0.20.2-core.jar,这里有一个过程特别注意,再做这一步的时候一定要把原开启的hadoop全部关掉(stop-all.sh),然后再做替换!替换后在重新开启(start-all.sh),更改conf中core-site.xml,hdfs-site.xml,mapred-site.xml最好也是先关掉,改了后再重启

 

6.如果代码需要更改的,就更该hadoop中的相应代码,然后重复步骤3-5即可。

原创粉丝点击