欢迎来到天天文库
浏览记录
ID:43810501
大小:1.74 MB
页数:61页
时间:2019-10-15
《分布式存储和计算系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、分布式存储和计算系统By薛长俊2010-12-28返回MapReduceBigTableGoogle的三驾马车GFSGFS简介组件失效不再被认为是意外,而是被看做正常的现象。常量监视器,错误侦测,容错以及自动恢复系统集成在系统中。文件非常巨大。大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据。应用程序和文件系统API的协同设计。GFS设计预期这个系统由许多廉价易损的普通组件组成。这个系统保存一定数量的大文件。负载中主要包含两种读操作:大规模的流式读取和小规模随机读取。负载中还包括许多大规模的顺序的写操作,追加数据到文件尾部。系统必
2、须高效的实现良好定义的多客户端并行追加到一个文件的语意。高度可用的带宽比低延迟更加重要。GFS架构GFS单一主服务器主服务器可以通过全局的信息精确确定块的位置以及进行复制决定。主服务器保存三种主要类型的元数据:文件和块的命名空间,文件到块的映射,以及每个块副本的位置。主服务器执行所有的名称空间操作。另外,它管理整个系统的所有块副本:它决定块的位置,创建新块和相应的副本,协调多变的系统活动,保持块被完全复制,均衡所有块服务器之间的负载,回收没有使用的存储空间。GFS系统交互GFS创建、重新复制、负载均衡当主服务器创建一个块,会选择哪里放置初始
3、的空副本。新的副本放置在低于平均硬盘使用率的块服务器。限制每一个块服务器上"近期"创建操作的数量。把块分布在机架之间。一旦块的可用副本数少于用户指定的值,主服务器会重新复制它。主服务器周期性地对副本进行负载均衡:它检查当前的副本分布情况,然后移动副本以得到更好的硬盘剩余空间以及负载的均衡。GFS垃圾回收及过期副本检测文件删除后,主服务器把文件改成一个包含删除时间戳的隐藏的名字。在主服务器对命名空间进行常规扫描时,物理删除超过某个时间段的包含删除时间戳的文件。在相似的对块命名空间的常规扫描,主服务器找到孤儿块(无法从任何文件到达的块)并擦除它
4、们的元数据。主服务器在周期的垃圾回收中移除所有的过期副本。无论何时主服务器获得一个块的新租约,它增加块的版本号,然后通知当前副本。主服务器和这些副本都把新的版本号记录在它们的持久化存储的状态中。如果块服务器失效,或者块服务器当机的时候错过了一些操作,块副本会过期。GFS容错和诊断高可用性。快速恢复。不管主服务器和块服务器是如何关闭的,它们被设计为可以在数秒钟内恢复它们的状态并启动。块复制。每个块被复制到不同机架上的不同的块服务器上。主节点复制。为了可靠性主服务器状态要被复制。它的操作日志和检查点都要复制到多台机器上。数据完整性。每个块服务器
5、利用校验和来检查存储的数据是否损坏。块被分为64KB的大小,每个有一个对应的32位的校验和。诊断工具。广泛而详尽的分析日志。MapReduce简介MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/valuepair的数据集合,输出中间的基于key/valuepair的数据集合;然后再创建一个Reduce函数,用来合并所有的具有相同中间key值的中间value值。MapReduce架构的程序能够在大量的普通配置的计算机上实现并行化处理。MapReduce一般算法M
6、apReduce编程模型MapReduce一个例子举例:计算一个大的文档集合中每个单词出现的次数:map(Stringkey,Stringvalue)://key:documentname//value:documentcontentsforeachwordwinvalue:EmitIntermediate(w,"1");reduce(Stringkey,Iteratorvalues)://key:aword//values:alistofcountsintresult=0;foreachvinvalues:result+=ParseInt
7、(v);Emit(AsString(result));MapReduce容错worker故障。master周期性的ping每个worker。如果在一个约定的时间范围内没有收到worker返回的信息,master将把这个worker标记为失效。所有由这个失效的worker完成的Map任务被重设为初始的空闲状态,之后这些任务就可以被安排给其他的worker。同样的,worker失效时正在运行的Map或Reduce任务也将被重新置为空闲状态,等待重新调度。master故障master周期性的将当前运行状况写入磁盘,即检查点。如果这个master任
8、务失效了,可以从最后一个检查点开始启动另一个master进程。MapReduce备用任务木桶效应在运算过程中,如果有一台机器花了很长的时间才完成最后几个Map或Reduce任务,
此文档下载收益归作者所有