厦门大学计算机科学系研究生课程
获取教材和讲义 PPT 等各种课程资料请访问 http://dblab.xmu.edu.cn/node/422
=课程教材由林子雨老师根据网络资料编著=
=从数据库研究人员的角度阐述大数据技术=
《大数据技术基础》
(版本号:2013 年 12 月 13 日第一版)
厦门大学计算机科学系教师 林子雨 编著
http://www.cs.xmu.edu.cn/linziyu
2013 年 9 月
前言
本教程由厦门大学计算机科学系教师林子雨编著,可以作为计算机专业研究生课程《大
数据技术基础》的辅助教材。
本教程共 13 章,内容包括:第 1 章 大数据概述、第 2 章 大数据关键技术与挑战、第
3 章 Hadoop、第 4 章 MapReduce、第 5 章 HDFS、第 6 章 Zookeeper、第 7 章 HBase、第 8
章 流计算、第 9 章 图计算、第 10 章 NoSQL 数据库、第 11 章 云数据库、第 12 章 Google
Spanner 和第 13 章 Google Dremel。
本教程由林子雨老师团队合力完成,编写工作分工如下:林子雨负责编写第 1 章、第 2
章、第 3 章、第 4 章、第 5 章、第 6 章、第 7 章、第 10 章、第 11 章和第 12 章;蔡珉星负
责编写第 8 章,李雨倩负责编写第 9 章,叶林宝负责编写第 13 章。
本教程是林子雨通过大量阅读、收集、整理各种资料后精心制作的学习材料,与广大数
据库爱好者共享,仅做学术交流之用,请读者不要将此教程用于商业用途。教程中的内容大
部分来自网络资料和书籍,一部分是自己撰写。对于自写内容,林子雨老师拥有著作权。感
谢林子雨老师团队的多位同学的大量协助工作,包括厦门大学计算机科学系 2011 级研究生
赖明星同学、2012 级研究生刘颖杰和叶林宝同学、2013 级研究生蔡珉星、李雨倩同学,他
们为本教程的撰写做了大量积极的贡献,包括资料收集、整理、讲义 PPT 制作等。
本教程 PDF 文档及其全套教学 PPT 可以通过网络免费下载和使用(下载地址:
http://dblab.xmu.edu.cn/node/422)。教程中可能存在一些问题,欢迎读者提出宝贵意见和建
议!
本教程已经应用于厦门大学计算机科学系研究生课程《大数据技术基础》,欢迎访问
2013 班级网站 http://dblab.xmu.edu.cn/node/423。
林子雨的 E-mail 是:ziyulin@xmu.edu.cn。
林子雨的个人主页是:http://www.cs.xmu.edu.cn/linziyu。
林子雨于厦门大学海韵园
2013 年 9 月
《大数据技术基础》 林子雨 编著 目录
目 录
第 1 章 大数据概述 ......................................................................................................................... 1
1.1 大数据概念 ............................................................................................................... 1
1.2 大数据的产生和应用 ............................................................................................... 4
1.3 大数据作用 ............................................................................................................... 5
1.4 大数据与大规模数据、海量数据的差别 ............................................................... 6
1.5 典型的大数据应用实例 ........................................................................................... 7
1.5.1 从谷歌流感趋势看大数据的应用价值 ................................................................... 7
1.5.2 大数据在医疗行业的应用 ....................................................................................... 8
1.5.3 大数据在能源行业的应用 ....................................................................................... 8
1.5.4 大数据在通信行业的应用 ....................................................................................... 8
1.5.5 大数据在零售业的应用 ........................................................................................... 9
1.6 从数据库到大数据 ................................................................................................... 9
1.7 大数据与云计算 ..................................................................................................... 11
1.8 大数据与物联网 ..................................................................................................... 13
1.9 对大数据的错误认识 ............................................................................................. 14
1.10 大数据技术 ............................................................................................................. 15
1.11 大数据存储和管理技术 ......................................................................................... 17
1.11.1 分布式缓存 ............................................................................................................. 17
1.11.2 分布式数据库 ......................................................................................................... 19
1.11.3 分布式文件系统 ..................................................................................................... 20
1.11.4 NoSQL ...................................................................................................................... 21
1.12 大数据生态系统 ..................................................................................................... 21
本章小结......................................................................................................................................... 22
参考文献......................................................................................................................................... 22
第 2 章 大数据关键技术与挑战 ................................................................................................... 24
2.1 大数据处理的基本流程 ......................................................................................... 24
2.1.1 数据抽取与集成 ..................................................................................................... 25
2.1.2 数据分析 ................................................................................................................. 26
2.1.3 数据解释 ................................................................................................................. 28
2.2 大数据处理模型 ..................................................................................................... 28
2.2.1 大数据之快和处理模型 ......................................................................................... 28
2.2.2 流处理 ..................................................................................................................... 33
2.2.3 批处理 ..................................................................................................................... 34
2.3 大数据关键技术 ..................................................................................................... 36
2.3.1 文件系统 ................................................................................................................. 37
2.3.2 数据库系统 ............................................................................................................. 37
2.3.3 索引和查询技术 ..................................................................................................... 39
2.3.4 数据分析技术 ......................................................................................................... 41
2.4 大数据处理工具 ..................................................................................................... 42
2.5 大数据时代面临的新挑战 ..................................................................................... 43
2.5.1 大数据集成 ............................................................................................................. 43
《大数据技术基础》 林子雨 编著 目录
2.5.2 大数据分析 ............................................................................................................. 44
2.5.3 大数据隐私问题 ..................................................................................................... 45
2.5.4 大数据能耗问题 ..................................................................................................... 46
2.5.5 大数据处理与硬件的协同 ..................................................................................... 47
2.5.6 大数据管理易用性问题 ......................................................................................... 48
2.5.7 性能测试基准 ......................................................................................................... 50
本章小结......................................................................................................................................... 51
参考文献......................................................................................................................................... 51
第 3 章 Hadoop ............................................................................................................................... 52
3.1 Hadoop 概述 ........................................................................................................... 52
3.2 Hadoop 发展简史 ................................................................................................... 53
3.3 Hadoop 的功能与作用 ........................................................................................... 55
3.4 为什么不用关系型数据库管理系统 ..................................................................... 56
3.5 Hadoop 的优点 ....................................................................................................... 57
3.6 Hadoop 的应用现状和发展趋势 ........................................................................... 58
3.7 Hadoop 项目及其结构 ........................................................................................... 59
3.8 Hadoop 的体系结构 ............................................................................................... 61
3.8.1 HDFS 的体系结构.................................................................................................. 62
3.8.2 MapReduce 的体系结构 ........................................................................................ 63
3.9 Hadoop 与分布式开发 ........................................................................................... 63
3.10 Hadoop 应用案例 ................................................................................................... 66
本章小结......................................................................................................................................... 66
参考文献......................................................................................................................................... 67
第 4 章 MapReduce ......................................................................................................................... 68
4.1 分布式并行编程: 编程方式的变革 ...................................................................... 68
4.2 MapReduce 模型概述 ............................................................................................ 69
4.3 Map 和 Reduce 函数 .............................................................................................. 70
4.4 MapReduce 工作流程 ............................................................................................ 71
4.4.1 工作流程概述 ......................................................................................................... 71
4.4.2 MapReduce 各个执行阶段 .................................................................................... 72
4.4.3 Shuffle 过程详解 .................................................................................................... 77
4.4.3.1 map 端的 shuffle 过程 ............................................................................................ 78
4.4.3.2 reduce 端的 shuffle 过程 ........................................................................................ 80
4.5 并行计算的实现 ..................................................................................................... 82
4.5.1 数据分布存储 ......................................................................................................... 82
4.5.2 分布式并行计算 ..................................................................................................... 83
4.5.3 本地计算 ................................................................................................................. 85
4.5.4 任务粒度 ................................................................................................................. 85
4.5.5 Partition ................................................................................................................... 85
4.5.6 Combine .................................................................................................................. 86
4.5.7 Reduce 任务从 Map 任务节点取中间结果 ........................................................... 86
4.5.8 任务管道 ................................................................................................................. 86
4.6 实例分析:WordCount .......................................................................................... 86
4.6.1 WordCount 设计思路 ............................................................................................. 87
《大数据技术基础》 林子雨 编著 目录
4.6.2 WordCount 代码 ..................................................................................................... 88
4.6.3 过程解释 ................................................................................................................. 89
4.7 新 MapReduce 框架 Yarn ....................................................................................... 92
4.7.1 原 Hadoop MapReduce 框架的问题 ...................................................................... 93
4.7.2 新 Hadoop Yarn 框架原理及运作机制 .................................................................. 94
4.7.3 新旧 Hadoop MapReduce 框架比对 ...................................................................... 96
本章小结......................................................................................................................................... 97
参考文献......................................................................................................................................... 97
第 5 章 HDFS ................................................................................................................................... 98
5.1 HDFS 的假设与目标.............................................................................................. 98
5.2 HDFS 的相关概念.................................................................................................. 99
5.2.1 块(Block) ........................................................................................................... 99
5.2.2 NameNode 和 DataNode ...................................................................................... 100
5.3 HDFS 体系结构 ................................................................................................... 101
5.4 HDFS 命名空间 ................................................................................................... 101
5.5 HDFS 存储原理 ................................................................................................... 102
5.5.1 冗余数据保存 ....................................................................................................... 102
5.5.2 数据存取策略 ....................................................................................................... 102
5.6 通讯协议 ............................................................................................................... 103
5.7 数据错误和异常 ................................................................................................... 104
5.8 从 HDFS 看分布式文件系统的设计需求 ........................................................... 104
本章小结....................................................................................................................................... 107
参考文献....................................................................................................................................... 107
第 6 章 Zookeeper ....................................................................................................................... 108
6.1 Zookeeper 简介 ..................................................................................................... 108
6.1.1 系统架构 ....................................................................................................... 108
6.1.2 设计目的 ....................................................................................................... 109
6.1.3 特点 ............................................................................................................... 110
6.2 Zookeeper 的工作原理 ......................................................................................... 111
6.2.1 选主流程 ....................................................................................................... 111
6.2.2 同步流程 ....................................................................................................... 114
6.2.3 工作流程 ....................................................................................................... 115
6.3 Zookeeper 的数据模型 ......................................................................................... 117
6.4 Zookeeper 的典型应用场景 ................................................................................. 119
6.4.1 统一命名服务 ............................................................................................... 119
6.4.2 配置管理 ....................................................................................................... 120
6.4.3 集群管理 ....................................................................................................... 120
6.4.4 共享锁 ........................................................................................................... 122
6.4.5 队列管理 ....................................................................................................... 122
本章小结....................................................................................................................................... 124
参考文献....................................................................................................................................... 124
第 7 章 HBase ............................................................................................................................... 124
7.1 HBase 简介 ........................................................................................................... 125
7.2 HBase 使用场景和成功案例 ............................................................................... 126