HDFS读写理解

HDFS读写流程(全面深入理解) 1、HDFS写流程   (1)客户端通过对FileSystem.create() 对象创建建文件,DistributedFileSystem会创建输出流FSDataOutputStream。   (2)DistributedFileSystem 通过RPC远程调用名称节点,在文件系统的命名空间中创建一个新的文件,此时该文件中还没有相应的数据块。   (3)名称节会执行一些检查,比如文件是否已经存在、客户端是都有权限创建文件等。检查通过后,名称节点会构造一个新文件,并添加文件信息。如果检查不通过,文件创建失败 阅读详情

几个概念

block

一般设为128m,hdfs是按块存储的

packet

packet是第二大的单位,它是client端向datanode,或者 datanode之间传输数据的基本单位,默认是 64k

chunk

chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk需要带有4Byte的校验位。所以实际每个chunk写入packet的大小为516Byte。由此可见真实数据与校验值数据的比值约为128 : 1。(即64*1024 / 512)

写流程

HDFS读æµç¨

1 client向分布式文件系统发送写请求

2  请求发到了NN那里了,NN做检查,比如权限,路径,是否存在此文件等等。如果OK,就写 EditLog, 然后才写入内存。写完了之后,会返回一个输出流对象,并且返回一个datanode的列表。

3 client把文件按128m切分,然后用得到的输出流对象写数据,

4 client把数据分给第一个datanode,数据块是由packet组成的,完成一个packet传输之后,根据datanode列表,会依次往下发送packet包。

5 块写完之后,datanode往前汇报。

6 client关闭输出流

7 client告诉NN完成了上传任务。如果是强一致性,则是所有节点都有数据了,才通知。如果是最终一致性,则只要有一个datanode完成了就通知。

读流程

HDFS读æµç¨

1 client发起一个读的请求

2 向NN获取数据的存放位置

3 client找到最近的主机,并且建立输入流

4 datanode向输入流来写入块的数据,如果有多个块,就读多个块,然后组合在一起

5 关闭流

数据校验

块由packet组成,packet由chunk组成,而chunk上由校验位。所以,块就能够做相应的校验了。

在写入的时候,client会把这个校验的一个值写在某文件中,当取出来时,再计算一下,如果和保存的不一致,就认为数据不对。文件保存在 .meta中

${dfs.datanode.data.dir}/ 
├── current 
│ ├── BP-526805057-127.0.0.1-1411980876842 
│ │ └── current 
│ │ ├── VERSION 
│ │ ├── finalized 
│ │ │ ├── blk_1073741825 
│ │ │ ├── blk_1073741825_1001.meta 
│ │ │ ├── blk_1073741826 
│ │ │ └── blk_1073741826_1002.meta 
│ │ └── rbw 
│ └── VERSION 
└── in_use.lock
--------------------- 

参考了 https://blog.youkuaiyun.com/whdxjbw/article/details/81072207 
 

