HDFS的读/写流程

1.HDFS读流程

HDFS读流程

1.1 、Client通过FileSystem.open(filePath)方法,与NN节点进行【rpc】协议通信,校验是否有权限是否存在,假如都ok,返回该文件的部分或全部的block的列表(包含各个block块的分布在DN地址的列表),也就是返回【FSDataInputStream】对象;
1.2、Clinet调用FSDataInputStream.read方法。
a.与第一个块的最近的DN进行read,读取完成后,会check,假如ok,会关闭与当前的DN的通信;假如失败会记录块的这个副本+DN信息,向NN汇报这个块副本损坏,下次就不会从这读取。那么就去该块的第二个DN的地址读取
b.然后读取第二个块,步骤和a一样
c.假如block列表读取完成后,文件还未结束,那么FileSystem会从NN获取下一批次的block的列表。
1.3、Client调用FSDataInputStream.close()方法,关闭输入流。

2.HDFS写流程

HDFS写流程

 

2.1 、Client调用FileSystem.create(filePath)方法,与NN进行【rpc】通信,检验该路径是否有权限创建是否文件存在,假如ok,就创建一个新的文件,但不关联任何的block,返回一个【FSDataOutputStream】(假如不ok,直接返回错误)

2.2、 Client调用FSDataOutputStream.write方法
a.将第一个块的第一个副本写入DN1,第一个副本写完传输给第二个DN2,第二个副本写完就传输给第三个DN3,当第DN3写完,就返回一个ack packet给DN2,DN2就返回ack packet给DN1,DN1就返回ack packet的FSDataOutputStream对象,标识第一个块的三个副本都写完了
b.余下的块依次这样

2.3、 当向文件写入数据完成后,Client调用FSDataOutputStream.close()方法
关闭输出流

2.4、 再调用FileSystem.complete()方法,告诉NN节点写入成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS Code设置中文插件

Vscode是一款开源的跨平台编辑器。默认情况下,vscode使用的语言为英文(en) 1)打开vscode工具; 2)使用快捷键组合【CtrlShiftp】,在搜索框中输入“configure display language”,点击确定后; 3&a…

HDFS的Block size的默认大小

今天无意中听到了同事说关于HDFS中每个block的大小,特意查了下: 从Hadoop的官网上看了各个版本的说明文档中关于 Data Blocks 的说明,发现是从2.7.3版本开始,官方关于Data Blocks 的说明中,block size由64 MB变成了12…

用eclipse配置spket编写extjs代码方法

依然是备忘用的,因为以前学过的东西很容易就会遗忘,现在每学一点就记录下来,一来让自己有一定的成就感,二来也方便以后查阅。 ExtJS的好处我就不多说了,富客户端的ajax框架,美观,大方&#xff0…

ODT .NET 详解之 SqlDataSource 访问 Oracle

前一篇博文呢,介绍了如何搭配好 Oracle Developer Tools for Visual Studio .NET 的使用环境, 这一篇博文的话就会重点来介绍一下如何通过使用 SqlDataSource 这个控件来访问 Oracle 数据库了, 其实只要环境搭配好了,那么这一篇博…

bloom filter

今天的文章和大家一起来学习大数据领域一个经常用到的算法——布隆过滤器。如果看过《数学之美》的同学对它应该并不陌生,它经常用在集合的判断上,在海量数据的场景当中用来快速地判断某个元素在不在一个庞大的集合当中。它的原理不难,但是设…

skiplist原理与实现

今天继续介绍分布式系统当中常用的数据结构,今天要介绍的数据结构非常了不起,和之前介绍的布隆过滤器一样,是一个功能强大原理简单的数据结构。并且它的缺点和短板更少,应用更加广泛,比如广泛使用的Redis就有用到它。 …

JavaScript与HTML交互——事件

JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。如果JavaScript关注特定类型事件,那么它可以注册当这类事件发生时要调用的句柄。 事件流…

std::string中的反向迭代器rbegin()和rend()

