当前位置: 首页 > news >正文

客户端向hdfs读写数据流程

写数据

可以点击查看大图

客户端上传文件会被分为128M一块上传 

首先客户端像namenode请求上传,namenode响应可以上传。然后客户端像namenode发起rpc请求上传第一个block(0-128M),请返回datanode,

客户端拿到namenode地址比如3个副本会有3台 分别为 dn1  dn2 dn3

客户端向dn1建立channel,  dn1 向dn2建立通道 在nio的bytebuf ,dn2向dn3建立通道在nio的bytebuf

dn3响应dn2 ,dn2 响应dn1 ,dn1响应给客户端 ,

客户端通过nio传送数据到 dn1同时 dn1也传给dn2 ,dn2也传给dn3


只要dn1上传成功就成功后面namenode会去维护,如果dn1也失败就返回失败重传。


客户端传送给 dn1 单位为package 64k

以chunk为校验单位 521byte


读数据

找namenode请求下载

相关文章:

  • CAS原理分析
  • Java中静态跟非静态的区别总结
  • Spring IOC原理解读 面试必读
  • spring ioc原理(看完后大家可以自己写一个spring)
  • 非可抢占式和抢占式进程调度的区别是什么?
  • 【数据结构】ArrayList原理及实现学习总结
  • Java集合:HashMap源码剖析
  • 从原则、方案、策略及难点阐述分库分表
  • IDEA,WebStorm ,pyCharms 2018注册码 (2018jetbrain所有产品都可以)
  • css如何让div显示在最上层
  • XMind制作思维导图——添加子标题
  • JAVA中的Random()函数,获取随机数
  • FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
  • linux wget安装以及使用
  • Servlet中response、request乱码问题解决
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android交互
  • ES6--对象的扩展
  • Gradle 5.0 正式版发布
  • Iterator 和 for...of 循环
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js面向对象
  • PAT A1017 优先队列
  • Rancher-k8s加速安装文档
  • React Transition Group -- Transition 组件
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 关于extract.autodesk.io的一些说明
  • 聚类分析——Kmeans
  • 蓝海存储开关机注意事项总结
  • 码农张的Bug人生 - 见面之礼
  • 设计模式走一遍---观察者模式
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 小程序 setData 学问多
  • 用jquery写贪吃蛇
  • 数据库巡检项
  • # Java NIO(一)FileChannel
  • #宝哥教你#查看jquery绑定的事件函数
  • (07)Hive——窗口函数详解
  • (1)常见O(n^2)排序算法解析
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2020)Java后端开发----(面试题和笔试题)
  • (52)只出现一次的数字III
  • (7)STL算法之交换赋值
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)Linux下编译安装log4cxx
  • .NET Core 项目指定SDK版本
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • @Query中countQuery的介绍
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [Android]创建TabBar
  • [JS] 常用正则表达式集(一)