前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java大数据学习~Hadoop初识二读取与写入流程

Java大数据学习~Hadoop初识二读取与写入流程

作者头像
用户2196435
发布2018-06-29 12:14:33
4990
发布2018-06-29 12:14:33
举报
文章被收录于专栏:LuckQILuckQI

昨天的文章我们简单的说了下Hadoop中HDFS的内容,今天我们来了解下HDFS的 都写入流程。当然该流程也是一个经常面试遇到的一个问题。

HDFS的 写入流程

在HDFS客户端想要往HDFS写入文件,流程如下

  1. 首先客户端发送请求,携带者配置文件信息,还有文件的路径
  2. 访问到NameNode后,NameNode根据文件路径,去查看该路径是否存在,不存在继续将文件进行Block切割还有DataNode信息。存在追缴内容到对应的文件上
  3. 客户端接收到NameNode信息后,根据返回的Block信息访问到最近的DataNode上,打开Socket链接,进行访问,然后一个DataNode会接着链接第二个DataNode,第二个会继续链接第三个将pipeline链接构成,再返回给客户端。
  4. client开始传输数据到最近的DataNode上传输第一个Block,按照一个包packet为64K的大小进行写入,在写入的时候会进行数据校验,防止数据写入出现错误的问题。然后形成链式操作到第三个datanode上结束。
  5. 一个Block传输完毕后,再回接着传输第二个Block。到对应的DataNode上。
  6. 整个流程就会循环的 执行,传输完毕整个文件。
  7. 最后关闭链接的访问,告知namenode完成任务。

HDFS的读取过程

  1. 客户端访问NameNode,根据发送的路径进行检查。
  2. 存在 ,返回给客户端Block还有存储的DataNode信息。不存在,返回给客户端异常信息
  3. 客户端根据发送的Block还有DataNode信息,与其建立Socket链接,DataNode开始发送数据,还是按照packet来作为单位进行校验。
  4. 本地客户端进行接收。先缓存下来、然后根据块进行数据汇总。完成读取操作。
  5. 最后关闭链接的访问。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LuckQI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档