『每日一读』 HDFS 上传数据流程详解
Posted 大数据初学者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『每日一读』 HDFS 上传数据流程详解相关的知识,希望对你有一定的参考价值。
HDFS 上传数据流程详解
-
客户端使用 DFS 向 NameNode 发送请求 上传文件 zio.avi 文件到 /user/data 目录
-
NameNode检查 ./user/data/ 目录 , 查看该目录下是否已经存在 zio.avi 文件 , 若不存在,返回 允许上传的信息
-
客户端对 zio.avi 文件进行切块 , 默认的切块大小的 128M , zio.avi被切分成两块 blk01 和 blk01
-
客户端 向NameNode 发出请求 , 请求 blk01 块应该上传到哪几个 DataNode节点
-
NameNode经过计算 , 返回 DataNode01 , DataNode02 , DataNode03 三个节点的信息 , 表示使用这三个节点储存 blk01
-
客户端 向 DataNode 01 , 02 , 03 这三个节点 请求建立数据通道 以便于传输数据 , 客户端和DataNode01 建立数据通道 , 然后 , DataNode01 向DataNode01建立数据通道 , DataNode02 向DataNode03 建立数据通道
-
向客户端返回数据通道建立完成 , 可以开始进行数据传输的信息
-
FSDataOutputStream 模块开始 进行数据传输 , 客户端从本地读取数据 , 存储在缓存区里 , 然后上传到DataNode01 , 然后DataNode01 将blk01 以数据包为单位传输给 DataNode02, DataNode02 向DataNode03 传输 , 然后传输完成后 , DataNode03 -> DataNode02 返回 传输成功的信息 , 若是传输过程出现意外 , 传输失败, 会返回失败信息, 最终所有传输信息会返回给客户端, 再有客户端返回给 NameNode , 若是有失败信息 .,再由NameNode重新指定节点来存储传输失败的blk
以上是关于『每日一读』 HDFS 上传数据流程详解的主要内容,如果未能解决你的问题,请参考以下文章