20181211每日一读

RECOMMEND推荐阅读

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

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