博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eclipse下编译hadoop源代码(转)
阅读量:6322 次
发布时间:2019-06-22

本文共 1848 字,大约阅读时间需要 6 分钟。

hadoop是一个分布式存储和分布式计算的框架。在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译、打包。

下面将详细描述如何从svn上导入并对hadoop进行eclipse下编译。

因项目使用的hadoop版本是0.20.2,所以我们基于hadoop-0.20.2来进行二次开发。

(1)首先从svn上签出源代码,svn地址:

http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.2/

(2)在下载的过程中,准备开发和编译环境。windows下至少需要安装如下软件:

JDK 6--需要设置PATH环境变量  ant    --下载解压后,需要将ant的bin目录添加到PATH的环境变量上  cygwin     --安装cygwin参考http://ebiquity.umbc.edu/Tutorials/Hadoop/03%20-%20Prerequistes.html 进行安装和配置。在选择cygwin的安装包尽量多选,以方便日后的开发

(3)从svn签出后,使用命令行进入hadoop下载的HOME目录,执行命令:

$ ant

此时,ant开始下载依赖和编译文件。我在编译的时候编译错误。经查,是$hadoop_home/src/saveVersion.sh生成的package-info.java有问题,导致无法编译过去。将saveVersion.sh修改一下:

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

修改后,应该就可以编译通过了。

 

(4)  将eclipse-files copy到工程目录下

 

执行命令:

ant eclipse-files

就可以将eclipse-files copy到工程目录下。

(5)导入工程

    打开eclipse,在File中选择Import,然后选择General->Exsiting Projects into Workspace, 点击next,然后选择Hadoop源代码目录,此时就可以识别hadoop为eclipse工程了,点击Finish,稍过片刻,一个没有错误的eclipse 工程就OK了。

 

 (6)现在你就可以基于eclipse来进行修改hadoop源代码了。

 

转自 

转载于:https://www.cnblogs.com/ggjucheng/p/3352565.html

你可能感兴趣的文章
人工智能教程014:创建卷积神经网络进阶(5)
查看>>
oracle 分析函数
查看>>
微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索
查看>>
java socket POST (1)
查看>>
pickle,json序列化
查看>>
ansible-playbook之条件判断
查看>>
Java 可变参数
查看>>
localhost或127.0.0.1无法连接到mysql的解决方案
查看>>
Linux系统的运行级别
查看>>
EBS FNDLOAD用法
查看>>
我的友情链接
查看>>
MDT 2012 批量部署(二)——AD/DNS和DHCP准备
查看>>
通过复杂的代码形成业务数据并显示的思路 游标 存储过程
查看>>
安卓下最强的3款pdf阅读器测评
查看>>
Kubernetes部分Volume类型介绍及yaml示例
查看>>
MySQL5.5编译工具configure向cmake过渡指南
查看>>
day12:usermod及用户密码管理
查看>>
Mysql常用函数
查看>>
PHP工程师面临的成长瓶颈
查看>>
grub.conf详解
查看>>