分享

如何创建hadoop工程,查看hadoop源码

问题导读:
1.如何通过maven导入eclipse工程?
2.创建hadoop工程有几种方式?
3.hadoop-maven-plugins插件的作用是什么?





搭建Hadoop源代码阅读环境

1 创建Hadoop工程(1)

本节将介绍如何创建一个Hadoop源代码工程以方便阅读源代码。总体上说,目前存在两种Hadoop源代码阅读环境搭建方法,分别是构建Maven工程和构建Java工程。两种方法各有利弊:前者可通过网络自动下载依赖的第三方库,但源代码会被分散到多个工程中进而带来阅读上的不便;后者可将所有源代码组织在一个工程中,但需要自己添加依赖的第三方库,大家可根据自己的喜好选择一种方法。本节将依次介绍这两种方法。


注释:此处需要对maven有所了解,可参考:
实际操作:
eclipse maven plugin 插件 安装 和 配置

理论知识:
maven入门教程介绍
Maven2使用项目开发规范说明

视频讲解
源码编译maven系列视频教程汇总


(1)构建Maven工程

通过Maven工程搭建Hadoop源代码阅读环境的步骤如下:

步骤1 解压缩Hadoop源代码。

将下载到的Hadoop源代码压缩包解压到工作目录下,下载地址:hadoop-2.4.0-src.tar
解压后如下:
2.png


步骤2 导入Maven工程。

在Eclipse中,依次选择“File”→“Import”→“Maven”→“Existing Maven Project”,在弹出的对话框中的“Root Directory”后面,选择Java源代码所在的目录。

单击“Next”按钮,在弹出的对话框中选择“Resolve All Later”,并单击“Finish”按钮完成Maven项目导入。之后,Eclipse会自动通过网络从Maven库中下载依赖的第三方库(JAR包等)。注意,你所使用的电脑必须能够联网。
1.png

将Hadoop 2.0源代码导入Maven项目后,会生成50个左右的工程,这些都是通过Maven构建出来的,每个工程是一个代码模块,且彼此相对独立,可以单独编译。你可以在某个工程下的“src/main/java”目录下查看对应的源代码。
(2)构建Java工程
通过Java工程搭建Hadoop源代码阅读环境的步骤如下:
步骤1 解压缩Hadoop源代码。
同“构建Maven工程”中的步骤1类似。
步骤2 新建Java工程。
打开Eclipse,进入Eclipse可视化界面后,如图1-1所示,依次单击“File”→“New”→ “Java Project”,并在弹出的对话框中去掉“Use default location”前的勾号,然后选择Hadoop安装目录的位置,默认情况下,工程名称与Hadoop安装目录名称相同,用户可自行修改。单击“完成”按钮,Hadoop源代码工程创建完毕。


javapro.jpg


回到Eclipse主界面后,打开新建的Hadoop工程,可看到整个工程按图1-2所示组织代码:按目录组织源代码,且每个目录下以JAR包为单位显示各个Java文件。


kavapro2.jpg


除了使用源代码压缩包导入Eclipse工程的方法外,读者可也尝试直接从Hadoop SVN上导入Hadoop源代码。

需要注意的是,通过以上方法导入Hadoop 2.0源代码后,很多类或者方法找不到对应的JAR包,为了解决这个问题,你需要将第三方JAR包导入工程中,如图1-3所示,方法如下:解压存放JAR包的压缩包,然后右击Project名称,在弹出的快捷菜单中选择“Properties”命令,将会弹出一个界面,然后在该界面中依次选择“Java Build Path”→ “Libraries”→“Add External JARs...”,将解压目录中share/hadoop目录下各个子目录中lib文件夹下的JAR包导入工程。

前面提到CDH版本将源代码和JAR包放到了一起,因此,如果使用CDH版本,则直接按照上述方法将源代码导入Eclipse工程即可。

细心的读者在阅读源代码过程中仍会发现部分类或者函数无法找到,这是因为Hadoop 2.0使用了Protocol Buffers定义了RPC协议,而这些Protocol Buffers文件在Maven编译源代码时才会生成对应的Java类,因此若其他类在源代码中引用这些类则暂时无法找到,解决方法是先编译Hadoop 2.0源代码再倒入Eclipse工程。

创建Hadoop工程(2)
首先,使用以下命令安装Elicpse插件hadoop-maven-plugins:
hadopro.jpg


  1. $ cd ${HADOOP_HOME}/hadoop-maven-plugins  
  2. $ mvn install
复制代码

然后生成Eclipse工程文件:

  1. $ cd ${HADOOP_HOME}  
  2. $ mvn eclipse:eclipse -DskipTests
复制代码

最后在Eclipse中按照以下流程导入源代码:“File” → “Import”→ “Existing Projects into Workspace”。





已有(3)人评论

跳转到指定楼层
Victor-Shy 发表于 2014-11-10 18:20:26
楼主这个src包是编译过得吗还是直接官网的那个src包
回复

使用道具 举报

howtodown 发表于 2014-11-10 18:36:22
Victor-Shy 发表于 2014-11-10 18:20
楼主这个src包是编译过得吗还是直接官网的那个src包
这个是已经获取源码的包,官网的知识maven包,没有源码
回复

使用道具 举报

howtodown 发表于 2014-11-10 18:37:04
howtodown 发表于 2014-11-10 18:36
这个是已经获取源码的包,官网的知识maven包,没有源码
获取源码参考这个帖子
从零教你如何获取hadoop2.4源码并使用eclipse关联hadoop2.4源码
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条