MIT6.824--入门介绍

news2024/11/28 4:33:10

分布式系统的定义

分布式系统是指将多部各自拥有内存与时钟等硬件设备的独立的计算机系统以网络汇集起来,彼此之间仅仅通过网络消息传递进行通信和协调,共同对外提供服务,但对于系统的用户来说,就像是一台计算机在提供服务一样。

分布式系统的意义

性能提升:通过增加计算机的物理数量,提升性能,节约时间。

设计需求

性能要求:我们的设计要求可以利用物理设备的增多和软件的分布式设计来提升性能;
容错率:设备的增加提升了系统的故障率,我们在设计分布式系统时需要提升容错率
可恢复性:发生意外停止运行时,可以恢复到之前的状态。

ReduceMap

对于ReduceMap,我们除了看论文,更推荐B站的视频https://www.bilibili.com/video/BV1Vb411m7go/?from=search&seid=8676892438131853528&vd_source=a7534eac008cee78d1955099f89dc509。
ReduceMap是一种可以使程序员无需顾及分布式系统的复杂性进行开发和运行的框架。对于每个输入的文件,都有一个Map函数对它进行操作,输出是一个Key/Value的键值对的集合。之后我们收集Key值相同的键值对,将这些键值对作为参数放入Reduce函数。
文件输入进分布式系统后,会被分配进不同的计算节点上进行map函数,之后进行reudce的函数运算的计算节点会与其他节点进行通信,获得键值为A的键值对。
为避免网络通信时间,我们的GFS服务和运行ReduceMap的服务器通常被部署在同一台服务器上。
我们可以用ReduceMap论文中的架构图来看一下ReduceMap的实现过程:
在这里插入图片描述
将被分割好的文件作为输入,有Master节点作为将任务分配给worker节点,实现Map之后,再将键值对按照键值相等划到同一集合中,再分配给worker节点Reduce任务,最后将结果写入内存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2189643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL专项练习第二天

在数据处理和分析中,Hive 是一个强大的工具。本文将通过五个 Hive 相关的问题展示其在不同场景下的应用技巧。 先在home文件夹下建一个hivedata文件夹,把我们所需的数据写成txt文件导入到/home/hivedata/文件夹下面。 一、找出连续活跃 3 天及以上的用户…

随时随地,轻松翻译:英汉互译软件的便捷之旅

翻译英汉互译工具,就如同一位随时待命的语言助手,在这纷繁复杂的语言世界中为我们搭建起理解与沟通的桥梁。接下来,让我们一同深入了解这些神奇的英汉互译工具,探索它的诸多功能和独特魅力。 1.福晰在线翻译 链接直达>>h…

柔性数组 初学版

