针对的是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有问题。更正内容为:
(在这里特别郑重感谢网上的兄弟们!这是从网上找到的)
unset LANG
unset LC_CTYPE
version=$1
user=`whoami` #此处修改成固定值,如jbm3072
date=`date`
if [ -d .git ]; then
revision=`git log -1 --pretty=format:"%H"`
hostname=`hostname`
branch=`git branch | sed -n -e 's/^* //p'`
url="git://$hostname/$cwd on branch $branch"
else
revision=`svn info | sed -n -e 's/Last Changed Rev: \(.*\)/\1/p'`
url=`svn info | sed -n -e 's/URL: \(.*\)/\1/p'`
fi
mkdir -p build/src/org/apache/hadoop
cat << EOF | \
sed -e "s/VERSION/$version/" -e "s/USER/$user/" -e "s/DATE/$date/" \
-e "s|URL|$url|" -e "s/REV/$revision/" \
> build/src/org/apache/hadoop/package-info.java
/*
* Generated by src/saveVersion.sh
*/
@HadoopVersionAnnotation(version="VERSION", revision="REV",
user="USER", date="DATE", url="URL")
package org.apache.hadoop;
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即可。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/psjgd.html