在std::string中,有个接口是rbegin()和rend(),分别表示string字符串的倒数第一个字符和正数第一个字符; rbegin():表示string字符串的倒数第一个字符 rend():表示string字符串的正数第一个字符 分为普通的iterator和…

C++ functor 仿函数

在C中,仿函数不是一个函数,是一个类,这个类实现了函数的功能。 如果我想实现一个求和的功能:定义一个Sum类,让其中的()函数实现这个功能,代码如下: class Sum { public:Sum() default;virtua…

Sql Server 2008将数据库导出sql脚本并导出数据

1.使用Sql Server Management Studio 2008 连接数据库。 2.选中要导出数据的数据库节点,点鼠标右键,在菜单中选择“任务”->“生成脚本”,如图: 3。在弹出的界面中,点2次“下一步”进入如图界面中,把“编…

男性早孕-从软件与程序的区别说起

引言 今日新闻《如此医院太荒唐大小伙子被查出“早孕”》,百度搜索结果如下: 看到这结果,大家啥感想? 按常理,医院粗心、医疗机构忽视患者权益、经济利益的恶性驱动等等言论,唾沫星子基本足以把肇事医院来个…

spring-boot+swagger实现WebApi文档

1、引用依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.5.0</version> </dependency <dependency><groupId>io.springfox</groupId><artifact…

含有5亿个整数的大文件,如果排序?

给你1个文件bigdata&#xff0c;大小4663M&#xff0c;5亿个数&#xff0c;文件中的数据随机,如下一行一个整数&#xff1a; 61963023557681612158020393452095006174677379343122016371712330287901712966901...7005375 现在要对这个文件进行排序&#xff0c;怎么搞&#xf…

jmeter连数据库

前提&#xff1a;jmeter不能直接连数据库&#xff0c;需要导入一个jar包 步骤&#xff1a; 1、右键线程组--添加--配置元件--JDBC Connection Configuration 2、jdbc的基本配置&#xff1a;可以修改jdbc配置的名称、随便填写变量名Variable Name&#xff0c;再填写最下面的数据…

设置窗口的光标,设置ToolBar,设置状态栏

代码 //ex_10Dlg.cpp : implementation file//#include "stdafx.h"#include "ex_10.h"#include "ex_10Dlg.h"#ifdef _DEBUG#definenew DEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[] __FILE__;#endif///////CAboutDlg dialog used for App Abo…

MySQL主从复制作用和原理

该文章是转载的&#xff0c;但是原文中有些描述的不准确&#xff0c;进行了修改。 一、什么是主从复制? 主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff1b;主数据库一般是准实时的业务数据库。 二、主从复制的作用 1、…

windows mobile开发循序渐进(1)关于平台和工具

最近要进行windows mobile开发&#xff0c;很兴奋&#xff0c;因为之前对移动开发很感兴趣&#xff0c;并且做了一些B/S模式的开发&#xff0c;也做了一些包括WML和WEB移动开发的学习和开发&#xff0c;这次需要系统的整理一下windows mobile开发过程了&#xff0c;希望园子里的…

LC-BLSTM结构快速解读

参考文献如下&#xff1a; (1) A Context-Sensitive-Chunk BPTT Approach to Training Deep LSTM/BLSTM Recurrent Neural Networks for Offline Handwriting Recognition (2) Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT A…

spring boot 实战

https://windmt.com/2018/04/26/spring-cloud-full-reactive-microservices/ 这篇文章一级棒&#xff0c;实际操作一番&#xff0c;感觉有点理解微服务以及服务发现&#xff0c;服务间调用这几个概念。 但是对于响应式编程以及对于异步非阻塞场景等还是比较头大。 在实际操作中…

MySQL InnoDB的缓冲池之预读失效和缓存池污染

InnoDB的缓存池作用: 缓存表数据和索引数据,把磁盘上的数据加载到缓冲池中,避免每次都进行磁盘IO,起到加速访问的效果. LRU算法(Least recently used): 把入缓存池的页放在LRU的头部,作为最近访问的元素 页在缓冲池中的数据,把它放在队列的前面(情景一)页不在缓冲池中的数据,…