分享

给hadoop 打patch补丁范例

问题导读:
1.如何生成patch?
2.如何在hadoop根目录下载安装patch?
3.ant的作用是什么?
4.ant编译后会生成什么文件,该如何操作?






这是以hadoop 0.20.2为例



1. 生成hadoop patch
单文件:
diff -u from-file to-file
多文件:
diff -uNr from-dir to-dir > to-dir.patch

2. 在hadoop根目录下安装patch
patch -p0 < Hadoop-0.20.2-v1382.patch

3.如果需要回滚patch,恢复到以前的版本,可执行
patch -RE -p0 < Hadoop-0.20.2-v1382.patch

4.在hadoop根目录下执行ant开始编译:
ant
如果这一步编译出现下列错误提示信息:
  BUILD FAILED/home/hadoop/hadoop-0.20.2/build.xml:1624: Class org.apache.tools.ant.taskdefs.ConditionTask doesn't support the nested "typefound" element.
这是因为ant版本太低,我用系统自带的ant 1.6.5 编译就出错了。到apache网站上下载个ant 1.8.0就可以了。
ant的安装很简单,直接解压到 /home/hadoop/ant ,然后在~/.bashrc配置下路径就可以了:
  1. # .bashrc
  2. # Source global definitions
  3. if [ -f /etc/bashrc ]; then
  4.         . /etc/bashrc
  5. fi
  6. # User specific aliases and functions
  7. export ANT_HOME=/home/hadoop/ant
  8. PATH=$ANT_HOME/bin:$PATH:$HOME/bin:/home/hadoop/hadoop/bin
复制代码




  在ant编译成功后执行

  1. ant jar
复制代码




  会在build目录下生成一个hadoop-0.20.3-dev-core.jar文件,这个就是我们需要的了。
  用这个文件替换hadoop根目录下的hadoop-*-core.jar文件,然后分发到所有节点上。重启HDFS即可。




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条