大数据技术原理与应用

2015年人民邮电出版社出版的图书
《大数据技术原理与应用》是2015年8月1日人民邮电出版社出版的图书， 作者是林子雨。
该书主要紧紧围绕“构建知识体系、阐明基本原理、引导初级实践、了解相关应用”的指导思想，对大数据知识体系进行系统梳理，做到“有序组织、去粗取精、由浅入深、渐次展开”。
内容简介
大数据作为继云计算、物联网之后IT行业又一颠覆性的技术，备受关注。大数据处不在，包括金融、汽车、零售、餐饮、电信、能源、政务、医疗、体育、娱乐等在内的社会各行各业，都融入了大数据的印迹，大数据对人类的社会生产和生活必将产生重大而深远的影响。
大数据时代的到来，迫切需要高校及时建立大数据技术课程体系，为社会培养和输送一大批具备大数据专业素养的高级人才，满足社会对大数据人才日益旺盛的需求。本书定位为大数据技术入门教材，为读者搭建起通向“大数据知识空间”的桥梁和纽带。本书将系统梳理总结大数据相关技术，介绍大数据技术的基本原理和大数据主要应用，帮助读者形成对大数据知识体系及其应用领域的轮廓性认识，为读者在大数据领域“深耕细作”奠定基础、指明方向。在本书的基础上，感兴趣的读者可以通过其他诸如《Hadoop权威指南》等工具书，继续深入学习和实践大数据相关技术。
前言
本书共分四大部分，包括大数据基础篇、大数据存储篇、大数据处理与分析篇和大数据应用篇。
在大数据基础篇中，第一章介绍大数据的基本概念和应用领域，并阐述大数据、云计算和物联网的相互关系；第二章介绍大数据处理架构Hadoop，由于Hadoop已经成为应用最为广泛的大数据技术，因此，本书的大数据相关技术主要围绕Hadoop展开，包括Hadoop MapReduce、HDFS和HBase，因此，该章是后面其他章节（第三、四、七章）内容的基础。在大数据存储篇中，用五个章节（第三、四、五、六章）的内容，分别介绍了大数据存储相关技术的概念与原理，包括分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库和云数据库。在大数据处理与分析篇，首先在第七章介绍了大数据处理和分析的核心技术——分布式并行编程模型MapReduce，然后，在第八章和第九章分别介绍了大数据时代两种新兴的数据分析技术——流计算和图计算，最后在第十章简单介绍了可视化技术。在大数据应用篇，用三章（第十一、十二、十三）内容介绍了大数据在互联网、生物医学和物流等各个领域的典型应用。
本书面向高校计算机专业和信息管理等相关专业的学生，可以作为专业必修课或选修课教材。在教学过程中，建议安排32个授课学时，16个教学周，每周2学时，每个章节的具体学时分配如下：第一、二、五、六、八、十、十一每个章节安排2个学时；第三、四、九章每个章节安排4个学时；第七章安排6个学时；第十二、十三章这两章内容由学生自学完成。
本书由林子雨执笔。在撰写过程中，厦门大学计算机科学系硕士研究生刘颖杰、叶林宝、蔡珉星、李雨倩、谢荣东、罗道文以及本科生黄梓铭、李粲等同学做了大量辅助性工作，在此，向这些同学的辛勤工作表示衷心的感谢。
本书官方网站，提供教学PPT和相关资料下载，并接受错误反馈和发布教材勘误信息。
本书在撰写过程中，我参考了大量国内外教材、专著、论文和资料，对大数据知识进行了系统梳理，有选择性地把一些重要知识纳入本书。本书也是我多年在数据科学领域从事教学、科研、产业方面工作的系统总结。但是，本人才疏学浅，难免有许多不足之处，望学术同仁不吝赐教。
厦门大学计算机科学系数据库实验室
林子雨
2015年3月，于厦门
作者简介
林子雨
林子雨，男，1978年出生，博士，现为厦门大学计算机科学系副教授，曾任厦门大学信息科学与技术学院院长助理、晋江市发展和改革局副局长。现为中国计算机学会数据库专业委员会委员，中国计算机学会信息系统专业委员会委员，厦门市计算机学会理事。中国高校首个“数字教师”提出者和建设者，厦门大学数据库实验室负责人，厦门大学云计算与大数据研究中心主要建设者和骨干成员。在数据库、数据仓库、数据挖掘、大数据、云计算和物联网等领域有着十多年的知识积累，对各个领域知识都有比较深入的了解，有比较宽泛的视野，将相关大数据知识综合成一本适合本科和研究生教学的教材。
于2001年获得福州大学水利水电专业学士学位，2005年获得厦门大学计算机专业硕士学位，2009年获得北京大学计算机专业博士学位。主要研究方向为数据库、数据仓库、数据挖掘、大数据、云计算和物联网，并以第一作者身份在《软件学报》《计算机学报》和《计算机研究与发展》等国家重点期刊以及国际学术会议上发表多篇学术论文。作为项目负责人主持的科研项目包括1项国家自然科学青年基金项目(No.61303004)、1项福建省自然科学青年基金项目(No.2013J05099)和1项中央高校基本科研业务费项目(No.2011121049)。
图书目录
第一篇大数据基础
第1章大数据概述
1．1大数据时代
1．1．1第三次信息化浪潮
1．1．2信息科技为大数据时代
提供技术支撑
1．1．3数据产生方式的变革促成
大数据时代的来临
1．1．4大数据的发展历程
1．2大数据的概念
1．2．1数据量大
1．2．2数据类型繁多
1．2．3处理速度快
1．2．4价值密度低
1．3大数据的影响
1．3．1大数据对科学研究的影响
1．3．2大数据对思维方式的影响
1．3．3大数据对社会发展的影响
1．3．4大数据对就业市场的影响
1．3．5大数据对人才培养的影响
1．4大数据的应用
1．5大数据关键技术
1．6大数据计算模式
1．6．1批处理计算
1．6．2流计算
1．6．3图计算
1．6．4查询分析计算
1．7大数据产业
1．8大数据与云计算、物联网
1．8．1云计算
1．8．2物联网
1．8．3大数据与云计算、物联网的关系
1．9本章小结
1．10习题
第2章大数据处理架构Hadoop
2．1概述
2．1．1Hadoop简介
2．1．2Hadoop的发展简史
2．1．3Hadoop的特性
2．1．4Hadoop的应用现状
2．2Hadoop的项目结构
2．2．1Common
2．2．2Avro
2．2．3HDFS
2．2．4HBase
2．2．5MapReduce
2．2．6Zookeeper
2．2．7Hive
2．2．8Pig
2．2．9Sqoop
2．2．10Chukwa
2．3Hadoop的安装与使用
2．3．1创建Hadoop用户
2．3．2Java的安装
2．3．3SSH登录权限设置
2．3．4安装单机Hadoop
2．3．5Hadoop伪分布式安装
2．4本章小结
2．5习题
第二篇大数据存储
第3章Hadoop分布式文件系统
3．1分布式文件系统
3．1．1计算机集群结构
3．1．2分布式文件系统的结构
3．1．3分布式文件系统的设计需求
3．2HDFS简介
3．3HDFS的相关概念
3．3．1块
3．3．2名称节点和数据节点
3．4HDFS体系结构
3．4．1概述
3．4．2HDFS命名空间管理
3．4．3通信协议
3．4．4客户端
3．4．5HDFS体系结构的局限性
3．5HDFS的存储原理
3．5．1冗余数据的保存
3．5．2数据存取策略
3．5．3数据错误与恢复
3．6HDFS的数据读写过程
3．6．1读数据的过程
3．6．2写数据的过程
3．7HDFS编程实践
3．7．1HDFS常用命令
3．7．2HDFS的Web界面
3．7．3HDFS常用JavaAPI及应用实例
3．8本章小结
3．9习题
第4章分布式数据库HBase
4．1概述
4．1．1从BigTable说起
4．1．2HBase简介
4．1．3HBase与传统关系数据库的
对比分析
4．2HBase访问接口
4．3HBase数据模型
4．3．1数据模型概述
4．3．2数据模型的相关概念
4．3．3数据坐标
4．3．4概念视图
4．3．5物理视图
4．3．6面向列的存储
4．4HBase的实现原理
4．4．1HBase的功能组件
4．4．2表和Region
4．4．3Region的定位
4．5HBase运行机制
4．5．1HBase系统架构
4．5．2Region服务器的工作原理
4．5．3Store的工作原理
4．5．4HLog的工作原理
4．6HBase编程实践
4．6．1HBase常用的Shell命令
4．6．2HBase常用的JavaAPI及
应用实例
4．7本章小结
4．8习题
第5章NoSQL数据库
5．1NoSQL简介
5．2NoSQL兴起的原因
5．2．1关系数据库法满足Web2．0的
需求
5．2．2关系数据库的关键特性在Web2．
时代成为"鸡肋"
5．3NoSQL与关系数据库的比较
5．4NoSQL的四大类型
5．4．1键值数据库
5．4．2列族数据库
5．4．3文档数据库
5．4．4图形数据库
5．5NoSQL的三大基石
5．5．1CAP
5．5．2BASE
5．5．3最终一致性
5．6从NoSQL到NewSQL数据库
5．7本章小结
5．8习题
第6章云数据库
6．1云数据库概述
6．1．1云计算是云数据库兴起的
基础
6．1．2云数据库的概念
6．1．3云数据库的特性
6．1．4云数据库是个性化数据存储
需求的理想选择
6．1．5云数据库与其他数据库的关系
6．2云数据库产品
6．2．1云数据库厂商概述
6．2．2Amazon的云数据库产品
6．2．3Google的云数据库产品
6．2．4微软的云数据库产品
6．2．5其他云数据库产品
6．3云数据库系统架构
6．3．1UMP系统概述
6．3．2UMP系统架构
6．3．3UMP系统功能
6．4云数据库实践
6．4．1阿里云RDS简介
6．4．2RDS中的概念
6．4．3购买和使用RDS数据库
6．4．4将本地数据库迁移到云端RDS数据库
6．5本章小结
6．6习题
第三篇大数据处理与分析
第7章MapReduce
7．1概述
7．1．1分布式并行编程
7．1．2MapReduce模型简介
7．1．3Map和Reduce函数
7．2MapReduce的工作流程
7．2．1工作流程概述
7．2．2MapReduce的各个执行阶段
7．2．3Shuffle过程详解
7．3实例分析：WordCount
7．3．1WordCount的程序任务
7．3．2WordCount的设计思路
7．3．3MapReduce的具体执行过程
7．3．4一个WordCount执行过程的
实例
7．4MapReduce的具体应用
7．4．1MapReduce在关系代数
运算中的应用
7．4．2分组与聚合运算
7．4．3矩阵-向量乘法
7．4．4矩阵乘法
7．5MapReduce编程实践
7．5．1任务要求
7．5．2编写Map处理逻辑
7．5．3编写Reduce处理逻辑
7．5．4编写main方法
7．5．5编译打包代码以及运行程序
7．6本章小结
7．7习题
第8章流计算
8．1流计算概述
8．1．1静态数据和流数据
8．1．2批量计算和实时计算
8．1．3流计算的概念
8．1．4流计算与Hadoop
8．1．5流计算框架
8．2流计算的处理流程
8．2．1概述
8．2．2数据实时采集
8．2．3数据实时计算
8．2．4实时查询服务
8．3流计算的应用
8．3．1应用场景1：实时分析
8．3．2应用场景2：实时交通
8．4开源流计算框架Storm
8．4．1Storm简介