『每日一读』 HDFS 上传数据流程详解

Posted 大数据初学者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『每日一读』 HDFS 上传数据流程详解相关的知识,希望对你有一定的参考价值。

2018
12
11
每日一读


RECOMMEND
推荐阅读
『每日一读』 HDFS 上传数据流程详解

                        HDFS 上传数据流程详解

『每日一读』 HDFS 上传数据流程详解



『每日一读』 HDFS 上传数据流程详解


『每日一读』 HDFS 上传数据流程详解
『每日一读』 HDFS 上传数据流程详解
  1. 客户端使用 DFS 向 NameNode 发送请求 上传文件 zio.avi 文件到 /user/data 目录

  2. NameNode检查 ./user/data/ 目录 , 查看该目录下是否已经存在 zio.avi 文件 , 若不存在,返回 允许上传的信息

  3. 客户端对 zio.avi 文件进行切块 , 默认的切块大小的 128M , zio.avi被切分成两块 blk01 和 blk01 

  4. 客户端 向NameNode 发出请求 , 请求 blk01 块应该上传到哪几个 DataNode节点

  5. NameNode经过计算 , 返回 DataNode01 , DataNode02 , DataNode03 三个节点的信息 , 表示使用这三个节点储存 blk01

  6. 客户端 向 DataNode 01 , 02 , 03 这三个节点 请求建立数据通道 以便于传输数据 , 客户端和DataNode01 建立数据通道 , 然后 , DataNode01 向DataNode01建立数据通道 , DataNode02 向DataNode03 建立数据通道 

  7. 向客户端返回数据通道建立完成 , 可以开始进行数据传输的信息

  8. FSDataOutputStream 模块开始 进行数据传输 , 客户端从本地读取数据 , 存储在缓存区里 , 然后上传到DataNode01 , 然后DataNode01 将blk01 以数据包为单位传输给 DataNode02, DataNode02 向DataNode03 传输 , 然后传输完成后 , DataNode03 -> DataNode02 返回 传输成功的信息 , 若是传输过程出现意外 , 传输失败, 会返回失败信息, 最终所有传输信息会返回给客户端, 再有客户端返回给 NameNode , 若是有失败信息 .,再由NameNode重新指定节点来存储传输失败的blk


『每日一读』 HDFS 上传数据流程详解



『每日一读』 HDFS 上传数据流程详解


转载是一种动力 分享是一种美德



以上是关于『每日一读』 HDFS 上传数据流程详解的主要内容,如果未能解决你的问题,请参考以下文章

每日一读 | The Steam Train

每日一读:非对称加密

jdk源码每日一读 java.lang.Object

每日一读:《关于python2和python3中的range》

每日一读

原版英文绘本每日一读 | Marvin wanted more!