首页 > 其他分享 >HDFS读写流程

HDFS读写流程

时间:2022-10-05 21:23:03浏览次数:49  
标签:HDFS 文件 读写 DataNode FileSystem NameNode 流程 客户端

HDFS读流程

  1. 客户端通过FileSystem的get方法加载配置获得FileSystem对象。
  2. FileSystem向NameNode通过open方法请求读取文件。
  3. NameNode进行检查(文件是否存在,是否有相应权限)。
  4. 若通过NameNode会返回输入流(FSDataInputStream对象),不通过会报错。
  5. HDFS客户端调用FSDataInputStream读取文件。
  6. FSDataInputStream根据前几个Block挑选最近的DataNode建立连接,读取数据。
  7. DataNode返回数据,客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。读取完这个Block后关闭连接。重复7和8步,直到数据读取完毕。
  8. 关闭文件系统对象FileSystem。

HDFS写流程

  1. 客户端通过FileSystem的get方法加载配置获得FileSystem对象。
  2. FileSystem通过create方法向NameNode请求上传文件。
  3. NameNode进行检查(目标文件是否已存在,父目录是否存在)。
  4. 若通过NameNode会创建空文件并返回输出流(FSDataOutputStream对象),不通过会报错。
  5. HDFS客户端调用FSDataOutputStream写入文件。
  6. FSDataOutputStream与第一个DataNode建立连接,以以Packet为单位写入数据;第一个DataNode与第二个DataNode建立连接,备份数据;第二个DataNode与第三个DataNode建立连接,备份数据。
  7. 第三个DataNode在ack校检后应答第二个DataNode、第二个DataNode在ack校检后应答第1个DataNode,第一个DataNode在ack校检后应答HDFS客户端。
  8. 关闭文件系统FileSystem对象。

标签:HDFS,文件,读写,DataNode,FileSystem,NameNode,流程,客户端
From: https://www.cnblogs.com/lgjb/p/16756429.html

相关文章

  • day9- 流程控制完结
    1publicstaticvoidmain(String[]args){2//打印三角形3for(inti=1;i<=5;i++){4for(intj=5;j>=i;j--){5......
  • HDFS shell命令行常用操作
    1.hadoopfs-mkdir[-p]<path>path为待创建的目录,如果没有一个父目录就加一个-p例:hadoopfs-mkdir/yuan创建一个shenzi的目录2.hadoopfs-ls[-h][-R][path]p......
  • 【笨方法学python】ex16 - 读写文件
    代码如下:点击查看代码#-*-coding:utf-8--*-#读写文件#close-关闭文件(保存)。#read-读取文件内容,结果可赋值给一个变量。#readline-读取文本文件中的一......
  • Servlet——执行流程、生命周期、方法介绍、体系结构
    执行流程  生命周期对象的生命周期是指一个对象从被创建到被销毁的整个过程Servlet运行在Servlet容器(web服务器)中,其生命周期由容器管理,分为四个阶段:    1.加......
  • TVM: VisitExpr流程分析
    TVM源码中涉及到表达式遍历的地方,一般是适用VisitExpr接口进行,这个接口设计TVM的visitor模式,具体分析可参考:TVM:visitor设计模式基类tvm::relay::ExprFunctor适用visito......
  • webpack打包思路与流程解析
    一:创建一个新的工程,项目初始化npminit-y二:搭建项目框架 三:编写main.js文件内容,在index.js中引入,在把index.js引入到index.html中例:exportdefault()=>{fun......
  • 118-22-ZooKeeper 基础设施详解 和 服务启动流程源码分析_ev
         ......
  • C语言读写文件
    1.从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个'#'#include<stdio.h>#include<stdlib.h>intmain(){FILE*fp;charch,filename[10];......
  • nginx&http 第三章 ngx http 框架处理流程
    1.nginx 连接结构 ngx_connection_t 这个连接表示是客户端主动发起的、Nginx服务器被动接受的TCP连接,我们可以简单称其为被动连接。同时,在有些请求的处理过程中,Nginx会试......
  • 0460-HDFS纠删码的机架感知
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......