
本书首先从大数据技术概述出发,给出大数据领域的技术概貌及相关应用场景,从而使读者对大数据概念有清晰的认识;其次,本书采取topdown模式,先从计算广告这一具有代表性的应用实践着手,阐明大数据技术是如何应用并发挥效用的;再次,依次介绍大数据采集与处理、大数据存储与查询、大数据计算与分析等关键技术;最后,将关键技术引申到两类重要的大数据应用技术: 一类是Spark和机器学习应用,另一类是数据可视化应用。以此构建了一个大数据分析技术的基本闭环。除了内容的闭环体系之外,本书的另一大特色是将项目实践拆解融入各项关键技术中,从而实现理论与实践的有机融合,满足“新工科”建设的首要需求。
本书可作为高等院校计算机类专业的大数据分析、应用方面的理论或实践课程的教材,也可供自学者及从事计算机应用、大数据开发等的工程技术人员参考。
一、 系列教材背景
人类已经进入智能时代,云计算、大数据、物联网、人工智能、机器人、量子计算等是这个时代最重要的技术热点。为了适应和满足时代发展对人才培养的需要,2017年2月以来,教育部积极推进新工科建设,先后形成了“复旦共识”“天大行动”“北京指南”,并发布了《教育部高等教育司关于开展新工科研究与实践的通知》《教育部办公厅关于推荐新工科研究与实践项目的通知》,全力探索形成领跑全球工程教育的中国模式、中国经验,助力高等教育强国建设。新工科有两个内涵: 一是新的工科专业;二是传统工科专业的新需求。新工科建设将促进一批新专业的发展,这批新专业有的是依托于现有计算机类专业派生、扩展而成的,有的是多个专业有机整合而成的。由计算机类专业派生、扩展形成的新工科专业有计算机科学与技术、软件工程、网络工程、物联网工程、信息管理与信息系统、数据科学与大数据技术等。由计算机类学科交叉融合形成的新工科专业有网络空间安全、人工智能、机器人工程、数字媒体技术、智能科学与技术等。
在新工科建设的“九个一批”中,明确提出“建设一批体现产业和技术最新发展的新课程”“建设一批产业急需的新兴工科专业”。新课程和新专业的持续建设,都需要以适应新工科教育的教材作为支撑。由于各个专业之间的课程相互交叉,但是又不能相互包含,所以在选题方向上,既考虑由计算机类专业派生、扩展形成的新工科专业的选题,又考虑由计算机类专业交叉融合形成的新工科专业的选题,特别是网络空间安全专业、智能科学与技术专业的选题。基于此,清华大学出版社计划出版“面向新工科专业建设计算机系列教材”。
二、 教材定位
教材使用对象为“211工程”高校或同等水平及以上高校计算机类专业及相关专业学生。三、 教材编写原则
(1) 借鉴Computer Science Curricula 2013(以下简称CS2013)。CS2013的核心知识领域包括算法与复杂度、体系结构与组织、计算科学、离散结构、图形学与可视化、人机交互、信息保障与安全、信息管理、智能系统、网络与通信、操作系统、基于平台的开发、并行与分布式计算、程序设计语言、软件开发基础、软件工程、系统基础、社会问题与专业实践等内容。
(2) 处理好理论与技能培养的关系,注重理论与实践相结合,加强对学生思维方式的训练和计算思维的培养。计算机专业学生能力的培养特别强调理论学习、计算思维培养和实践训练。本系列教材以“重视理论,加强计算思维培养,突出案例和实践应用”为主要目标。
(3) 为便于教学,在纸质教材的基础上,融合多种形式的教学辅助材料。每本教材可以有主教材、教师用书、习题解答、实验指导等。特别是在数字资源建设方面,可以结合当前出版融合的趋势,做好立体化教材建设,可考虑加上微课、微视频、二维码、MOOC等扩展资源。
〖3〗大数据分析技术与应用实践出版说明〖3〗四、 教材特点〖*2〗1. 满足新工科专业建设的需要系列教材涵盖计算机科学与技术、软件工程、物联网工程、数据科学与大数据技术、网络空间安全、人工智能等专业的课程。
2. 案例体现传统工科专业的新需求
编写时,以案例驱动,任务引导,特别是有一些新应用场景的案例。
3. 循序渐进,内容全面
讲解基础知识和实用案例时,由简单到复杂,循序渐进,系统讲解。
4. 资源丰富,立体化建设
除了教学课件外,还可以提供教学大纲、教学计划、微视频等扩展资源,以方便教学。
五、 优先出版〖*2〗1. 精品课程配套教材主要包括国家级或省级的精品课程和精品资源共享课的配套教材。
2. 传统优秀改版教材
对于已经出版过的优秀教材,经过市场认可,由于新技术的发展,给图书配上新的教学形式、教学资源,计划改版的教材。
3. 前沿技术与热点教材
反映计算机前沿和当前热点的相关教材,例如云计算、大数据、人工智能、物联网、网络空间安全等方面的教材。
六、 联系方式
联系人: 白立军
联系电话: 01083470179
联系和投稿邮箱: bailj@tup.tsinghua.edu.cn
“面向新工科专业建设计算机系列教材”编委会
2019年6月
主任:
张尧学清华大学计算机科学与技术系教授中国工程院院士/教育部高等学校软件工程专业教学指导委员会主任委员
副主任:
陈刚浙江大学计算机科学与技术学院院长/教授
卢先和清华大学出版社常务副总编辑、
副社长/编审
委员:
毕胜大连海事大学信息科学技术学院院长/教授
蔡伯根北京交通大学计算机与信息技术学院院长/教授
陈兵南京航空航天大学计算机科学与技术学院院长/教授
成秀珍山东大学计算机科学与技术学院院长/教授
丁志军同济大学计算机科学与技术系系主任/教授
董军宇中国海洋大学信息科学与工程学院副院长/教授
冯丹华中科技大学计算机学院院长/教授
冯立功战略支援部队信息工程大学网络空间安全学院院长/教授
高英华南理工大学计算机科学与工程学院副院长/教授
桂小林西安交通大学计算机科学与技术学院教授
郭卫斌华东理工大学计算机科学与工程系系主任/教授
郭文忠福州大学数学与计算机科学学院院长/教授
郭毅可上海大学计算机工程与科学学院院长/教授
过敏意上海交通大学计算机科学与工程系教授
胡瑞敏西安电子科技大学网络与信息安全学院院长/教授
黄河燕北京理工大学计算机学院院长/教授
雷蕴奇厦门大学计算机科学系教授
李凡长苏州大学计算机科学与技术学院院长/教授
李克秋天津大学计算机科学与技术学院院长/教授
李肯立湖南大学信息科学与工程学院院长/教授
李向阳中国科学技术大学计算机科学与技术学院执行院长/教授
梁荣华浙江工业大学计算机科学与技术学院执行院长/教授
刘延飞火箭军工程大学基础部副主任/教授
陆建峰南京理工大学计算机科学与工程学院副院长/教授
罗军舟东南大学计算机科学与工程学院教授
吕建成四川大学计算机学院(软件学院)院长/教授
吕卫锋北京航空航天大学计算机学院院长/教授
马志新兰州大学信息科学与工程学院副院长/教授
毛晓光国防科技大学计算机学院副院长/教授
明仲深圳大学计算机与软件学院院长/教授
彭进业西北大学信息科学与技术学院院长/教授
钱德沛中山大学数据科学与计算机学院院长/教授
申恒涛电子科技大学计算机科学与工程学院院长/教授
苏森北京邮电大学计算机学院执行院长/教授
汪萌合肥工业大学计算机与信息学院院长/教授
王长波华东师范大学计算机科学与软件工程学院常务副院长/教授
王劲松天津理工大学计算机科学与工程学院院长/教授
王良民江苏大学计算机科学与通信工程学院院长/教授
王泉西安电子科技大学副校长/教授
王晓阳复旦大学计算机科学技术学院院长/教授
王义东北大学计算机科学与工程学院院长/教授
魏晓辉吉林大学计算机科学与技术学院院长/教授
文继荣中国人民大学信息学院院长/教授
翁健暨南大学信息科学技术学院执行院长/教授
吴卿杭州电子科技大学副校长/教授
武永卫清华大学计算机科学与技术系副主任/教授
肖国强西南大学计算机与信息科学学院院长/教授
熊盛武武汉理工大学计算机科学与技术学院院长/教授
徐伟陆军工程大学指挥控制工程学院院长/副教授
杨鉴云南大学信息学院院长/教授
杨燕西南交通大学信息科学与技术学院副院长/教授
杨震北京工业大学信息学部副主任/教授
姚力北京师范大学人工智能学院执行院长/教授
叶保留河海大学计算机与信息学院院长/教授
印桂生哈尔滨工程大学计算机科学与技术学院院长/教授
袁晓洁南开大学计算机学院院长/教授
张春元国防科技大学教务处处长/教授
张强大连理工大学计算机科学与技术学院院长/教授
张清华重庆邮电大学计算机科学与技术学院执行院长/教授
张艳宁西北工业大学校长助理/教授
赵建平长春理工大学计算机科学技术学院院长/教授
郑新奇 中国地质大学(北京)信息工程学院院长/教授
仲红安徽大学计算机科学与技术学院院长/教授
周勇中国矿业大学计算机科学与技术学院院长/教授
周志华南京大学计算机科学与技术系系主任/教授
邹北骥中南大学计算机学院教授
秘书长:
白立军清华大学出版社副编审〖3〗大数据分析技术与应用实践
为适应新一轮信息技术驱动的科技革命,培养新时代的工程人才,我国正积极推动“新工科”建设工作,各高校均在努力探索“新工科”建设模式与经验。在经历了“复旦共识”“天大行动”和“北京指南”三阶段后,2018年中华人民共和国教育部办公厅印发了《关于公布首批“新工科”研究与实践项目的通知》,公布了612个“新工科”建设项目,其中大数据类项目群属于核心内容之一。
大数据相关知识领域的实践性、交叉性非常强,在人才培养过程中,除了大类基础课程和计算机相关专业课程的授课之外,更侧重于在系统与应用研发,以及跨学科的交叉融合应用等方面。因此,如何将实践培育与理论教学进行有机融合,属于“新工科”大数据类项目建设的首要问题。针对这一问题,我们在课程体系改革、课程资源建设等方面做了很多尝试性的工作,并通过不断的经验积累及自我总结,形成一本从理论、技术到实践实现全方位覆盖的教材——《大数据分析技术与应用实践》。本书属于大连理工大学“新工科”系列精品教材项目的结晶,在大连理工大学计算机专业的“大数据分析技术”课程及相关实训课程中得到了应用。
本书共7章。
第1章大数据技术概述,介绍大数据技术的基本概念和应用场景。
第2章计算广告介绍与课程应用实践,介绍本课程的应用实践内容。
第3章大数据采集与处理,介绍网络爬虫和消息中间件的相关技术。
第4章大数据存储与查询,介绍分布式文件系统和分布式数据库。
第5章大数据计算与分析,介绍MapReduce原理和大数据交互式分析组件。
第6章Spark和机器学习,介绍Spark和机器学习理论,以及如何用Spark实现机器学习模型。
第7章数据可视化,介绍Python数据可视化组件Matplotlib。
通过本书的学习,读者能构建一个相对完整的大数据分析技术知识体系,并积累应用实践的经验;同时,也能从本书中体会到大连理工大学在“新工科”大数据类课程建设方面的努力。本书适合作为本科及大专院校中大数据类课程的教材及参考资料。本书得到大连理工大学“新工科”系列精品教材项目支持,在尹宝才教授的指导下,由王宇新、齐恒、杨鑫编写。本书中的实验由企业专家石子凡、吴斌、孙木鑫、苗元君原创并验证,在此特别表示感谢。
由于编者水平有限,书中难免有疏漏之处,恳请读者和同行批评指正。
编者2020年4月
第1章大数据技术概述1
1.1大数据产品诞生1
1.2什么是大数据2
1.3大数据解决的问题场景4
1.4大数据与Google5
习题17
第2章计算广告介绍与课程应用实践8
2.1计算广告8
2.1.1互联网广告介绍8
2.1.2互联网广告效果评估9
2.1.3如何计算10
2.1.4计算广告系统11
2.2应用实践12
2.2.1应用实践数据12
2.2.2CTR预测13
2.2.3项目实践1: 了解应用实践数据14
2.2.4项目实践2: 实践环境搭建14
习题215
第3章大数据采集与处理16
3.1网络爬虫16
3.1.1网络爬虫介绍16
3.1.2构建一个网络爬虫的实践经验17
3.1.3HTTP介绍18
3.1.4网页解析与CSS选择器20
3.1.5项目实践3: 抓取网页并提取标题和正文21
3.2Apache Kafka253.2.1系统架构25
3.2.2消息、主题和Schema26
3.2.3分区26
3.2.4生产者与消费者27
3.2.5代理31
3.2.6Kafka关键特性32
3.2.7项目实践4: 通过Kafka进行数据处理34
3.2.8构建一个真实数据通道需要考虑的问题37
3.3ETL、Apache Flume和其他框架39
3.3.1ETL39
3.3.2Apache Flume41
3.3.3其他大数据采集处理框架42
习题345
〖3〗大数据分析技术与应用实践〖3〗第4章大数据存储与查询46
4.1HDFS46
4.1.1从设计一个分布式系统开始46
4.1.2HDFS的架构设计48
4.1.3NameNode和DataNode51
4.1.4文件系统的名字空间52
4.1.5数据块53
4.1.6数据复制53
4.1.7文件系统元数据的持久性55
4.1.8HDFS中的文件访问权限56
4.1.9稳健性56
4.1.10文件读取剖析57
4.1.11文件写入剖析59
4.1.12文件压缩60
4.1.13项目实践5: 应用HDFS存储实践数据61
4.2HBase64
4.2.1HBase的系统架构64
4.2.2HBase的数据模型65
4.2.3HBase数据写入与存储67
4.2.4预写日志68
4.2.5HBase过滤器68
4.2.6HBase的应用场景70
4.2.7HBase与传统关系数据库的区别71
4.2.8项目实践6: 使用HBase管理用户数据71
习题475
第5章大数据计算与分析76
5.1Hadoop & MapReduce76
5.1.1用MapReduce解决一个问题77
5.1.2MapReduce模型79
5.1.3Hadoop中的MapReduce80
5.1.4Hadoop Streaming81
5.1.5MapReduce作业运行机制89
5.1.6Hadoop Shuffle92
5.1.7项目实践7: 使用MapReduce构造特征98
5.2Hive106
5.2.1Hive架构106
5.2.2Hive的数据模型108
5.2.3Hive表109
5.2.4存储格式110
5.2.5项目实践8: 使用Hive管理实践数据112
5.3Tez113
5.3.1Tez数据引擎114
5.3.2DAG114
5.3.3Tez的其他优化116
5.4特征工程116
5.4.1特征工程概述116
5.4.2特征提取117
5.4.3特征预处理121
5.4.4特征选择123
5.4.5特征降维125
习题5126
第6章Spark和机器学习127
6.1Spark127
6.1.1Spark设计理念127
6.1.2Spark RDD128
6.1.3Spark应用架构128
6.1.4项目实践9: 开始使用Spark130
6.1.5DataFrame、Dataset、Schema133
6.1.6项目实践10: 使用Spark DataFrame了解数据133
6.1.7Spark SQL134
6.1.8结构化API执行过程141
6.1.9Spark RDD存储结构实现原理143
6.1.10Spark RDD 算子144
6.1.11Shuffle147
6.1.12RDD Persistence149
6.1.13Spark 失败重试151
6.1.14闭包——变量的范围和生命周期151
6.1.15项目实践11: 使用Spark处理实践数据154
6.2机器学习理论166
6.2.1回归分析166
6.2.2聚类分析169
6.2.3分类分析172
6.2.4机器学习测试177
6.3从图像分类上详解机器学习技术181
6.4Spark机器学习192
6.4.1Spark机器学习流程193
6.4.2Spark机器学习举例195
6.4.3Parameter Server的分布式计算方法196
6.4.4项目实践12: 使用Spark ML库进行CTR预测204
习题6206
第7章数据可视化207
7.1数据可视化简介207
7.1.1可视化的挑战与发展趋势208
7.1.2Python可视化工具210
7.2Matplotlib211
7.2.1Matplotlib简介211
7.2.2项目实践13: 使用Matplotlib对数据进行简单可视化211
7.3tSNE高维数据可视化216
7.3.1tSNE基本原理217
7.3.2tSNE推导过程217
7.3.3tSNE的实质218
7.3.4项目实践14: 用Matplotlib和tSNE可视化实验效果219
习题7221
u 在数据时代,任何IT公司本质上都是数据公司,最核心的技能就是大数据技术,本书将带领你了解什么是大数据技术。
u 本书带领读者在Hadoop、MapReduce、Hive、Hbase、Spark这些耳熟能详的大数据名词中一探究竟,理解大数据分析与应用开发的核心理念。
u 本书以大数据中最炙手可热的互联网广告为实践应用,让大家充分领略到大数据技术的独特魅力。
u 本书有配套的教学课件、源代码、课程计划和教学大纲等资源,方便教学。
王宇新,博士,大连理工大学计算机科学与技术学院副教授,主管教学副院长。承担多项***和省部级教育教学改革项目,主要目标是加强大数据、人工智能等新兴技术在传统计算机专业中的教学质量。