前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【更新】Hadoop代码结构及载入Ecplise方法

【更新】Hadoop代码结构及载入Ecplise方法

作者头像
顶级程序员
发布2018-04-26 11:29:47
6780
发布2018-04-26 11:29:47
举报
文章被收录于专栏:顶级程序员顶级程序员

一、项目结构

在Hadoop代码结构中,按照功能的不同将项目划分到不同目录当中。

整个项目可以用maven进行构建,因此根目录下有pom.xml文件。

每个子目录也可作为独立的maven项目进行编译,因此每个子目录下也都有pom.xml。

Mapreduce、HDFS是Hadoop最主要的两个功能模块,这两个部分就分别放到了hadoop-mapreduce-project、hadoop-hdfs-project这两个目录当中。由于各子项目之间会使用些共同的基础功能,这部分基础功能的代码实现,在hadoop-common-project下。

主要子目录中的功能如下:

  • hadoop-common-project:Hadoop基本功能实现,包括安全认证、日志管理、配置管理、监控等。
  • hadoop-hdfs-project:HDFS功能实现。
  • hadoop-mapreduce-project:Mapreduce功能实现。
  • hadoop-yarn-project:Hadoop 2.x之后引入,集群资源管理框架Yarn的主要功能实现代码。
  • hadoop-client:Hadoop客户端(用于作业提交、文件上传下载等)功能实现。
  • hadoop-tool:第三方提供的一些工具,比如访问aliyun OSS的接口、访问aws的接口等等。

二、代码获取方法

如果只为研究目的,不考虑特殊版本需求的话,直接从apache的Hadoop官网https://hadoop.apache.org/releases.html下载一份最新的源代码。

或者,可以从github上获取:

三、Eclipse项目生成及代码修改

maven的Eclipse插件可以用于生成eclipse项目文件(.classpath、.project),使得对应项目可以直接在Eclipse中打开。

在项目根目录下,可以执行:

如上所述,Hadoop有多个子项目组成,在根目录中执行该项目之后,每个子目录都会生成单独的子项目。在Eclipse中打开就会同时载入所有子项目。

由于Hadoop项目比较大,一般会根据需要到某个子项目中执行Eclipse项目生成操作,比如:

执行完成之后,可以在Eclipse中导入项目:

选择子项目所在的目录,并打开:

之后,便可以像平常查看普通Java项目那样,进行查找文件、跳转到定义处等操作了:

四、编译中可能遇到的问题

Hadoop的编译过程看似只需要mvn的命令启动一下即可,但过程中会对某些工具及项目有所依赖。

1、主要依赖的工具

  • ant
  • ant-trax
  • rpmdevtools
  • cmake
  • lzo-devel
  • openssl-devel
  • snappy-devel
  • forrest

如果是连上网络的一台Linux机器,装这些并不困难,在CentOS中使用yum install,在Ubuntu中使用apt-get install。

2、依赖的项目

Hadoop依赖于Google的Protobuf,需要下载、编译并安装Protobuf之后才能保证Hadoop的正确编译。

下载的链接:https://developers.google.com/protocol-buffers/docs/downloads。

需要根据需求下载正确的版本(比如Hadoop2.6.x、2.7.x需要Protobuf v2.5.0)。

解压之后,在Protobuf项目目录执行如下命令完成安装:

点击阅读原文跳转github链接

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 顶级程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、项目结构
  • 二、代码获取方法
  • 三、Eclipse项目生成及代码修改
  • 四、编译中可能遇到的问题
    • 1、主要依赖的工具
      • 2、依赖的项目
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档