浅谈HDFS的读流程

1、使用HDFS提供的客户端Client,向远程的Namenode发起RPC请求;

2、Namenode会视情况返回文件的部分或者全部block列表,对于每个block,Namenode都会返回有该block拷贝的DataNode地址;

3、客户端Client会选取离客户端最近的DataNode来读取block;如果客户端本身就是DataNode,那么将从本地直接获取数据;

4、读取完当前block的数据后,关闭当前的DataNode链接,并为读取下一个block寻找最佳的DataNode;

5、当读完列表block后,且文件读取还没有结束,客户端会继续向Namenode获取下一批的block列表;

6、读取完一个block都会进行checksum验证,如果读取datanode时出现错误,客户端会通知Namenode,然后再从下一个拥有该block拷贝的datanode继续读。

客户端及读取HDFS中的数据的流程图

原文地址:http://blog.51cto.com/10314260/2060766

时间: 2024-10-16 12:47:09

浅谈HDFS的读流程的相关文章

浅谈HDFS的写流程

1.使用HDFS提供的客户端Client,向远程的Namenode发起RPC请求 2.Namenode会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常: 3.当客户端开始写入文件的时候,客户端会将文件切分成多个packets,并在内部以数据队列"data queue(数据队列)"的形式管理这些packets,并向Namenode申请blocks,获取用来存储replicas的合适的datanode列表,列表的大小根据Namen

浅谈HDFS架构

1.HDFS HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.它所具有的高容错.高可靠性.高可扩展性.高获得性.高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利. 2.HDFS HDFS 源于 Google 在2003年10月份发表的GFS(Google File

Flask解读 --- 浅谈Flask基本工作流程_1

网站写了蛮长时间了,一直想具体分析分析Flask的运行机制,但是源码看得断断续续,不过最近状态不错,进度上来了点,这里先新建一个类别,专门来说说Flask和源码有关系的内容, 这篇准备粗略说一下应用Flask框架的时候,从HTTP请求开始到响应的流程 前置技能   ---   WSGI 在具体读源码之前,这里先需要说一个概念,什么是WSGI. WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,

测试浅谈(原则、简单流程)

1.测试的原则:·测试证明软件存在缺陷·不可能执行穷尽测试.·测试应尽早启动.尽早介入·缺陷存在群集现象(二八定律)·杀虫剂悖论·不同的测试活动依赖不同的测试背景·不存在缺陷的谬论 2.测试的流程·1.需求分析·2.测试计划[一般测试组长]·3.用例设计·4.执行用例(基础.基本)·5.缺陷跟踪·6.测试总结[一般测试组长] 测什么?·软件源代码·与软件源代码匹配的文档·支撑软件源代码运行的配置数据·需求阶段-----需求规格说明书·系统设计阶段-----概要设计说明书.详细设计说明书·系统测试

浅谈HTTP与其工作流程

一.什么是HTTP协议 HTTP协议(Hyper Text Transfer Protocol)翻译过来是超文本传输协议,也是一种restful风格的协议,在web开发和APP接口开发都很常用. HTTP协议是应用层协议,同样是应用层协议的还有FTP,MQTT,SMAP等,但总结来说都是基于TCP/IP之上传输,应用层的协议可以理解为根据不同的协议传输不同格式的字节. 比如以下是一个HTTP协议报文 那么在应用层的报文就是 01001000 01010100 01010100 01010000

浅谈小白如何读懂Redis高速缓存与持久化并存及主从高可用集群

一.简介 Redis是一个基于键值(K-V)的高速缓存软件,和他具有相同功能的软件有memcached,但其支持更为复杂的数据结构,例如:List,set,sorted set,同时redis具有持久性功能.redis究竟是什么?对于不同的应用场合,对redis的理解也不相同,如下有三种不同的理解. ①key value store(键值存储),是一个以键值形式存储的数据库,用来作为唯一的存储系统,同时借助于sentinel实现一定意义上的高可用. ②memory cached(内存缓存),是一

浅谈渗透测试方法及流程

1﹑分析目标网站内容及功能 (1)  首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取. (2)  爬行网站目录,使用工具对网站目录进行爬行,可以辅助上一步让结果更加精准.将爬行结果存档,如果可以,此处应分析出网站是否使用通用程序,如果是,记录下来.进行下一步. (3)  根据上一步的爬行结果,对网站根目录或者关键目录进行暴力目录探测,如果网站为通用程序,判读是否有过二次开发,如非通用程序,在探测到的目录中寻找关键目录及文件.

浅谈自动化测试流程

浅谈AST(自动化测试)流程,欢迎大家多多指点,多提宝贵意见. AST阶段一:需求收集——分析自动化测试需求 1.举行启动会议,对SUT(被测试的系统)进行总体描述 2.SUT的要求是可测试和可自动化的 3.评估哪些测试可以自动化 4.分析当前生命周期中SUT使用的工具和复用现有的AST工具 5.对AST和测试中需要的工具进行评估,并提出建议 6.确定和讨论测试环境,包括测试环境的采购和安排,列出测试环境的概要 7.与开发相关人员一起走查一遍AST测试需求,最后达成一致意见 8.给出可以自动化的

浅谈javascript单体【读javascript设计模式第五章节单体有感】

单体,整个运行环境就独有一份,最简单的一种单体就是一个把所有属性和方法都集中在一起的对象,区别于一般的字面量对象,一般字面量对象是对一个物体的描述,集合该物体所具有的一些属性和方法,而单体则包含更多的些逻辑在里面,单体的好处有,划分命名空间,如果用来作为网页包装器,可以使得页面所有变量都封装在一个对象里,大幅度减小网页里的全局变量, 代码如: common.js (function(wz){ $.extend({ init:function(){ var self = this; this.bi