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
相关推荐
星栈独行16 小时前
Node 框架怎么选?Express、Koa、Egg、NestJS 场景化选型指南
后端·程序人生·node.js
法雅特吉他18 小时前
吉他日常保养完全指南:从环境参数到部位养护的系统化方案
大数据·经验分享·新媒体运营·学习方法·材质
谙弆悕博士1 天前
系统集成项目管理工程师教程(第3版)笔记——第2章:信息技术发展
笔记·计算机网络·信息安全·学习方法·业界资讯·软考·系统分析师
jinyishu_2 天前
C++ 多态完全指南:从基础语法到底层原理
开发语言·c++·程序人生·面试
普贤莲花3 天前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活
Aurorar0rua3 天前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法
光影6273 天前
MySQL基础入门
数据库·笔记·sql·学习·mysql·学习方法
CoderYanger3 天前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
CoderYanger3 天前
A.每日一题:1967题+1331题
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
郝学胜-神的一滴3 天前
Qt 高级编程 035:无边框窗口阴影以及圆角双特效实现
开发语言·c++·qt·程序人生·用户界面