文章目录
hdfs在不发生故障时的读文件过程?
HDFS的读文件过程主要包括客户端的请求、NameNode的元数据查询和DataNode的数据传输。
当客户端发送读文件请求时,NameNode会通过元数据查询找到文件所在的DataNode,然后与该DataNode建立连接并获取数据块。

客户端通过多次读取数据块并拼接成完整文件,完成文件读取操作。在此过程中,HDFS还会通过数据校验和、副本机制等手段保证数据的可靠性和高可用性。
在正式介绍HDFS小文件存储方案之前,我们先介绍一下当前HDFS上文件存取的基本流程。
(1) 读文件流程 1)client端发送读文件请求给namenode,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在datanode位置发送给client 2) client收到文件位置信息后,与不同datanode建立socket连接并行获取数据。

(2) 写文件流程 1) client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用namenode节点 2) client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanode 3) namenode收到的client信息后,发送确信信息给datanode 4) datanode同时收到namenode和datanode的确认信息后,提交写操作。
hdfs单个文件多大比较合理?
要大于一个block块,比较合适。
1. HDFS就是为存储GB,TB级别以上的数据文件而设计的。不适合存储小文件。

2. 我们只需要考虑文件大小的下限即可。存储的文件的大小下限,要根据HDFS上的block块大小决定。起码要大于一个block块,比较合适。
3. hadoop 2.x默认块大小为128M. hadoop3.x默认块大小为256M
4. 建议设置块大小为接近你硬盘的输出速率的2的N次方。比如你的硬盘平均输出速率为200M/s.那么就设置成256M。如果是400M/s,就设置成512M.
hdfs和文件存储区别?
存储方式与传统的文件
唯一的区别就是
对传统的文件实现分布式或者切块处理的时候很麻烦
很容易出错,用了hadoop
就会省去N多的时间
1、存储文件的时候需要指定存储的路径,这个路径是hdfs的路径。而不是哪个节点的某个目录。比如./hadoop fs -put localfile hdfspat
一般操作的当前路径是/user/hadoop比如执行./hadoop fs -ls .实际上就相当于./hadoop fs -ls /user/hadoop
2、hdfs本身就是一个文件系统,在使用的时候其实不用关心具体的文件是存储在哪个节点上的。如果需要查询可以通过页面来查看,也可以通过api来实现查询。
到此,以上就是小编对于hdfs写文件流程的问题就介绍到这了,希望介绍的3点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。