zoukankan      html  css  js  c++  java
  • 通过漫画轻松掌握HDFS工作原理


    hadoop文件分布式系统(hdfs)
    client:人们坐在我面前,请求我去读写数据
    namenode:我只有一个,我来指挥这里所有的事情
    datanode:我们存储数据,我们很多人,有时候会有几千人

    在HDFS集群中写入操作
    ①用户请求: “ 用户:‘让我们写一些数据吧,client先生,请给我写入200M的数据’;client:‘这是我的荣幸,但是。。。’。”
    ②块和复制: “client:‘你没有忘记什么东西吧?’;用户:‘噢,对了。。请帮我把数据分为128M一个包,每个包复制到三个地方;”
    ③一个优秀的客户端总是知道这两件事情:blocksize:大的文件分为许多的包(通常包的大小为64或者128Mb)replication factor:每一个包被复制存储在多个地方(一般是三个)


    ①分解文件为包:client:首先我会把这个大的文件分解为许多包
    ②请求namenode:client:首先让我们为第一个包开始工作吧,namenode先生,请帮我写一个128Mb的包复制三份
    ③namenode分配datanodes:namenode:复制三份,hmm。。。需要找三个datanode给这个client,该怎样做呢,改天再告诉你
    ④namenode:给你,伙计。。这是三个datanode的地址,我已经帮你从近到远排好序了;client:谢谢。
    ⑤client开始写数据:client:我只发送我的数据(这是清单)给第一个datanode;datanode1:我会将数据存储在硬盘里。
    ⑥datanode1:当我收到数据时,我将相同的数据同时发给下一个datanode


    ①datanode2:我要和刚才那个人一样的做;datanode3:我是最后一个节点
    ②TA..DA..复制 运输
    ③当datanode运输完成时:当所有数据(这个包)被写入硬盘,所有的datanode发送报告给namenode
    ④namenode:包已经成功存储和复制在hdfs中了;client:当我传输完一个包时,我重复相同的步骤来传输剩余的包
    ⑤当所有包传输完毕:client:当所有包传输完毕,请关闭文件。namenode:关闭情况下,现在我将所有的元信息存储在硬盘上
    ⑥回顾:client:我将文件分为包;namenode:对于每个包我分配了datanode的地址;datanode:我复制了几份存储了数据

  • 相关阅读:
    Annotation
    jdbc
    集合
    与运行环境交互
    计数排序and基数排序
    面向对象下
    面向对象
    流程控制与数组
    庆祝自己的BLOG开张
    Raspberry Pi配置为无线路由器
  • 原文地址:https://www.cnblogs.com/jonty666/p/9905352.html
Copyright © 2011-2022 走看看