@HUST-SuWB
2015-04-19T06:33:59.000000Z
字数 2929
阅读 475
读书笔记
【Rajaraman A, Ullman J D. 大数据: 互联网大规模数据挖掘与分布式处理[J]. 2012.】
处理计算的节点存放在机架上,每个机架安放8-64个节点。单机架间通过以太网网络互连,多个机架之间一般采用另一级网络或交换机互连。
为了使计算任务能正常完成,就决定了不可能一旦某部件出现故障就终止并重启计算过程,通常采用两种方式解决故障处理的问题。
(1)文件多副本存储;
(2)计算过程分多成多个任务进行。
分布式文件系统的典型使用方式为:
(1)文件非常大;
(2)文件极少更新。
在分布式文件系统(DFS)中,文件被分成文件块,文件块通常在64MB大小。DFS的实际应用主要有:谷歌文件系统(GFS)、Hadoop文件系统(HDFS)等
(1)有多个Map任务,其输入为DFS的一个或多个文件块。Map任务将文件块转换长键值对的序列;
(2)存在一个主控制器从Map任务中手机键值对并将结果分配给Reduce任务;
(3)Reduce任务每次作用一个键,将与之相关的值以某种方式组合。
利用系统(如Hadoop)提供的调用库,用户程序会fork一个主控进程和运行在不同计算节点的工作进程(Map任务和Reduce任务)。Map任务数量不限,但是Reduce任务一般都有所限制,因为每个Map任务都必要给每个Reduce任务创建一个中间文件,这个中间文件的数目必须给予控制。
除非主控节点奔溃,否则Map-Reduce作业总会执行完毕。
一个n*n的矩阵M,一个n维向量v,则他们的乘积是一个n维向量x,其第i个元素
Map函数
对R中的每个元组t,检测它是否满足C。如果满足,则产生一个键值对(t,t)。也就是说,键和值都是t。
Reduce函数
类似于恒等式,它仅仅将每个键值对传递到输出部分。
投影运算与选择运算很相似,由于投影运算可能会产生多个相同的元组,因此Reduce函数必须要提出冗余元组。
Map函数
对R中的每个元组t,通过提出t中属性不在S中的字段得到元组r',输出键值对(t',t')。
Reduce函数
将(t',[t',t',…,t'])转换成(t',t'),以保证对每一个键t'只产生一个(t',t')对。
考虑将R(A,B)和S(B,C)进行自然连接运算。该自然连接运算实际上是要去寻找字段B相同的元组,即R中元组的第二个字段值等于S中元组的第一个字段值。
Map函数
对于R中的每个元组(a,b),生成键值对(b,(R,a)),对S中的每个元组生成键值对(b,(S,c))。
Reduce函数
将键b对应的输出结果为(b,[(
矩阵M中的第i行第j列的元素记为
一个算法的通信开销是实现算法所有任务的通信开销之和。一般的,我们在估计算法运行时间的时候并不考虑每个人物的执行时间。
例如:假设对R(A,B)、S(B,C)这两个关系进行连接运算,关系R和S的规模分别为r和s。那么,R和S的每个文件快传递给一个map任务,所有Map任务的通信开销之和就是r+s。Map任务单额输出规模与输入规模大体相当。每个输出的键值对都传给一个Reduce任务,该Reduce任务不太可能与刚才的Map任务在同一个计算节点上运行。因此,Map任务到Reduce任务的通信有可能通过集群互联来实现,而不是从内存到磁盘的传输。该通信的开销是O(r+s),因此连接算法的通信开销为O(r+s)。
指在无环网络图所有路径中最大的通信开销,也就是路径上所有任务的通信开销之和。实耗通信开销就是任一Map任务的最大输入规模和任一Reduce任务的最大输入规模之和。
待定