1.定义 结构中的最后⼀个元素允许是未知⼤⼩的数组,这就叫做『柔性数组』成员 有些编译器会报错⽆法编译可以改成: typedef struct st_type { int i; int a[]; // 柔性数组成员 }type_a; 2.柔性数组的特点: • 结构中的柔性数组成员前…

毕业设计_基于springboot+layui+mybatisPlus的中小型仓库物流管理系统源码+SQL+教程+可运行】41004

毕业设计_基于springbootlayuimybatisPlus的中小型仓库物流管理系统源码SQL教程可运行】41004 下载地址: https://download.csdn.net/download/qq_24428851/89843203 技术栈 后端:springboot、mybatis-plus、shiro 前端:layUI 存储&…

德国法院允许非营利组织LAION抓取受版权保护的图像用于AI训练

在人工智能快速发展的今天,一场发生在德国汉堡的法庭裁决为AI训练数据的收集和使用带来了新的讨论。这起案件不仅引发了公众对AI与版权之间关系的深思,也为未来AI发展的法律框架提供了重要参考。 事件的起因是非营利组织LAION在未经授权的情况下&#x…

SpringBoot日志打印实践

背景 在项目当中,我们经常需要打印一些日志埋点信息,这些日志埋点信息,在后续软件的运维、稳定性建设中发挥了巨大的作用: 问题追踪:通过埋点日志中的关键信息,帮助定位系统异常原因系统监控:…

《Linux从小白到高手》理论篇:Linux用户和组相关的命令

List item 本篇介绍Linux用户和组相关的命令,看完本文,有关Linux用户和组相关的常用命令你就掌握了99%了。Linux用户和组相关的命令可以分为以下六类: 一.用户和用户组相关查询操作命令: Id id命令用于显示用户的身份标识。常见…

解表之紫苏

** 声明:本文介绍的中药仅供学习使用,请勿擅自使用,否则后果自负!!!因水平有限,如有不当之处,请批评指正!!!!图片来源网络&#xff0…

No.1 | 从小白到入门:我的渗透测试笔记

嘿,小伙伴们!好久不见啊,是不是都以为我失踪了?😂 其实呢,最近一直在埋头苦学,感觉自己就像是在技术的海洋里游泳,每天都在吸收新知识。现在终于有时间冒个泡,跟大家分享…

Linux进程控制(2)(进程程序替换1)

目录 续--上一章 1.WIFEXITED && WEXITSTATUS 2.非阻塞等待 进程程序替换 1.先观代码 && 现象 2.原理解释 3.将代码改成多进程版 4.使用所有的替换方法,并且认识函数参数的含义 续--上一章 1.WIFEXITED && WEXITSTATUS 若需要知道退…

ODX相关基础知识普及

一、ODX概述 1.1 背景与意义 介绍汽车电子化的发展 随着科技的飞速发展,汽车电子化已成为现代汽车工业的重要趋势。从早期的机械控制到现代的电子控制,汽车电子化经历了巨大的变革。早期,汽车的主要控制系统都是基于机械原理,通…

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介

Cisco ACI Simulator 6.0(7e)M - ACI 模拟器 Application Centric Infrastructure (ACI) Simulator Software 请访问原文链接:https://sysin.org/blog/cisco-acisim-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.…

[C/C++开发]链接动态库在不同操作系统上的行为

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 想必很多人已经了解了动态库与静态库,在实际开发中也经常使用. 但是,有必要了解在windows和Linux上开发c程序生成和链接动态库的不同行为,因为经常混淆或者自以为找到了动态库,这里简单学习并澄清一下.其中许多内容来…

【Python】pyenv:管理多版本 Python 环境的利器

pyenv 是一个强大的 Python 版本管理工具,它允许开发者在同一台计算机上轻松安装和管理多个 Python 版本。对于需要在不同项目中使用不同 Python 版本的开发者来说,pyenv 是一个非常有用的工具,因为它可以帮助用户在全局和项目级别控制 Pytho…

PCL 给点云添加高斯噪声并保存

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 添加高斯噪声实现 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新&…

角色动画——RootMotion全解

1. Unity(2022)的应用 由Animtor组件控制 在Animation Clip下可进行详细设置 ​ 官方文档的介绍(Animation选项卡 - Unity 手册) 上述动画类型在Rag选项卡中设置: Rig 选项卡上的设置定义了 Unity 如何将变形体映射到导入模型中的网格,以便能够将其动画化。 对于人…

污水排放口细粒度检测数据集,污-水排放口的类型包括10类目标,10000余张图像,yolo格式目标检测,9GB数据量。

污水排放口细粒度检测数据集,污-水排放口的类型包括10类目标(1 合流下水道,2 雨水,3 工业废水,4 农业排水,5 牲畜养殖,6 水产养殖,7 地表径流,8 废水处理厂&…

yub‘s Algorithmic Adventures_Day5

Day5 反转链表 link:206. 反转链表 - 力扣(LeetCode) 思路分析 与数组不同,链表没必要定义新的链表进行存储【对内存空间的浪费】 直接改变next指针即可. 注意头节点指向的下一个节点为null 双指针法 class Solution {publi…

杂谈c语言——6.浮点数的存储

1.浮点数在内存中的存储 常⻅的浮点数&#xff1a;3.14159、1E10等&#xff0c;浮点数家族包括&#xff1a; float、double、long double 类型。 浮点数表⽰的范围&#xff1a; float.h 中定义 1.1 练习 #include<stdio.h>int main() {int n 9;float* pFloat (floa…

Golang | Leetcode Golang题解之第456题132模式

题目&#xff1a; 题解&#xff1a; func find132pattern(nums []int) bool {candidateI, candidateJ : []int{-nums[0]}, []int{-nums[0]}for _, v : range nums[1:] {idxI : sort.SearchInts(candidateI, 1-v)idxJ : sort.SearchInts(candidateJ, -v)if idxI < idxJ {ret…