本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境。(默认已安装好 Java、Maven 环境)

一、搭建源码阅读环境

一)idea 导入 hadoop 工程

从 github 上拉取代码。
https://github.com/apache/hadoop
可以选择对应的分支

# 如拉取 2.8.5 分支
git clone -b branch-2.8.5 git@github.com:apache/hadoop.git

在 idea 中点击 File - Open 选择对应的文件夹目录,进行导入。之后会进入漫长的程序加载过程(看机器配置和网速,可能几十分钟到几小时不等)。

二)配置注释环境

为了更方便的在阅读源码过程中记笔记,可在源码基础上创建新的分支用于记录。
1、创建新分支

# 如在 branch-2.8.5 基础上创建
git checkout -b branch-2.8.5-comment

2、在 github 上创建个新的项目
3、将本地分支 branch-2.8.5-comment 推送到远端。之后可以在自己 github 上看到这个项目分支了。

# 删除原来的远端项目
git remote remove origin
# 添加新的项目地址
git remote add origin <你的项目地址>
# 推送新的分支
git push -u origin branch-2.8.5-comment

二、源码组织架构

一)根目录结构

导入工程后,可以看到如下图的目录结构。其中,比较重要的目录有:hadoop-common-projecthadoop-mapreduce- projecthadoop-hdfs-projecthadoop-yarn-project 等。

  • hadoop-common-project:Hadoop 基础库所在目录,该目录中包含了其他所有模块可能会用到的基础库,包括 RPC、Metrics、Counter 等;
  • hadoop-mapreduce-project:MapReduce 框架的实现;
  • hadoop-hdfs-project:Hadoop 分布式文件系统实现;
  • hadoop-yarn-project:Hadoop 资源管理系统 YARN 实现,是我们需要重点关注的部分。

二)yarn 目录结构

Hadoop YARN 主要关注五个部分:API、Common、Applications、Client 和 Server。

  • YARN API:给出了 YARN 内部涉及 RPC 协议的 Java 声明和 Protocol Buffers 定义;
  • YARN Common:包含了 YARN 底层库实现, 包括事件库、服务库、状态机库、Web 界面库等;
  • YARN Applications:包含了两个 Application 编程实例,分别是 distributedshell 和 Unmanaged AM;
  • YARN Client:该部分封装了几个与 YARN RPC 协议交互相关的库,方便用户开发应用程序;
  • YARN Server:该部分给出了 YARN 的核心实现,包括 ResourceManager、NodeManager、资源管理器等核心组件的实现。

三、远程调试

配置与远程部署的 hadoop 服务连接。
1、idea 中选择 Run -> Edit Configurations

# 在 yarn-env.sh 中添加
export YARN_NODEMANAGER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006"
export YARN_RESOURCEMANAGER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"# 如果想要启动时先连接 debug,则设置 suspend=y

4、可以用 idea 进行远程连接调试了

【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境相关推荐

  1. jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境

    一.找到源码位置 直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图: 在这里解压. 第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死. 二.Intel ...

  2. Mac搭建JDK源码阅读环境

    点赞再看,养成习惯,微信公众号搜索[虚竹讲程序经],获取更多技术干货! 想要读懂JDK源码,需要在自己电脑上搭建JDK的源码阅读环境,正所谓,工欲善其事,必先利其器.下面演示如何在Mac上结合Idea ...

  3. spring5.3.x源码阅读环境搭建

    spring5.3.x源码阅读环境搭建-gradle构建编译 文章目录 spring5.3.x源码阅读环境搭建-gradle构建编译 一.依赖工具 二.下载源码 三.开始构建 四.编译源码 五.源码测 ...

  4. Mybatis 源码阅读环境搭建

    Mybatis源码阅读环境搭建 前言 一.下载mybatis的源码 二.编译源码 三.创建测试项目 前言     mybatis源码阅读环境搭建还是比较简单的,接下来我们讲解一下如何搭建该源码阅读环境 ...

  5. Spark源码学习之IDEA源码阅读环境搭建

    软件准备 (1)Java 1.8 (2)Scala 2.11.12(需要在IDEA中安装) (3)Maven 3.8.2(需要在IDEA中配置) (4)Git 2.33 以上软件需要安装好,并进行环境 ...

  6. ardupilot java_基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  7. Gitolite + repo 搭建安卓源码开发环境

    Gitolite + repo 搭建安卓源码开发环境 转载请注明出处:http://blog.csdn.net/u011479494/article/details/50629669 相比gitosi ...

  8. Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

    前提 前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降��了. 这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅 ...

  9. Ubuntu18.04搭建Android源码编译环境

    一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...

最新文章

  1. 谷歌编程语言年度榜NO.1:知识体系总结(2021版)
  2. 悉尼科技大学入选 CVPR 2021 的 9 篇论文,都研究什么?
  3. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数
  4. 【MFC】CWinApp类详解
  5. adb 查看当前包名和Activity
  6. perl python json_Perl解析JSON数据精解
  7. jetty java web_i-jetty 下的JavaWeb开发(一)
  8. MongoDB聚合运算之mapReduce函数的使用(11)
  9. NotNorthwind-更新#1-您所有的Northwind都属于我们
  10. mysql 读写分离 事务_mysql 读写分离(基础篇)
  11. 推荐一个理解线性代数的视频
  12. 使用豆瓣镜像安装Tensorflow
  13. c语言地铁系统设计,城市地铁报站系统设计.doc
  14. arcgis 10.8 for win10安装教程
  15. 大专学历计算机专业可以积分,持有大专紧缺急需专业可直接申请上海居住证积分?...
  16. CSDN博客放阿里妈妈广告代码的方法
  17. chrome去广告插件
  18. 理性和感性哪个对做产品更重要
  19. 【Foobar 2000】如何为本地歌曲音乐评级、打分、评分、打小星星?喜爱程度分级-playcount、quick tagger
  20. 项目管理中的边边角角 之一

热门文章

  1. Apache DolphinScheduler 整合 Apache Knox 网关
  2. 前端实现div标签p标签等吸顶效果【Vue+原生JS组合写法】
  3. 飞舟语录[持续更新]
  4. 安卓基础学习 Day 21|Fragment(碎片)
  5. “飞秋”的生存空间是否会受到挤压?
  6. NXP的官方提供的EB工具license到期后续期
  7. 单元测试,驱动模块和桩模块的概念是什么?
  8. 【Todo】STAR面试法
  9. 【WebDriver】使用AutoIt上传文件
  10. Python自动录入ERP系统数据