• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Hadoop源代码分析(三七),hadoop源代码

Hadoop源代码分析(三七),hadoop源代码

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hadoop源代码,hadoop源代码下载,hadoop排序代码,hadoop代码,hadoop wordcount代码等服务器相关知识,网友希望可以进行参考

Hadoop源代码分析(三七),hadoop源代码


Secondary NameNode的成员变量很少,主要的有:  privateCheckpointStorage checkpointImage;
Secondary NameNode使用的Storage
  privateNamenodeProtocol namenode;
和NameNode通信的接口
  privateHttpServer infoServer;
传输文件用的HTTP服务器
main方法是Secondary NameNode的入口,它最终启动线程,执行SecondaryNameNode的run。启动前的对SecondaryNameNode的构造过程也很简单,主要是创建和NameNode通信的接口和启动HTTP服务器。
SecondaryNameNode的run方法每隔一段时间执行doCheckpoint(),从NameNode的主要工作都在这一个方法里。这个方法,总的来说,会从NameNode上取下FSImage和日志,然后再本地合并,再上传回NameNode。这个过程结束后,从NameNode上保持了NameNode上持久化信息的一个备份,同时,NameNode上已经完成合并到FSImage的日志可以抛弃,一箭双雕。
具体的的流程是:
1:调用startCheckpoint,为接下来的工作准备空间。startCheckpoint会在内部做一系列的检查,然后调用CheckpointStorage的startCheckpoint方法,创建目录。
2:调用namenode的rollEditLog方法,开始一次新的检查点过程。调用会返回一个CheckpointSignature(检查点签名),在上传合并完的FSImage时,会使用这个签名。
Namenode的rollEditLog方法最终调用的是FSImage的同名方法,前面提到过这个方法,作用是关闭往edits上写的日志,打开日志到edits.new。明显,在Secondary NameNode下载fsimage和日志的时候,对命名空间的修改,将保持在edits.new的日志中。
注意,如果FSImage这个时候的状态(看下面的状态机,前面出现过一次)不是出于CheckpointStates.ROLLED_EDITS,将抛异常结束这个过程。
3:通过downloadCheckpointFiles下载fsimage和日志,并设置本地检查点状态为CheckpointStates.UPLOAD_DONE。
4:合并日志的内容到fsimage中。过程很简单,CheckpointStorage利用继承自FSImage的loadFSImage加载fsimage,loadFSEdits应用日志,然后通过saveFSImage保存。很明显,现在保存在硬盘上的fsimage是合并日志的内容以后的文件。
5:使用putFSImage上传合并日志后的fsimage(让NameNode通过HTTP到从NameNode取文件)。这个过程中,NameNode会:
调用NameNode的FSImage.validateCheckpointUpload,检查现在的状态;
利用HTTP,从Secondary NameNode获取新的fsimage;
更新结束后设置新状态。
6:调用NameNode的rollFsImage,最终调用FSImage的rollFsImage方法,前面我们已经分析过了。
7:调用本地endCheckpoint方法,结束一次doCheckpoint流程。
其实前面在分析FSImage的时候,我们在不了解SecondaryNameNode的情况下,分析了很多和Checkpoint相关的方法,现在我们终于可以有一个比较统一的了解了,下面给出NameNode和Secondary NameNode的存储系统在这个流程中的状态转移图,方便大家理解。

 

图中右侧的状态转移图:

 

文件系统上的目录的变化(三六中出现):

 

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Hadoop源代码分析(三七),hadoop源代码
  • Hadoop 源代码分析(六)RPC-Client,hadooprpc-client
  • Hadoop 源代码分析(三)对象序列化,hadoop序列化
  • hadoop 多数据源连接之DataJoin,hadoopdatajoin

相关文章

  • 基于sparksql调用shell脚本执行SQL,sparksqlshell
  • Hadoop之——正常启动而无法正常关闭,hadoop无法正常关闭
  • 微软小冰、小娜不久相会在中国,微软相会在中国
  • 【Spark1.3官方翻译】 Spark Submit提交应用程序,spark1.3spark
  • Deploy FAILURE:An app Was not successfully detected by any available buildpack,deploybuildpack
  • 在spark上运行独立程序(Self-Contained Applications),selfcontained
  • Hive学习笔记(二),hive学习笔记
  • Hadoop集群优化,hadoop集群
  • sqoop流程详解,sqoop详解
  • hadoop文件系统详解--(1),

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • MapReduce处理二次排序(分区-排序-分组),mapreduce二次
    • 几本京东上的CISCO云计算相关书籍,cisco相关书籍
    • Hadoop之——Java操作HBase,hadoopjavahbase
    • Hadoop知识汇总,hadoop汇总
    • openstack中Nova组件Networks的所有python API 汇总,openstacknova
    • spark streaming 调试技巧,sparkstreaming
    • TopicModel主题模型,topicmodel模型
    • flume 组件概述与列表
    • 胡振亮:原来这就是很多网站百度权重做不上去的原因,胡振亮重做
    • hadoop文件损坏解决办法,

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有