分布式学习
文章平均质量分 78
Sahm5k
这个作者很懒,什么都没留下…
展开
-
mit6.824 lab2c-数据持久化
简单的说,raft需要将voteForentries(当前的所有日志)保存到硬盘进行持久化存储。保存的方法:在变量改变时,利用persist()中的gob将变量序列化,存储在persister结构体中。(实验不需要真正保存在硬盘上,用persister结构体代替。读取的方法:在服务器重启时,利用readPersist()读取保存的序列化参数,并解码成对应变量输入raft中。test 2c 报错的主要原因是2b、2a的问题,总结下通过c找出的问题。原创 2023-04-03 10:59:32 · 642 阅读 · 0 评论 -
mit6.824-lab2b日志一致性
client调用start()添加日志后,raft如何保证日志如何被安全、可靠、快速的添加到raft集群中。原创 2023-03-25 10:45:04 · 471 阅读 · 0 评论 -
mit6.824 lab2a-raft选举
3.如果candidate的任期合法并且leader在最新任期没有进行投票,则投票给candidate。1.向当前服务器请求投票,如果candidate的任期原创 2023-03-06 10:17:04 · 272 阅读 · 0 评论 -
6.824lab1总结
lab1实验的实现思想以及分布式问题的解决方案。原创 2023-02-22 15:21:21 · 361 阅读 · 0 评论 -
MapReduce:在大型集群上简化数据处理(4)
原文链接:https://mp.weixin.qq.com/s/jA4FeYBjb6fd_JyP6fzQ5g 5 性能 在本节中,我们将通过在大型计算机集群上运行的两个计算来测试MapReduce的性能。其中一个计算任务是在1TB的数据中查找某个特定的东西。另一个计算任务则是对1TB左右大小的数据进行排序。 这两个程序能代表了MapReduce的用户编写的程序的很大一部分用途。其中一类是将数据从一种表示变为另一种表示。另一类则是从一个大型数据集中提取出小部分人们所感兴趣的数据。 5.1 集群配置 所有的程序转载 2020-08-10 15:26:09 · 445 阅读 · 0 评论 -
MapReduce:在大型集群上简化数据处理(3)
4 改进 虽然简单的Map和Reduce函数所提供的基本功能已经足以满足大部分的计算需要,但我们还是发现了一些有价值的扩展功能。本节将会对此进行介绍 4.1 分区函数 MapReduce的使用者通常会指定Reduce任务和Reduce输出文件的数量为R。在这些中间键上我们会使用一个分区函数来将这些数据进行分区。默认情况下,分区函数使用的是哈希进行取模(例如:hash(key) mod R)进行分区。这样能够生成非常均匀的数据分区。但是在某些情况下,通过向其他的一些分区函数传入key来进行分区会非常有用。比转载 2020-08-10 15:20:02 · 239 阅读 · 0 评论 -
MapReduce在大型集群上简化数据处理(2)
3实现 MapReduce模型可以有多种不同的实现方式。如何正确选择取决于具体环境。例如某种实现可能适用于一台小型共享内存型机器,另一种实现方式则适用于大型NUMA架构的多核处理器机器上。然而,有的实现方式可能更适合大型的基于网络的机器集群。 本节所介绍的是一个针对在谷歌内部所广泛使用的计算环境下使用的实现:通过以太网交换机连接,并由商用服务器所组成的大型集群。我们的环境配置如下: 1.x86架构,Linux系统,双处理器,每台机器的内存为2-4GB 2.商用网络硬件——通常它们的网速为100Mbit/s转载 2020-08-08 21:28:59 · 452 阅读 · 0 评论 -
MapReduce在大型集群上简化数据处理(1)
概要 MapReduce是一种编程模型,它是一种用于处理和生成大型数据集的实现。用户通过指定一个用来处理键值对(Key/Value)的map函数来生成一个中间键值对集合。然后,再指定一个reduce函数, 它用来合并所有的具有相同中间key的中间value 。现实生活中有许多任务可以通过该模型进行表达,具体案例会在论文中展现出来。 以这种函数式风格编写的程序能够在一个大型商用机器集群上自动并行执行。这个系统在运行时只关心:如何分割输入数据,在大量计算机所组成的集群上的调度问题,集群中计算机的故障处理,管理转载 2020-08-08 21:15:56 · 385 阅读 · 0 评论