设为首页 收藏本站
查看: 1476|回复: 0

[经验分享] Hadoop学习笔记--3.Hadoop源代码eclipse编译教程

[复制链接]

尚未签到

发表于 2015-7-12 07:11:47 | 显示全部楼层 |阅读模式
  1. 下载Hadoop源代码
Hadoop 各成员源代码下载地址:http://svn.apache.org/repos/asf/hadoop,请使用SVN下载,在SVN浏览器中将trunk目录下的源代码check-out 出来即可。请注意只check-out出SVN 上的trunk 目录下的内容,如:
http://svn.apache.org/repos/asf/hadoop/common/trunk,
而不是http://svn.apache.org/repos/asf/hadoop/common,
原因是http://svn.apache.org/repos/asf/hadoop/common 目录下包括了很多非源代码文件,很庞大,导致需要很长的check-out 时间。
  
2. 准备编译环境
  
2.1. Hadoop代码版本
本教程所采用的Hadoop 是北京时间2009-8-26 日上午下载的源代码,和hadoop-0.19.x版本的差异可能较大。
2.2. 联网
编译Hadoop 会依赖很多第三方库,但编译工具Ant 会自动从网上下载缺少的库,所以必须保证机器能够访问Internet。
2.3. java
编译Hadoop 要用JDK1.6 以上,网址:http://java.sun.com/javase/downloads/index.jsp。
安装好之后,请设置好JAVA_HOME 环境变量。
2.4. Ant和Cygwin
需要使用Ant 工具来编译Hadoop,而Ant 需要使用到Cygwin 提供的一些工具,如sed等,可以从:http://ant.apache.org/ivy/download.cgi 下载Ant,从http://www.cygwin.cn/下载Cygwin(Cygwin 的安装,请参考《在Windows 上安装Hadoop 教程》一文)。安装好之后,需要将Ant 和Cygwin 的bin 目录加入到环境变量PATH 中,如下图所示:
DSC0000.jpg
  注意:在安装Cygwin 时,建议将SVN 安装上,因为在Ant 编译过程中会通过SVN 下载
些文件,但这个不是必须的,下载不成功时,并未见出错,编译仍然可以成功。
  2.5. Eclipse
  Eclipse 则可以从http://www.eclipse.org/downloads/上下载。
  
  3. 编译Hadoop
  在这里,我们以编译Hadoop 家庭成员common 为例,对Hadoop 其它成员的编译方法是类似的。
3.1. 编译common成员
步骤1) 在Elipse 的Package 视图中单击右键,选择New->Java Project,如下图所示:
DSC0001.jpg
  步骤2) 选择源代码目录,设置Project 名。
DSC0002.jpg
  在上图所示的对话框中,点击Browse 按钮,选择common 源代码目录,并设置Projectname 为common。工程导入完成后,进入Eclipse 主界面,可以看到common 已经导入进来,但可以看到common 上有红叉叉,是因为Elipse 默认使用了Java Builder,而不是Ant Builder,所以下一步就是设置使用Ant Builder。
步骤3) 设置Builder 为Ant:右键common->Properties->Builders:
DSC0003.jpg
  在上图所示的界面中,点击New 按钮,在弹出的对话框中选中Ant Builder,确定之后会弹出如下对话框:
DSC0004.jpg
  点击Browse File System 按钮,选择common 源代码目录下的build.xml 文件,并设置Name 为common_Builder(Name 可以改成其它的,但建议使用common_Builder,因为这样名副其实),操作结果如下图所示:
DSC0005.jpg
  除上图所示的设置外,还需要设置如下图所示的Targets,建议设置成Manual Build 编译方式,而不是Auto Build 编译方式。因为在Auto Build 模式下,任何修改都会触发编译,而Manual Build 模式下,只在需要的时候,点击编译按钮或菜单编译即可。
DSC0006.jpg
  Hadoop 各成员都需要编译成jar,所以做如下图所示的一个修改:
DSC0007.jpg
  确定之后,返回如下图所示的Edit Configuration 对话框:
DSC0008.jpg
  上面完成后,回到Builder 的主对话框,再将对话框中的Java Builder 下移,并将它前面的勾去掉。
进入Eclipse 主界面,由于之前选择了Manual Build,所以需要人工方式驱动编译,编译成功后,可以看到BUILD SUCCESSFUL 字样。
DSC0009.jpg
  请注意:如果上图所示的菜单中的Build Automatically 被勾中,则在common 的右键菜单中可能不会出现Build 子菜单。
在编译过程中,Ant 会自动从网上下载所依赖的库。common 的编译成功结束后,可以在build 目录下找到编译后生成的文件hadoop-core-0.21.0-dev.jar。
  
3.2. 编译Hadoop其它成员
  hdfs、mapreduce 和hive 的编译方式同common。
  
  
4. FAQ
  
4.1. 联网
  确保可以上internet,Ant 需要自动下载很多第三方依赖库,如果不能联网,编译会复杂很多。
4.2. 编译hive
  hive 的编译相对复杂些,而且默认它会编译多个版本的hive,建立修改shims 目录下的ivy.xml 文件,去掉不必要版本的编译。
4.3. 编译生成文件位置
  common 编译后生成build\hadoop-core-0.21.0-dev.jar;
  hdfs 编译后生成build\hadoop-hdfs-0.21.0-dev.jar;
  mapreduce 编译后生成build\hadoop-mapred-0.21.0-dev.jar;
  hive 编译后生成build\service\hive_service.jar,请注意并没有直接放在build 目录下;
  hbase 编译后生成build\hbase-0.21.0-dev.jar;
  有时候在编译某个时出错,可先跳过,编译其它的,Refresh 之后再编译。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85580-1-1.html 上篇帖子: spring hadoop 访问hbase入门 下篇帖子: Hadoop开发常用的InputFormat和OutputFormat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表