网络计算模式期末复习(五)

请阐述结构化P2P网络中资源存取是如何实现的?

结构化P2P:直接根据查询内容的关键字定位其索引的存放节点。

  1. 将内容索引抽象为对。K是内容关键字的Hash摘要:K=Hash(Key);V是存放内容的实际位置,例如节点IP地址等。
  2. 所有的对组成一张大的Hash表,该表存储了所有内容的信息。
  3. 每个节点都随机生成一个标识(ID),把Hash表分割成许多小块,按特定规则(即K和节点ID之间的映射关系)分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络。
  4. 给定查询内容的K值,可以根据K和节点ID之间的映射关系在重叠网络上找到相应的V值,从而获得存储文件的节点IP地址。

比较结构化P2P网络中Chord和Pastry算法的区别?

衡量指标 Chord Pastry
拓扑结构 节点ID分布在单向环形空间 节点ID分布在单向环形空间,并且表示为以2b为基的数
存储 存储在K的后继节点上即节点ID大于K的第一个节点上 存储在节点ID与K最接近的节点上
路由查询消息 通过后继节点指针或者指针表找到K的后继节点 比较K和节点ID的前缀,下一跳节点的ID具有更长的前缀或者在数值上更接近K
节点维护状态 后继节点指针或者指针表:O(log N) 叶子节点集、邻居节点集:2b或者22b,路由表:log2bN2b
路由性能 O(log N) O(log 2bN)
稳健性 维护r个最近的后继节点 只有在L/2个叶子节点完全失效时才会路由失效
路由本地性 | 状态表中选择表项在邻近性度量上与本节点相近的节点

Map-Reduce原理

将要执行的问题拆解成Map和Reduce方式,先通过Map程序将数据切割成不相关的区块,分配给大量计算机达到分布运算的效果,再通过Reduce程序将结果汇整,输出开发者需要的结果。

MapReduce任务分配过程

MapReduce是用于大规模数据集的并行运算,在面对节点失效的情况时能够保证大量的文件和数据依然可用,初始化时数据被分割成许多分块的小数据,这些数据都是以的形式存储,用户程序会分配一个Master进程和许多Worker进程。

任务分配:初始时,Master会将用户程序分成两种类型的任务(Map任务和Reduce任务),并将这些任务分配给相应的Workers。

Master职责:相当于一个中心节点,给Map Workers和Reudce Workers分配相应的任务,检测是否有Wroker进程死掉,将Map任务处理后的结果通知给Reduce任务。

Map Worker职责:从input中获取分块数据,通过数据存储方式对数据分别进行计算,将中间结果存放在本地磁盘中。

Reduce Worker职责:对本地磁盘内容进行整合,形成有序结果并写入输出文件。

你可能感兴趣的:(高级网络计算模式,网络,p2p,服务器)