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
相关推荐
Foyo Designer1 小时前
【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JavaWeb 项目的部署:从开发环境到生产环境
前端·经验分享·程序人生·firefox·学习方法·改行学it
中小企业实战军师刘孙亮12 小时前
生活之味:苦与甜的交织-中小企实战运营和营销工作室博客
程序人生·职场和发展·生活·创业创新·需求分析·学习方法·程序员创富
LK_071 天前
【蓝桥杯—单片机】第十五届省赛真题代码题解析 | 思路整理
c语言·笔记·单片机·蓝桥杯·学习方法
程序员麻辣烫2 天前
晋升系列4:学习方法
java·数据库·程序人生·学习方法
救救电气鼠鼠3 天前
基于遗传算法的IEEE33节点配电网重构程序
程序人生·数学建模·matlab·重构
Doris Liu.3 天前
苹果“被盗设备保护”的取证意义
科技·程序人生·安全·ios·智能手机·系统安全·安全架构
熬了夜的程序员3 天前
Go 语言封装 HTTP 请求的 Curl 工具包
后端·程序人生·http·golang
源码姑娘5 天前
基于DeepSeek的智慧医药系统(源码+部署教程)
java·人工智能·程序人生·毕业设计·springboot·健康医疗·课程设计
以己之5 天前
数据库基础以及基本建库建表的简单操作
开发语言·数据库·程序人生
Tiger Z7 天前
R 语言科研绘图第 30 期 --- 密度图-堆叠
开发语言·程序人生·r语言·贴图