DanDan的学习笔记


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于
DanDan的学习笔记

MapReduce原理与实现(二):MapReduce的实现

发表于 2017-01-12 | 分类于 分布式学习 |

概览

在实现MapReduce的过程中,主要是实现一个MapReduce框架。这个框架是干嘛的呢?具体来说,就是使用者只需要定义自己的Map和Reduce方法,即可完成MapReduce功能。如下所示:

如下所示:

input is divided into "splits"
Input Map -> a,1 b,1 c,1
Input Map ->     b,1
Input Map -> a,1     c,1
            |   |   |
                |   -> Reduce -> c,2
                -----> Reduce -> b,2
阅读全文 »
DanDan的学习笔记

MapReduce原理与实现(一):基本原理

发表于 2017-01-05 | 分类于 分布式学习 |

Introduction

MapReduce是用来处理大数据的一个编程模型。

用户一般规定了map方法来处理一个k/v对,而reduce方法来合并相关的中间值。

阅读全文 »
DanDan的学习笔记

A Tour of Go(二):方法和接口

发表于 2017-01-03 | 分类于 Go语言 |

本节我们主要学习怎么定义方法、怎么声明接口,等。

方法

Go语言没有类,但是我们可以在类型上定义方法。

方法有一个特殊的接受者参数的函数。

接受者出现在func关键字和方法名之间的参数列表中。

比如说下面的例子,方法Abs有一个类型为Vertex的接受者。

阅读全文 »
DanDan的学习笔记

A Tour of Go(一):基本知识

发表于 2016-12-30 | 分类于 Go语言 |

在正式开始Mit 6.824之前,我先按照A Tour of Go ,学习Go语言的语法和相关知识。

A Tour of Go分为三个章节。第一个章节描述了基本的语法和数据结构,第二个章节讨论了方法和接口,第三个章节介绍了Go语言的并发原语。

本节描述了Go语言的一些基本知识。包括变量声明,方法调用,以及一些其他的知识。

阅读全文 »
DanDan的学习笔记

Raft原理与实现(三):日志压缩

发表于 2016-12-28 | 分类于 Raft原理与实现 |

这一节是要是日志压缩和客户端交互的部分,先略过。如果能实现一、二篇所描述的部分,再来实现本节。

阅读全文 »
DanDan的学习笔记

Raft原理与实现(二):安全性与成员变更

发表于 2016-12-26 | 分类于 Raft原理与实现 |

Safety

之前的章节描述了Raft的leader选举和日志复制。但是如果按照之前的方式来,会有一些问题。比如说follower当选为leader之后可能会重写已经被commit的log,这样就会导致不同server的状态机执行了不同的command。

阅读全文 »
DanDan的学习笔记

Raft原理与实现(一):简介、选举与日志复制

发表于 2016-12-21 | 分类于 Raft原理与实现 |

Raft是什么

Raft是来管理复制日志的一个一致性协议。它和(multi-)Paxos有一样的效果,但是它的结构却和Paxos有所不同。简单点来说,它比Paxos更容易理解,也更容易实现。相信读过Paxos的读者已经体会过Paxos的晦涩、难懂,以及难以实现之处。而Raft直接提出了实现该协议的几个要素:leader选举、日志复制和安全性,甚至给出了伪代码。相比Paxos,Raft通过加强对状态一致性的约束来减少需要考虑的状态数目。

阅读全文 »
DanDan的学习笔记

一些想法

发表于 2016-12-16 | 分类于 生活随笔 |

主要是2016年都快过完了,这几天晚上睡觉想了想,时间虽然飞快,但是每个月在干什么事情,心里还是有点谱。

阅读全文 »
DanDan

DanDan

爱生活,爱学习,爱旅行。

8 日志
4 分类
7 标签
© 2017 DanDan
由 Hexo 强力驱动
主题 - NexT.Pisces