系统性能调优必知必会
陶辉
智链达CTO、前阿里云高级技术专家
立即订阅
5487 人已学习
课程目录
已更新 42 讲 / 共 43 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 万变不离其宗,性能优化也有章可循
免费
基础设施优化 (6讲)
01 | CPU缓存:怎样写代码能够让CPU执行得更快?
02 | 内存池:如何提升内存分配的效率?
03 | 索引:如何用哈希表管理亿级对象?
04 | 零拷贝:如何高效地传输文件?
05 | 协程:如何快速地实现高并发服务?
06 | 锁:如何根据业务场景选择合适的锁?
系统层网络优化 (7讲)
07 | 性能好,效率高的一对多通讯该如何实现?
08 | 事件驱动:C10M是如何实现的?
09 | 如何提升TCP三次握手的性能?
10 | 如何提升TCP四次挥手的性能?
11 | 如何修改TCP缓冲区才能兼顾并发数量与传输速度?
12 | 如何调整TCP拥塞控制的性能?
13 | 实战:单机如何实现管理百万主机的心跳服务?
应用层编解码优化 (6讲)
14 | 优化TLS/SSL性能该从何下手?
15 | 如何提升HTTP/1.1性能?
16 | HTTP/2是怎样提升性能的?
17 | Protobuf是如何进一步提高编码效率的?
18 | 如何通过gRPC实现高效远程过程调用?
特别放送 | 大厂面试到底在考些什么?
期中考试周 (3讲)
期中考试|行至半程,你的收获如何呢?
加餐1|特别福利:陶辉视频课精选
加餐2 |答疑精选:这些问题你都清楚吗?
分布式系统优化 (19讲)
19 | 如何通过监控找到性能瓶颈?
20 | CAP理论:怎样舍弃一致性去换取性能?
21 | AKF立方体:怎样通过可扩展性来提高性能?
大咖助场 | 李玥:高并发场景下如何优化微服务的性能?
22 | NWR算法:如何修改读写模型以提升性能?
23 | 负载均衡:选择Nginx还是OpenResty?
大咖助场|庄振运:与程序员相关的SSD性能知识
24 | 一致性哈希:如何高效地均衡负载?
25 | 过期缓存:如何防止缓存被流量打穿?
加餐3|百万并发下Nginx的优化之道
26 | 应用层多播:如何快速地分发内容?
27 | 消息队列:如何基于异步消息提升性能?
大咖助场|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(上)
大咖助场|傅健:那些年,影响我们达到性能巅峰的常见绊脚石(下)
28 | MapReduce:如何通过集群实现离线计算?
29 | 流式计算:如何通过集群实现实时计算?
加餐4 | 如何理解分布式系统?
加餐5|分布式系统的本质是什么?
30 | 如何权衡关系数据库与NoSQL数据库?
系统性能调优必知必会
15
15
1.0x
00:00/00:00
登录|注册

28 | MapReduce:如何通过集群实现离线计算?

陶辉 2020-07-22
你好,我是陶辉。
接下来的 2 节课我将介绍如何通过分布式集群优化计算任务。这一讲我们首先来看对于有边界静态数据的离线计算,下一讲再来看对无边界数据流的实时计算。
对大量数据做计算时,我们通常会采用分而治之的策略提升计算速度。比如单机上基于递归、分治思想实现的快速排序、堆排序,时间复杂度只有 O(N*logN),这比在原始数据集上工作的插入排序、冒泡排序要快得多(O(N2))。然而,当单机磁盘容量无法存放全部数据,或者受限于 CPU 频率、核心数量,单机的计算时间远大于可接受范围时,我们就需要在分布式集群上使用分治策略。
比如,大规模集群每天产生的日志量是以 TB 为单位计算的,这种日志分析任务单台服务器的处理能力是远远不够的。我们需要将计算任务分解成单机可以完成的小任务,由分布式集群并行处理后,再从中间结果中归并得到最终的运算结果。这一过程由 Google 抽象为MapReduce 模式,实现在 Hadoop 等分布式系统中。
虽然 MapReduce 已经有十多个年头的历史了,但它仍是分布式计算的基石,这种编程思想在新出现的各种技术中都有广泛的应用。比如当在单机上使用 TensorFlow 完成一轮深度学习的时间过久,或者单颗 GPU 显存无法存放完整的神经网络模型时,就可以通过 Map 思想把数据或者模型分解给多个 TensorFlow 实例,并行计算后再根据 Reduce 思想合并得到最终结果。再比如知识图谱也是通过 MapReduce 思想并行完成图计算任务的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《系统性能调优必知必会》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(2)

  • Run
    多看看算法,数据结构是没错的
    2020-07-31
  • Jeff.Smile
    能够使用mapreduce思想处理的任务是可以分解且子任务之间没有依赖关系,最后可以做合并的类型。
    2020-07-23
收起评论
2
返回
顶部