开篇词 | 读论文是成为优秀工程师的成年礼01 | 什么是大数据:从GFS到Dataflow,12年大数据生态演化图02 | 学习方法:建立你的大数据知识网络
03 | The Google File System (一): Master的三个身份04 | The Google File System (二): 如何应对网络瓶颈?05 | The Google File System (三): 多写几次也没关系06 | MapReduce(一):源起Unix的设计思想07 | MapReduce(二):不怕失败的计算框架08 | Bigtable(一):错失百亿的Friendster09 | Bigtable(二):不认识“主人”的分布式架构10 | Bigtable(三):SSTable存储引擎详解11 | 通过Thrift序列化:我们要预知未来才能向后兼容吗?12 | 分布式锁Chubby(一) :交易之前先签合同13 | 分布式锁Chubby(二) :众口铄金的真相14 | 分布式锁Chubby(三) :移形换影保障高可用
15 | Hive:来来去去的DSL,永生不死的SQL16 | 从Dremel到Parquet(一):深入剖析列式存储17 | 从Dremel到Parquet(二):他山之石的MPP数据库18 | Spark:别忘了内存比磁盘快多少19 | Megastore(一):全国各地都能写入的数据库20 | Megastore(二):把Bigtable玩出花来21 | Megastore(三):让Paxos跨越“国界”22 | Spanner(一):“重写”Bigtable和Megastore23 | Spanner(二):时间的悖论24 | Spanner(三):严格串行化的分布式系统
25 | 从S4到Storm(一):当分布式遇上实时计算26 | 从S4到Storm(二):位运算是个好东西27 | Kafka(一):消息队列的新标准28 | Kafka(二):从Lambda到Kappa,流批一体计算的起源29 | Dataflow(一):正确性、容错和时间窗口30 | Dataflow(二):MillWheel,一个早期实现31 | Dataflow(三):一个统一的编程模型
复习课(一)| The Google File System复习课(二)| MapReduce复习课(三)| Bigtable复习课(四)| Thrift复习课(五)| Chubby复习课(六)| Hive复习课(七)| Dremel复习课(八)| Resilient Distributed Datasets复习课(九)| Megastore复习课(十)| Spanner
加餐1 | 选择和努力同样重要:聊聊如何读论文和选论文加餐2 | 设置你的学习“母题”:如何选择阅读材料?加餐3 | 我该使用什么样的大数据系统?
32 | Raft(一):不会背叛的信使33 | Raft(二):服务器增减的“自举”实现34 | Borg(一):当电力成为成本瓶颈35 | Borg(二):互不“信任”的调度系统36 | 从Omega到Kubernetes:哺育云原生的开源项目
用户故事 | 陈煌:唯有自强不息,方能屹立不倒用户故事 | 黄涛:水滴石穿、坚持不懈,必能有所精进用户故事 | 许灵:不抛弃不放弃用户故事 | 核桃:95后的技术成长之路
37 | 当数据遇上AI,Twitter的数据挖掘实战(一)38 | 当数据遇上AI,Twitter的数据挖掘实战(二)39 | 十年一梦,一起来看Facebook的数据仓库变迁(一)40 | 十年一梦,一起来看Facebook的数据仓库变迁(二)
结束语 | 长风破浪会有时,直挂云帆济沧海