MIT6.824
思维导图
Lecture01 - IntroduceMapReduce论文
过程:
将用户输入的文件分成M块,每块大小为16MB-64MB(可由用户指定)。
由Master节点分配工作给其他Worker节点,包括M个map任务和R个reduce任务。
被分配了map任务的节点解析数据,生成<key,value>然后放入内存缓冲区。
被缓冲的键值对周期性地写入磁盘,然后被划分为R个块(Hash(key) mod R),他们在磁盘上的位置被发送给Master,然后Master转发给Worker节点进行reduce任务。
当节点收到master关于这些位置的通知时,他会使用RPC读取磁盘中的数据,当读取完所有中间数据时,进行排序操作来保证相同的键组合在一起。
Reduce函数对已排序的中间数据进行迭代,其输出附加到Reduce分区的output文件中。
当M个map和R个reduce任务运行完毕后,返回至用户代码,整个过程结束。
数据结构
123456Task: taskId: type:map/reduce state:idle/in-progress/completed ...
工程硕士数学
1.引论正交矩阵
2.线性代数方程组的直接解法2.2Gauss消去法2.3三角分解
2.3.1直接三角分解适用于所有情况
规律:下三角阵L第一列和A第一列一致,上三角阵U第一行和A第一行一致
2.3.2追赶法只适用于三对角矩阵
2.4列主元消去法
是对Gauss消去法的优化,每次从待消元的所有行中的指定列中选出绝对值最大的作为主元
2.5对称正定矩阵2.5.1对称正定矩阵的三角分解更特别的(平方根法)证明:
向量范数常用向量范数
矩阵范数
算子范数
可以看成矩阵A作用在全部向量上产生的效果的比例最大的那个值,即为||A||
谱半径是其对应矩阵的特征值中最大的特征值绝对值
条件数与所选择的范数有关,不同范数计算的条件数不同
如何证明:1)A的某一行和该行对应的代数余子式相乘在相加后结果为该行列式的值2)A的某一行和另一行元素的代数余子式相乘在相加后结果为0(相当于两行相同的行列式展开)
线性方程组-迭代法 0.1:范数与谱半径 - 知乎 (zhihu.com)
$(1)Cond(A)≥1$$(2)若A是正交矩阵 A^TA=I,那么Cond(A)_2& ...
Hexo+github+Obsidian搭建个人博客平台
由于本地使用obsidian对笔记进行编辑和分类时,多端同步繁琐,无法在线查看。因此选用Hexo博客框架+Github建站,搭建一个自己的个人博客页面,同时通过配置Obsidian,使得在本地也可以使用Obsidian进行管理和笔记的编辑。
(其实是羡慕别人炫酷的个人博客×)😄😄
效果博客链接:LegGasai’s CSLearning
一.新建Github仓库1.创建同名仓库
注意图中Repository name必须为Owner.github.io,这样github才能正确识别为github pages
二.创建Hexo项目
Hexo是一个快速、简洁且高效的博客框架,且开源社区提供了大量的第三方主题样式,可一键生成华丽的个人博客网页。官网链接Hexo
1.安装Hexo
确保已经安装了如下工具
Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
Git
然后通过npm安装Hexo脚手架
1$ npm install -g hexo-cli
安装完成后,建站(创建Hexo项目),将<folder&g ...
谷粒商城笔记
1.初始化项目idea新建空项目添加各个模块
gulimall-product商品服务gulimall-ware仓储服务gulimall-order订单服务同理创建gulimall-coupon优惠券服务gulimall-member会员服务同时添加springboot web依赖和springcloud-routing openfeign依赖
聚合模块
在根目录下添加pom文件,添加下列代码
123456789101112131415161718<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven ...
凤凰架构笔记
1.架构师的视角本地事务
A(atomicity原子性):在同一项业务处理过程中,事务保证了对多个数据的修改,要么同时成功,要么同时被撤销。
C(consistency一致性):事务必须是使数据库从一个一致性状态变到另一个一致性状态。
I (isolation隔离性):在不同的业务处理过程中,事务保证了各自业务正在读、写的数据互相独立,不会彼此影响。
D(durability持久性):事务应当保证所有成功被提交的数据修改都能够正确地被持久化,不丢失数据。
原子性、隔离性、持久性都是为一致性服务的
如何保证原子性和持久性
发生崩溃的情况
未提交事务,写入后崩溃:程序还没修改完三个数据,但数据库已经将其中一个或两个数据的变动写入磁盘,此时出现崩溃,一旦重启之后,数据库必须要有办法得知崩溃前发生过一次不完整的购物操作,将已经修改过的数据从磁盘中恢复成没有改过的样子,以保证原子性。(undo log)
已提交事务,写入前崩溃:程序已经修改完三个数据,但数据库还未将全部三个数据的变动都写入到磁盘,此时出现崩溃,一旦重启之后,数据库必须要有办法得知崩溃前发生过一次完整的购物操作,将还没来 ...
Vite
1.简介
Vite是一种新型前端构建工具(类似webpack),能够显著提升前端开发体验。它主要由两部分组成:
一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。
一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。
搭建第一个Vite项目12345678npm create vite@latestnpm create vite@latest my-vue-app -- --template <template_name>yarn create viteyarn create vite my-vue-app --template <template_name>#template_name可以是vanilla,vanilla-ts, vue, vue-ts,react,react-ts,react-swc,react-swc-ts,preact,preact-ts,lit,lit-ts,svelte,svelte-ts,solid,solid-t ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
12345678910111213141516171819202122232425262728293031323 ...
RocketMQ
1.元素概念
通信方式
分布式系统架构思想下,将复杂系统拆分为多个独立的子模块,例如微服务模块。此时就需要考虑子模块间的远程通信,典型的通信模式分为以下两种,一种是同步的RPC远程调用;一种是基于中间件代理的异步通信方式。
同步RPC调用模型
同步RPC调用模型下,不同系统之间直接进行调用通信,每个请求直接从调用方发送到被调用方,然后要求被调用方立即返回响应结果给调用方,以确定本次调用结果是否成功。 注意 此处的同步并不代表RPC的编程接口方式,RPC也可以有异步非阻塞调用的编程方式,但本质上仍然是需要在指定时间内得到目标端的直接响应
异步通信模型
异步消息通信模式下,各子系统之间无需强耦合直接连接,调用方只需要将请求转化成异步事件(消息)发送给中间代理,发送成功即可认为该异步链路调用完成,剩下的工作中间代理会负责将事件可靠通知到下游的调用系统,确保任务执行完成。该中间代理一般就是消息中间件。
异步通信的优势如下:
系统拓扑简单。由于调用方和被调用方统一和中间代理通信,系统是星型结构,易于维护和管理。
上下游耦合性弱。上下游系统之间弱耦合,结构更灵活,由中间代理负责缓 ...
SpringBoot
1.常用注解@Bean
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
Vue Router
1.简介
用 Vue + Vue Router 创建单页应用非常简单:通过 Vue.js,我们已经用组件组成了我们的应用。当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们。下面是一个基本的例子:
12345678910111213141516<script src="https://unpkg.com/vue@3"></script><script src="https://unpkg.com/vue-router@4"></script><div id="app"> <h1>Hello App!</h1> <p> <!--使用 router-link 组件进行导航 --> <!--通过传递 `to` 来指定链接 --> <!--`<router-link>` 将呈现一个带有正确 `href` 属 ...