• 通过漫画轻松掌握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:我复制了几份存储了数据

  • 相关阅读:
    oracle 存储过程深入学习与应用
    程序猿-技术成长-理论方法-实践指导
    PowerDesigner 概念数据模型(CDM)
    关于oracle监听程序的相关问题及解决方法
    代码调试的专业姿势
    新年学习目标,了解所有框架,熟悉部分常用框架,熟练使用其中三个
    ResultSet 处理方法
    JPA 相关API (一)
    从输入 URL 到页面加载完的过程中都发生了什么事情?
    R语言中的if-else语句写法
  • 原文地址:https://www.cnblogs.com/jonty666/p/9905352.html
Copyright © 2020-2023  润新知