HDFS 读数据流程【重要】

简介: HDFS 读数据流程【重要】

Configuration conf = new Configuration();  
    FileSystem fs = FileSystem.get(conf);  
    Path file = new Path("demo.txt");  
    FSDataInputStream inStream = fs.open(file);  
    String data = inStream.readUTF();  
    System.out.println(data);  
    inStream.close();

1. 首先,客户端通过 DistributedFileSystem 向 NameNode 请求下载文件

2.NameNode 收到请求之后会检查用户权限以及是否存在这个文件,如果符合则会返回目标文件的元数据给客户端。

3. 接着,客户端调用 FSDataInputStream 的 read()方法开始请求读取数据。客户端会挑选一台最近的 DataNode 来读取数据,如果客户端本身就是 DataNode,那么将从本地直接获取数据。

4.DataNode 开始传输数据给客户端,每传输完一个 block 都会进行 checksum 验证( Packet 为单位来做校验当此数据块读取完毕时,FSDataInputStream 会关闭和此数据结点的连接,然后连接此文件下一个数据块的最近的数据节点。

5. 客户端以 Packet 为单位接收,先在本地缓存,然后写入目标文件。

6. 当客户端读取完毕数据的时候,会调用 FSDataInputStream 的 close()方法关闭流对象。

6. 在读取数据的过程中,如果客户端在与数据节点通信时出现错误,客户端会通知 Namenode,并尝试连接包含此数据块的下一个数据节点,失败的数据节点会被记录,此后不再连接。。

读数据流程视频讲解:58_尚硅谷_Hadoop_HDFS_读数据流程_哔哩哔哩_bilibili

相关文章
|
17天前
|
存储 分布式计算 Hadoop
【Hadoop】HDFS 读写流程
【4月更文挑战第9天】【Hadoop】HDFS 读写流程
|
3月前
|
存储 分布式计算 Java
HDFS的数据读取流程是怎样的?请描述数据读取的过程。
HDFS的数据读取流程是怎样的?请描述数据读取的过程。
27 0
|
3月前
|
Java API
HDFS的数据写入流程是怎样的?请描述数据写入的过程。
HDFS的数据写入流程是怎样的?请描述数据写入的过程。
20 0
|
5月前
|
算法 数据中心
HDFS数据的读写流程
HDFS数据的读写流程
42 0
|
7月前
|
缓存 分布式计算 负载均衡
HDFS 的写数据流程分析
HDFS的写数据流程是一道比较常见的面试题,同时梳理了写流程也可以帮助我们更加深入一点的了解 HDFS 的主要原理和各个组件的交互过程
|
8月前
|
机器学习/深度学习 缓存 分布式计算
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
|
9月前
|
存储 分布式计算 安全
HDFS 写数据流程【重点】
HDFS 写数据流程【重点】
79 0
|
10月前
|
数据采集 存储 缓存
大数据数据采集的数据采集(收集/聚合)的Flume之数据采集流程的Sink的HDFS Sink
在大数据处理和管理中,数据采集是非常重要的一环。为了更加高效地进行数据采集,Flume作为一种流式数据采集工具得到了广泛的应用。其中,Flume的Sink模块是实现数据输出和存储的核心模块之一。本文将介绍Flume中的HDFS Sink,讲解其数据采集流程。
99 0
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
41 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
219 0