Hadoop源代码修改编译执行
2011-11-01 09:47
218 查看
针对的是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即可。
(之前必须安装有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即可。
相关文章推荐
- 关于调试----在单步执行某个程序的中间修改源代码,当修改代码之后移动到下一步时,调试器自动在执行下一语句之前重新编译
- Hadoop1.x 源码修改编译执行
- Hadoop源代码eclipse编译指南
- Hadoop MapReduce 任务执行流程源代码详细解析
- myeclipse,源代码更改后,重新编译,执行,仍然执行的是原来的代码。
- 编译hadoop2.6.0 --- 64位源代码(能力工场原创)
- Apache Hadoop 源代码编译环境搭建
- Codeblocks 等软件 修改源代码后 不能立即执行的解决办法||exe文件删除慢
- Java动态编译源代码并加载执行
- videolan x265 源代码下载、编译、测试【二】 【2015-8-11更新 修改Release版本】
- 浅析GrowingIO的“无需埋点”-- 编译时动态修改源代码
- 编译时出错发现可执行权限已被修改
- 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
- Hadoop MapReduce 任务执行流程源代码详细解析
- ecliplse 远程提交程序到虚拟机 hadoop集群 , 修改Hadoop的源代码---NativeIO问题解决!
- 编译hadoop2.6.0 --- 64位源代码(能力工场收集)
- Hadoop源代码eclipse编译指南
- C# 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
- 编译hadoop-0.20.2源码时执行ant eclipse-files出现.eclipse.templates does not exist问题解决方案
- windows下编译hadoop成功 执行异常org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z