HDFS文件上传流程

标签: HDFS文件上传
55人阅读 评论(0) 收藏 举报
分类:

HDFS运行流程图(图是盗的)

      首先用户即客户端想要上传文件,就先要给namenode发个请求,告诉它说我要上传文件了(即写数据),然后namenode会返回一个响应,这个响应是namenode根据自身情况,比如会先查一下namenode里面还能存数据吗?能存多少?有几个datanode能存?(心跳信息)然后返回一个可以存储的节点列表,意思是这些里面能存,但不是能存的datanode全部返回,它会根据上传文件的大小来适当的返回,客户端收到这个列表后,就向根据返回的列表里面的datanode中写数据,文件会分为多个块(block),写的过程是以流的方式写入的,一个块存入一个DataNode,存完后DataNode就会备份,我们默认的备份数是3,存完后,会告诉namenode说我存完了。这样就结束了hdfs文件上传的流程。


详细文字解释:

           1.   客户端拿到一个文件,跟namenode说,我要上传这个文件,上传到哪个目录下。我们假设这个文件名为 cjk.avi,目录为 /hadoop/hdfs/

           2.   namenode拿到这个文件后,获取文件名,然后去元数据中查找/hadoop/hdfs/中是否已经存在相同文件名的文件,如果没有,那么告诉客户端说你可以上传这个文件

           3.   客户端接到可以上传文件的命令后,会将文件进行切分(hadoop2.X128M),切分成NN>=1)块,如果切成n块,那么除去最后一个,其它块的大小都是一样的。

           4.   客户端拿到第一个块block01后,跟namenode说,我要上传block01,然后namenode去自身的datanode信息池中查找应该上传到哪几个datanode(备份数)中,然后将查询到的datanode的信息告诉客户端

         5.   客户端拿到datanode的信息后,开辟一个socket流将block01上传到namenode返回的datanode中最近的一个datanode节点,然后这个datanode节点会对block01进行水平备份,也就是将数据从datanode本地复制到其他指定的机器上。

           6.   datanode将数据水平备份完成之后,会通知客户端,说block01上传成功

           7.   然后客户端会通知namenodeblock01上传成功,此时namenode会将元数据(可以简单地理解为记录了block块存放到哪个datanode中)同步到内存中

           8.   其他的block块循环上面的过程

          9.   至此一个大文件就上传到hdfs中了



  

查看评论

百度webuploader上传文件组件案例分析和使用-web网站开发3

-
  • 1970年01月01日 08:00

HDFS上传文件的命令使用

打开Hadoop,sbin/start-all.sh 上传文件:bin/hadoop fs -put /home/xleer/1.txt  /user/hadoop/input1/ 查看H...
  • SONGCHUNHONG
  • SONGCHUNHONG
  • 2015-11-10 16:03:47
  • 22116

Hadoop2 HDFS shell命令

Hadoop2 HDFS shell命令   1. hdfs dfs -appendToFile ...   可同时上传多个文件到HDFS里面   2.  hdfs dfs -cat URI [U...
  • zmx729618
  • zmx729618
  • 2016-10-14 10:01:24
  • 949

hadoop文件上传解析

首先hadoop文件上传是一个复杂的过程,下面就让我们一下图为例进行简单的过程解析。 由上图客户端上传一个文件,比如上述路径,首先hadoop平台查询内存元数据信息是否可以上传,如果可以那么...
  • xiaocai9999
  • xiaocai9999
  • 2017-10-09 22:51:59
  • 171

Hadoop之HDFS原理及文件上传下载源码分析(下)

http://www.cnblogs.com/qq503665965/p/6740992.html   上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要...
  • zdy0_2004
  • zdy0_2004
  • 2017-04-21 01:32:38
  • 582

HDFS运行原理(上传文件 集群)

HDFS 上传流程 过程解析:详解 这里描述的 是一个256M的文件上传过程  ① 由客户端 向 NameNode节点节点 发出请求 ②NameNode 向Client返回可以可以存数...
  • lu1005287365
  • lu1005287365
  • 2016-06-27 11:09:37
  • 3175

hdfs 上传文件(写数据)流程

hdfs 上传文件(写数据)流程需求:向hdfs上传 300M文件text.txt 到 /mydir 目录 注意:客户端会把300M文件切分为128M(blk_1)、128M(blk_2)、54M(...
  • wu_cai
  • wu_cai
  • 2017-09-01 09:27:28
  • 231

HDFS客户端上传文件流程

HDFS读文件流程(上传文件)   1 客户端与nameNode通讯  1.1 客户端像nameNode发送上传文件请求。  1.2 nameNode返回响应,允许客户端上传文件。  1.3 客户端...
  • qq_26369213
  • qq_26369213
  • 2017-12-24 17:37:16
  • 117

hadoop中hdfs文件上传

这里不讲解hdfs上传文件的代码,只讲hdfs文件上传的过程中内部的工作 原理一、客户端对hdfs各种操作的代码package com.Lin_wj1995.bigdata.hdfs;import ...
  • Lin_wj1995
  • Lin_wj1995
  • 2016-08-09 12:10:08
  • 3712

hadoop源码解析之hdfs写数据全流程分析---创建文件

概述 DFSClient创建文件 namenode创建文件 概述hdfs中写数据应该是hdfs中最复杂的业务之一了,hadoop中的每个文件由多个block组成,每个块又有多个备份,这些备份又放在了不...
  • zhangjun5965
  • zhangjun5965
  • 2017-07-09 17:37:38
  • 549
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 5141
    积分: 576
    排名: 8万+
    博客专栏
    python

    文章:43篇

    阅读:3981
    文章存档
    最新评论