zoukankan      html  css  js  c++  java
  • hdfs数据写入流程和数据读取流程

    hdfs数据写入:

    第一步:客户端通过dfs模块向namenade请求:输出目录是否存在、父目录是否存在

    第二步:namenode通过检查hdfs目录,返回客户端结果

    第三步:客户端向namenode请求:数据节点(3个)dn1,dn2,dn3

    第四步:namenode将数据节点的具体位置返回给客户端

    第五步:客户端请求dn1上传数据,dn1收到请求后会继续调用dn2,dn2收到请求后会继续调用dn3.将通信管道建立,dn1,dn2,dn3逐级响应客户端。

    第六步:客户端开始上传第一个block,先将数据放到缓存,以pocket为单位(64K),dn1收到pocket后,会传给dn2,dn2收到后会传给dn3。

    第七步:当第一个block上传完之后,客户端再次请求namenode,准备第二个block数据块的上传。

    hdfs数据读取:

    第一步:客户端通过dfs模块向namenode请求下载文件,namenode通过元数据查找,返回dn的地址

    第二步:挑选dn(就近原则>随机原则),请求获取数据

    第三步:dn开始给客户端发送数据,以pocket为单位

    第四步:客户端以pocket为单位接受数据,先本地缓存,后写入到目标文件

  • 相关阅读:
    任意指定一个key获取该key所处在哪个node节点
    记一次mysql的问题处理@20181225
    Vue 自定义校验规则
    Vue 渲染状态标签
    Vue Token拦截跳转
    vue 组件路由问题
    vue npm运行报错
    Vue复习(一)
    从客户端中检测到有潜在危险的 Request.Form
    EF Core for MySql踩坑(二)
  • 原文地址:https://www.cnblogs.com/youchi/p/13551247.html
Copyright © 2011-2022 走看看