集成电路设计笔记(七)UVLO设计 1. 什么是UVLO 欠压锁定(Undervoltage-Lockout)简称UVLO,是电子设备中在电源电压低于正常工程准位时,切断电源的电路。在嵌入式系统中常会用UVLO监控电池电压,若电压低于一定值,会直接切断电源,保护嵌入式系统的电路。 许多电子设备中都有UVLO的功能,例如在镇流器中就有UVLO电路,若电压过低时直接切断电源。 UVLO就是低电压锁定; 低压关断. 欠压关断模式是当供电电压低于IC的开启门限电压时的一种保护模式。欠压关断模式可保证IC在供电电压不足时不致于被损坏。一个低电压锁定( 阅读详情

相关推荐

Mac Studio M5 Ultra本地部署大模型实战:从内存原理到Ollama开发工作流

大模型推理的性能瓶颈往往不在算力,而在于内存能否装下整个模型、带宽能否持续供得上。Transformer架构每生成一个token都需要把权重完整扫一遍,决定了这本质上是内存密集型任务——统一内存架构因此成为本地部署的关键通路,超大容量与高带宽并行,让“装得下”和“跑得快”同时成立。模型量化技术(如Q4_K_M)则是另一项决定性软件策略,用轻微精度损失换取更低的硬件门槛,也是Ollama本地部署从7B到70B各类模型必做的前置功课。当本地推理服务跑起来后,借助VS Code等开发工具的OpenAI兼容API接

weixin_29043895的博客 455

自己编写代码实现liunx平台的cp指令

自己编写代码实现liunx平台的cp指令 使用了liunx平台的相关指令之后,又学习open,read,write这些函数的使用,就来自己实现下cp指令,下面直接上代码。 #include <fcntl.h> #include <stdio.h> #include <unistd.h> //相关头文件 #include <string.h> #include <stdlib.h> int main(int argc,char **argv)/

weixin_48264057的博客 339

报错:subprocess.CalledProcessError: Command ‘[‘where‘, ‘cl‘]‘ returned non-zero exit status 1.

右键此电脑--属性--高级系统设置--环境变量--系统变量--找到Path。Enterprise是企业版,如果你是社区版就找Community。2.安装的时候,c++桌面那个需要勾选。

2301_77554343的博客 1507

hadoop ----4 hdfs

HDFS,是Hadoop Distributed File System的简称,是Hadoop抽象文件系统的一种实现。Hadoop抽象文件系统可以与本地系统、Amazon S3等集成,甚至可以通过Web协议(webhsfs)来操作。HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。例如客户端写入读取文件的直接操作都是分布在集群各个机器上的 优点 1 高可用,多副本 2 GB PB级别的数据量 3 廉价机器 缺点 1 不适合低延时 2 不适合小文件处理 3 不适合并发 4 不适合随机文件修改。

曲终人散 262

红外弱小目标检测:IPI算法解读及MATLAB复现

参考文献:[1]C. Gaoet al., “Infrared Patch-Image Model for Small Target Detection in a Single Image,” vol. 22, no. 12, pp. 4996–5009, 2013. 本文整理????论文笔记,并附MATLAB实现代码。 一、阅读笔记 1. 摘要 IPI算法是单帧检测算法; 利用背景的非局部子相关性(non-local self-correlation ofbackground),将目标检测转..

小草莓的魔法笔记 1万+

Go语言集成Ollama本地大模型:gollama库实战指南

在当今的AI应用开发中,大型语言模型(LLM)的集成已成为关键技术。其核心原理是通过API调用,将自然语言处理能力嵌入到各类应用中。从技术价值看,本地化部署的LLM解决了数据隐私、网络延迟和持续成本三大痛点,尤其适合处理敏感数据或对实时性要求高的场景。在工程实践中,开发者常使用专门的客户端库来简化与模型服务的交互,例如通过封装REST API、提供类型安全接口和流式处理支持,从而提升开发效率和代码健壮性。具体到Go语言生态,结合Ollama这一流行的本地大模型运行工具,可以实现完全离线、低延迟的AI功能集成

weixin_28728443的博客 605

Hadoop-HDFS-Packet含义及作用

Packet是 HDFS 数据传输的基本单位。当HDFS 客户端写入或读取文件时,数据会被分割成多个 Packet,每个Packet 包含一部分数据块(Block)的内容。Packet 是一个逻辑单位,通常由多个字节的数据和校验信息组成。Packet 是 HDFS 数据传输的基本单位,它将 Block 切分为更小的逻辑单位,便于高效的网络传输和数据校验。写入时,Packet 被依次传输到 DataNode 的 Pipeline,并通过确认机制确保数据可靠性。读取时。

认真学代码的shell 1434

国产蓝牙MCU选型避坑指南:从汇顶到杰理,这7家厂商的实测体验

本文基于一线开发者对汇顶、泰凌微、沁恒、博通集成、奉加微、杰理、翱捷等七家主流国产蓝牙MCU厂商的实测体验,提供了一份详实的选型避坑指南。文章不仅对比了各厂商芯片的SDK质量、文档、开发工具与技术支持等“软实力”,还深入剖析了实际开发中可能遇到的功耗、射频、版本兼容性等核心痛点,并针对不同项目需求给出了具体的选型决策建议,旨在帮助工程师高效完成国产蓝牙MCU选型。

u5v6w7的博客 338

关于HDFS的 block、packet与chunk详解

block、packet与chunk在DFSClient写HDFS的过程中,有三个需要搞清楚的单位:block、packet与chunk;block是最大的一个单位,它是最终存储于DataNode上的数据粒度,由dfs.block.size参数决定,默认是64M;注:这个参数由客户端配置决定;packet是中等的一个单位,它是数据由DFSClient流向DataNode的粒度,以dfs.write...

axjzf的博客 3936

量化交易之因子分析大全

在机器学习项目中,特征工程是非常重要的。在量化研究中也是如此。本文将量化研究中常用到的特征,也就是因子进行详细收纳,并给出推导公式和实现代码。

夏之微风的博客 2283

【Tessy】集成测试小白入门指导

本文详细介绍了如何进行集成测试的小白入门指导,从新建工程到设计用例,实现集成测试的过程详细步骤

qq_37282365的博客 1192

HDFS------block,packet,chunk的关系

在看hdfs时,经常会碰到block,packet,chunk等概念,下面做个简要介绍: block是最大的,默认为:"fs.local.block.size", 32 * 1024 * 1024=32m packet其次, 默认为:"dfs.write.packet.siz

shuhuai007的专栏 3299

PMP--工件

合同是指对双方都有约束力的协议,强制卖方提供规定的产品、服务或结果,以及强制买方支付相应的费用。它还可能包括处于中间状态的特性,例如已设计但尚未构建的特性、质量保证中的特性或测试中的特性。RACI 矩阵是一种常见的方法,用于显示执行、担责、咨询或知情,且与项目活动、决策和可交付物有关的干系人。计划是提议的实现某种目标的方式。在项目开始前或开始时创建的文件,涉及与项目有关的战略、商业或高层级的信息。或 © 它们是用特定方法创建的结果,例如,虽然成本估算结果是一个重要工件,它们是用不同估算方法得出的结果。

stqer的博客 1666

超详细的HDFS读写流程详解(最容易理解的方式)

HDFS采用的是master/slaves这种主从的结构模型管理数据,这种结构模型主要由四个部分组成,分别是Client(客户端)、Namenode(名称节点)、Datanode(数据节点)和SecondaryNameNode。HDFS作为hadoop的分布式储存框架,最重要的莫过于数据流的读写过程了,下面就HDFS得数据流的读写流程做个详细的剖析。 HDFS的写流程 首先写操作的代码操作: hd...

香蕉牛奶棒棒槌的博客 837

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HDFS 深入理解 和 读写流程

HDFS 深入 理解 一. namenode和datanode的功能 namenode: 管理文件的元数据 处理来自客户端的请求 datanode: 保存数据本身 少量的元数据: 块的长度, 校验和, 时间戳 二. namenode从集群中的每个datanode周期性的接受心跳信息和块报告 心跳信息 心跳是每3秒一次 心跳返回结果带有NameNode给该DataNode的命令如(复制块,删除) 如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 块报告 DataNode启动后向Nam

禧年 1685

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hdfs读写流程_Dive Deeper - 从头理解HDFS

开头前先热热身HDFS,全称是hadoop distributed file system,是Hadoop框架下的分布式的存储系统。所谓分布式存储系统就是指不再将数据和文件集中的存储在某一台机器上,而是采用分布式的方法,将存储空间扩展到多台机器上。这种分布式文件存储系统的理论基础和业界先例来自于谷歌的GFS。而HDFS则是由Apache基金会开源实现的软件框架hadoop中的文件存储组件。也正因为...

weixin_39853155的博客 145

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从数据流来理解HDFS读写流程

HDFS文件读取 1、首先客户端创建一个FileSystem对象,并且调用open()方法打开希望读取的文件。 2、FileSystem内部封装了DistributedFileSystem对象,DistributedFileSystem通过远程调用(RPC)来访问NameNode,得到访问文件起始块的位置。对于每一个块,NameNode按照网络拓补返回DataNode地址。 3、Distribu...

qq_44249833的博客 324

HDFS的读写流程(用来理解 HDFS Java API )

Client(客户端)读取多副本文件过程 RPC—远程过程调用协议 HDFS中的block、packet、chunk 数据存储->读文件 读文件流程分析 数据存储:写文件 写文件流程分析 ...

赤兔胭脂小吕布的博客 100

HDFS原理理解(一) 基本数据存储和读写

1、HDFS简介: Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。HDFS有三类节点,一类是NameNode,又名“名称节点/元数据节点”;另一类是DataCode(数据节点),还有一个是Secondary NameCode(第二名称节点) 物理磁盘中有块的概念,磁盘的物理Block是磁盘操作最小的单元,读写操作均以Block为最小单元,一般为512 By...

显波的博客 2704

还不知道HDFS 深入理解 和 读写流程吗?

HDFS 深入 理解 一. namenode和datanode的功能 namenode: 管理文件的元数据 处理来自客户端的请求 datanode: 保存数据本身 少量的元数据: 块的长度, 校验和, 时间戳 二. namenode从集群中的每个datanode周期性的接受心跳信息和块报告 心跳信息 心跳是每3秒一次 心跳返回结果带有NameNode给该DataNode的命令如(复制块,删除) 如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 块报告 Data

xuanwo007的博客 152

一篇漫画让你理解 Hadoop HDFS 读写工作原理

一篇漫画让你了解Hadoop HDFS!

3900

深入理解HDFS读写流程:NameNode与DataNode如何协作

在大数据存储体系中,HDFS作为分布式文件系统的基石,其核心设计思想是元数据与数据分离。NameNode负责维护命名空间与块映射,DataNode则真正承载数据读写。理解这一原理,有助于掌握数据块、副本放置、机架感知等关键概念。通过解析客户端与DataNode之间的数据管道、校验和验证以及故障恢复策略,能够解释HDFS高吞吐与容错能力的技术来源。无论是Hadoop面试准备、集群调优,还是排查“读快写慢”“副本丢失”等问题,深入掌握读写流程都是必经之路。以Hadoop 3.x为例,系统梳理文件从上传到落盘、再

weixin_31499265的博客 266

深入理解HDFS:架构原理、读写流程与运维实战

分布式存储是大数据技术体系的底层基石,理解其核心设计思想是掌握整个生态的前提。HDFS作为分布式文件系统的经典实现,通过将文件切分为数据块并分散存储于多台机器,解决了单机存储容量与硬件故障带来的瓶颈。其主从架构中,NameNode负责维护元数据索引,DataNode负责实际数据存储,二者通过心跳机制与副本策略共同保障集群的可靠性与高吞吐。这种存储与计算分离但协同的设计,使HDFS成为离线批处理、数据仓库等场景的首选底座。从基础概念到读写原理,从部署命令到故障排查,系统掌握HDFS的工程实践细节,能有效指导大

weixin_30694389的博客 221

深度理解篇之HDFS读写流程-个人拙见

文件的写流程 首先客户端和namenode进行建立连接,无论是查询还是创建,都是先进行与namenode进行交互获取元数据,当我们开始提交写请求时,首先客户端会检查文件名、路径是否合法,文件名是否被占用,一系列的检查通过之后那么,会创建一个.copying的一个扩展名的文件,此时namenode触发了块的副本放置策略,因为只有namenode才知道集群的节点信息,机架信息,怎么去放置的信息,触发...

Mirror_w的博客 761

大数据学习9:HDFS读写流程理解

HDFS读写流程: 1.一般的文件读取操作包括:open 、read、close等 客户端读取数据过程,其中1、3、6步由客户端发起: 客户端首先获取FileSystem的一个实例,这里就是HDFS对应的实例: ①客户端调用FileSystem实例的open方法,获得这个文件对应的输入流,在HDFS中就是DFSInputStream ②构造第一步中的输入流DFSInputStr

ggwxk1990的博客 467

全手绘图,易理解:hdfs的读写流程来了~

(1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。(2)NameNode返回是否可以上传。(3)客户端请求第一个 Block上传到哪几个DataNode服务器上。(4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。

m0_73707775的博客 785
上一篇: sqoop常用命令
下一篇: Hadoop权威指南笔记-第1章-初识hadoop
玩玩大数据
博客等级 码龄16年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值