hdfs工作原理如下:
1、客户端通过调用FileSystem对象的open括号来读取希望打开的文件 。对于HDFS来说,这个对象是分布式文件系统的一个实例 。
2、DistributedFileSystem通过RPC来调用namenode,以确定文件的开头部分的块位置 。对于每一块,namenode返回具有该块副本的datanode地址 。此外,这些datanode根据他们与client的距离来排序(根据网络集群的拓扑) 。如果该client本身就是一个datanode,便从本地datanode中读取 。DistributedFileSystem返回一个FSDataInputStream对象给client读取数据,FSDataInputStream转而包装了一个DFSInputStream对象 。
【hdfs工作原理 hdfs工作原理是什么样的】
3、接着client对这个输入流调用read() 。存储着文件开头部分的块的数据节点的地址DFSInputStream随即与这些块最近的datanode相连接 。
4、通过在数据流中反复调用read(),数据会从datanode返回client 。
5、到达块的末端时,DFSInputStream会关闭与datanode间的联系,然后为下一个块找到最佳的datanode 。client端只需要读取一个连续的流,这些对于client来说都是透明的 。
6、在读取的时候,如果client与datanode通信时遇到一个错误,那么它就会去尝试对这个块来说下一个最近的块 。它也会记住那个故障节点的datanode,以保证不会再对之后的块进行徒劳无益的尝试 。client也会确认datanode发来的数据的校验和 。如果发现一个损坏的块,它就会在client试图从别的datanode中读取一个块的副本之前报告给namenode 。
7、这个设计的一个重点是,client直接联系datanode去检索数据,并被namenode指引到块中最好的datanode 。因为数据流在此集群中是在所有datanode分散进行的 。
相关经验推荐
- 蜻蜓飞行原理 蜻蜓飞行原理发明了什么
- 疫情如何做好防护措施工作 疫情如何做好防护措施
- 10010人工服务工作时间 10010人工服务是24小时的吗
- 2022北京西城区小学入学工作时间安排表
- 2022北京延庆区义务教育阶段入学工作时间安排
- 2022北京延庆区义务教育阶段入学工作方案一览
- 2022北京通州区义务教育入学工作实施细则
- 2022北京高级中等学校招生工作通知发布
- 2022北京中考宏志生招生工作通知一览 北京宏志中学2020中考成绩
- 时间+考试名称 北京地区2021年度人事考试工作计划?
