MIT6.824 Lecture 1-Introduction

balance:性能和容错

Faulty tolerance:

Availablity、Recoverability、NV storage(非易失性存储,比较贵)、Replication(多个数据副本)

consistency:

Put(key, value)

Get(key)->value

这两种操作组成了一个比较简单的存储系统

在分布式系统中数据可能有多个副本,当用户Put更新其中一个表,然后这个用户退出了,之前在申请的时候就有可能会碰上没有同步过的老数据。有strong一致性系统(更贵的通讯)也有weak一致性系统。假如使用异地容错的话,通信的代价会很高

MapReduce

目的:MapReduce是一个框架。computations on giant data on thousands of computers->让非专业人士撰写和运行巨型分布式计算

MapReduce在input上面运行Map函数,将文件作为input,key-value pairs作为输出

比如说生成(a, 1),(a, 1), (b ,1), (b ,1), (c, 1),然后接下来收集key=1对应的实例a传给一个Reduce函数,收集key=1对应的实例b传给一个Reduce函数......然后Reduce函数不需要做什么,只需要对于传给它的项目的数量进行统计,甚至不需要看传过来的是什么项目。然后Reduce函数会输出(value, value_count)。MapReduce的每一次调用都称为任务。

复制代码
Map(k, v):切割,k是文件名,v是Maps input file content,比如说单词计数的时候就是把v分割成单词
Map(k, v)
	split v into words
	for each word w
		emit(W, "1")


Reduce(k, v):k是该Reduce函数负责的key的值,比如说k是words,v全是1
Reduce(k, v)
	emit(len(v))
比如说我们v是1,这个时候就会emit出v=1的对应的数字的个数,如v=1对应a/b/c,此时emit出来是3
相关推荐
旧曲重听11 小时前
最快实现的前端灰度方案
前端·程序人生·状态模式
June bug14 小时前
【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
经验分享·分布式·职场和发展·架构·学习方法·测试·软考
自由鬼12 天前
企业架构与IT架构关系的探讨
程序人生·安全·架构·安全架构·企业架构·it架构
剁椒豆腐脑12 天前
阶段二JavaSE进阶阶段之设计模式&继承 2.2
java·设计模式·跳槽·学习方法·改行学it
ProcessOn官方账号13 天前
数据分析对比图表-雷达图全面指南
大数据·人工智能·程序人生·职场和发展·数据分析·学习方法·processon
是紫焅呢14 天前
I排序算法.go
开发语言·后端·算法·golang·排序算法·学习方法·visual studio code
南国_之恋14 天前
程序人生,人生如戏
程序人生·职场和发展
TGC达成共识14 天前
解锁身心密码:从“心”拥抱健康生活
科技·物联网·程序人生·百度·生活·新浪微博·高考
是紫焅呢14 天前
E结构体基础.go
开发语言·后端·golang·学习方法·visual studio code
宇钶宇夕15 天前
博图SCL中CONTINUE语句详解:高效循环控制案例
运维·程序人生·算法·自动化