1 Star 1 Fork 1

洪荒或有仙 / hadoop-2.6.5-src

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Hadoop-2.6.5 源码剖析

场景1:hdfs集群启动

  1. namenode初始化和启动流程
  2. datanode初始化和启动流程
  3. datanode向namenode发起节点注册
  4. datanode定期向namenode发送心跳通知
  5. namenode定时检查datanode是否按时发送心跳

场景2:创建目录

  1. hdfs shell或者java api,如何跟namenode通信
  2. namenode是如何更新和维护内存中的文件目录树的
  3. namenode是如何同时将edits log写入本地磁盘文件以及JournalNode中
  4. JournalNode是如何在本地磁盘上存储edits log
  5. standby namenode是如何从JournalNode拉取edits log流的,以及如何更新到自己的内存文件目录树中,包括写入自己本地磁盘文件中
  6. standby namenode是如何定期发起checkpoint的
  7. namenode每次启动的时候是如何读取fsimage和edits log文件完成内存中的合并的
  8. active namenode如果宕机,是如何由standby namenode完成主备切换的
  9. 基于HA双namenode架构,hdfs的元数据是如何管理的
  10. HA双namenode架构下,是如何在故障的时候完成主备切换的。

源码阅读

第1章 HDFS概述

1.2 HDFS通信协议
1.2.1 Hadoop RPC接口
  1. ClientProtocol:客户端与namenode间的接口,
    • 客户端对文件系统的所有操作都需要通过这个接口,
    • 同时客户端读、写文件等操作也需要先通过这个接口与Namenode协商之后,再进行数据块的读出和写入操作。
  2. ClientDatanodeProtocol:客户端与datanode间的接口
  3. DatanodeProtocol: datanode通过这个接口与namenode通信,同时namenode会通过这个接口中方法的返回值向datanode下发指令
    • datanode会通过这个接口向namenode注册、汇报数据块的全量以及增量的存储情况。
    • 同时,namenode也会通过这个接口中方法的返回值,将namenode指令带回该数据块,根据这些指令,datanode会执行数据块的复制、删除以及恢复操作。
  4. InterDatanodeProtocol:datanode与datanode间的接口
    • 用于数据块的恢复操作,以及同步数据节点上存储的数据块副本的信息。
  5. NamenodeProtocol:secondNamenode 与namenode间的接口, 目前是HA架构,不介绍。

1.2.2 流式接口

流式接口是HDFS中基于TCP或者HTTP实现的接口。 在HDFS中,流式接口包括了基于TCP的DataTransferProtocol接口,以及HA架构中Active Namenode和Standby Namenode之间的HTTP接口。

  1. DataTransferProtocol

第2章 Hadoop RPC

  1. org.apache.hadoop.ipc.RpcEngine
  2. org.apache.hadoop.ipc.WritableRpcEngine
  3. org.apache.hadoop.hdfs.DFSClient.rename()

空文件

简介

hadoop-2.6.5 源码剖析 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/sangjiacun_admin/hadoop-2.6.5-src.git
git@gitee.com:sangjiacun_admin/hadoop-2.6.5-src.git
sangjiacun_admin
hadoop-2.6.5-src
hadoop-2.6.5-src
master

搜索帮助