Hadoop 写数据的简易流程如下图所示,
(1)客户端向 NameNode 发起元数据请求,指定文件上传的路径。此时,NameNode内部会进行一系列操作,如验证客户端指定的路径是否合法、客户端是否具有写权限等。验证通过后,NameNode 会为文件分配块存储信息。
(2)NameNode 向客户端返回元数据信息,并给客户端返回一个输出流。
(3)客户端获取到元数据和输出流之后,开始向第一个 DataNode 写数据块。
(4)第一个 DataNode 将数据块发送给第二个 DataNode,第二个 DataNode 将数据块发送给第三个 DataNode,以此类推,写完所有的数据块。
(5)每个 DataNode 会向上游的 DataNode 发送结果确认信息,以保证写入数据的完整性。
(6)DataNode 向客户端发送结果确认信息,保证数据写入成功。
(7)当所有的数据块都写完,并且客户端接收到写入成功的确认信息后,客户端会向NameNode 发送关闭数据流请求,NameNode 会将之前创建的输出流关闭。
以上内容摘自《海量数据处理与大数据技术实战》电子书,点击https://developer.aliyun.com/topic/download?id=8205可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。