HDFS 工作原理

HDFS 工作原理

HDFS 架构

HDFS 架构

如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。

  • NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
  • SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。
  • DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。

其中:

  • namenode内存中存储的是=fsimage+edits。
  • fsimage:元数据镜像文件(文件系统的目录树。)
  • edits:元数据的操作日志(针对文件系统做的修改操作记录)
  • SecondaryNameNode负责定时默认1小时,从namenode上,获取fsimage和edits来进行合并,然后再发送给namenode。减少namenode的工作量。

关于冷热备份:

  • 热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作。
  • 冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失。

HDFS 写操作

HDFS 写操作

如果现在有一个文件FileA,100M大小。Client将FileA写入到HDFS上,HDFS按默认配置,HDFS分布在三个机架上Rack1,Rack2,Rack3:

  • Client将FileA按64M分块。分成两块,block1和block2
  • Client向nameNode发送写数据请求,如图蓝色虚线①------>
  • NameNode节点,记录block信息,根据机架感知功能,返回可用的 DataNode 列表,如粉色虚线②--------->

Block1: host2,host1,host3
Block2: host7,host8,host4

  • client向DataNode发送block1;发送过程是以流水线写入。流水线写入过程:

      1> 将64M的block1按64k的package划分;
      2>然后将第一个package发送给host2;
      3>host2接收完后,将第一个package发送给host1,同时client想host2发送第二个package;
      4>host1接收完第一个package后,发送给host3,同时接收host2发来的第二个package。
      5>以此类推,如图红线实线所示,直到将block1发送完毕。
      6>host2,host1,host3向NameNode,host2向Client发送通知,说“消息发送完了”。如图粉红颜色实线所示。
      7>client收到host2发来的消息后,向namenode发送消息,说我写完了。这样就真完成了。如图黄色粗实线
      8>发送完block1后,再向host7,host8,host4发送block2,如图蓝色实线所示。
      9>发送完block2后,host7,host8,host4向NameNode,host7向Client发送通知,如图浅绿色实线所示。
      10>client向NameNode发送消息,说我写完了,如图黄色粗实线。。。这样就完毕了。
    

读取过程

HDFS 读过程

读操作就简单一些了,如图所示,client要从datanode上,读取FileA。而FileA由block1和block2组成。

那么,读操作流程为:

  • client向namenode发送读请求。
  • namenode查看Metadata信息,返回fileA的block的位置。

block1:host2,host1,host3
block2:host7,host8,host4

  • block的位置是有先后顺序的,先读block1,再读block2。而且block1去host2上读取;然后block2,去host7上读取;

上面例子中,client位于机架外,那么如果client位于机架内某个DataNode上,例如,client是host6。那么读取的时候,遵循的规律是: 优选读取本机架上的数据。

Ref:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • 简介:HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据...
    先生_吕阅读 609评论 0 2
  • 简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据...
    5a4982b9b5fe阅读 299评论 0 0
  • 简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据g...
    柏树_Jeff阅读 1,087评论 0 2
  • 思考问题 HDFS的架构 设计前提和目标 专为存储超大文件而设计:hdfs应该能够支持GB级别大小的文件;它应该能...
    Sakura_P阅读 625评论 0 2
  • 星期六,我和爸爸一起去打篮球啦,我们坐车到篮球场,我先看到了一个个围栏,然后,又有一块块草坪,多么美丽。...
    金玉满堂_bccd阅读 1,182评论 0 3