|
各位好!,我是小六子,所述难题将由我来为大伙儿开展解释。
hdfs原理以下:
1、手机客户端根据启用FileSystem目标的open括弧来载入期待开启的文档。针对HDFS而言,这一目标是分布式存储的一个案例。
2、DistributedFileSystem根据RPC来启用namenode,以明确文档的开始一部分的块部位。针对每一块,namenode回到具备该块团本的datanode详细地址。除此之外,这种datanode依据她们与client的间距来排列(依据互联网群集的拓扑结构)。假如该client自身便是一个datanode,便从当地datanode中载入。DistributedFileSystem回到一个FSDataInputStream目标给client获取数据,FSDataInputStream继而包裝了一个DFSInputStream目标。
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分散化开展的。
(责任编辑:网络) |
|