发表于2024-12-23
大数据库——高级大数据人才培养丛书 pdf epub mobi txt 电子书 下载
本书详细介绍大数据环境下的常用的数据库和相关工具,包括HBase、Hive、Impala、Spark、Spark SQL、键值数据库和流式数据库等,给出了详细的工作机理和应用方法,并给出完整的实践案例和代码。
刘鹏,清华大学博士,解放军理工大学教授、学科带头人,中国云计算专家委员会委员。
主要研究方向为信息网格和云计算,完成科研课题18项,发表论文70余篇,获部级科技进步奖6项。曾夺得国际计算机排序比赛冠军,并二次夺得全国高校科技比赛*高奖,获“全军十大学习成才标兵”、“南京十大杰出青年”和“清华大学学术新秀”等称号。2002年首倡的“网格计算池”和2003年研发的“反垃圾邮件网格”分别为云计算和云安全的前身。创办了知名的中国网格和中国云计算网站
目 录
第1章 大数据库概述 1
1.1 传统关系型数据库面临的问题 1
1.2 大数据库技术 2
1.2.1 列式数据库 2
1.2.2 内存数据库 2
1.2.3 键值数据库 3
1.2.4 流式数据库 3
1.3 大数据SQL 3
1.4 当前主流大数据SQL简介 4
1.4.1 Hive 4
1.4.2 Impala 5
1.4.3 Shark 6
1.4.4 Spark SQL 7
1.5 本章总结 8
习题 9
参考文献 9
第2章 分布式数据库HBase 10
2.1 HBase基础 10
2.1.1 体系架构 10
2.1.2 数据模型 15
2.2 HBase操作简介 17
2.2.1 HBase接口简介 17
2.2.2 HBase Shell实战 17
2.2.3 HBase API 20
2.3 HBase实战 21
2.3.1 实战HBase之综例 21
2.3.2 实战HBase之使用MapReduce构建索引 22
习题 26
参考文献 27
第3章 数据仓库工具Hive 28
3.1 Hive简介 28
3.1.1 工作原理 28
3.1.2 体系架构 29
3.1.3 计算模型 30
3.1.4 Hive部署模式 31
3.2 Hive的使用 32
3.2.1 Hive的数据类型 32
3.2.2 Hive接口汇总 32
3.3 实战Hive Shell 33
3.3.1 DDL操作 33
3.3.2 DML操作 34
3.3.3 SQL操作 34
3.4 实战Hive之复杂语句 35
3.5 实战Hive之综合示例 37
3.6 实战Hive API接口 38
3.6.1 UDF编程示例 38
3.6.2 UDAF编程示例 39
习题 40
参考文献 41
第4章 大数据查询系统Impala 42
4.1 Impala简介 42
4.1.1 Impala的起源 42
4.1.2 Impala的特点 42
4.1.3 Impala 前辈及竞争对手 43
4.2 Impala工作原理 43
4.2.1 Impala 设计目标 44
4.2.2 Impala 服务器组件 44
4.2.3 Impala 编程特点 45
4.2.4 Impala在Hadoop生态圈中的生存之道 45
4.3 Impala环境搭建 46
4.3.1 Impala 安装前的考虑 47
4.3.2 Impala 安装途径与安装示范 50
4.4 Impala操作实例 61
4.4.1 Impala 基本操作 62
4.4.2 Impala 数据库操作 62
习题 66
参考文献 66
第5章 内存数据库Spark 67
5.1 Spark简介 67
5.1.1 Spark的引入 67
5.1.2 Spark生态系统BDAS 69
5.1.3 Spark系统架构 75
5.1.4 Spark工作流程 77
5.1.5 Spark应用案例 78
5.2 Spark计算模型 80
5.2.1 Spark程序模型 81
5.2.2 弹性分布式数据集(RDD) 81
5.2.3 Spark算子 84
5.3 Spark工作机制 85
5.3.1 Spark运行机制 85
5.3.2 Spark调度机制 87
5.3.3 Spark I/O机制 93
5.3.4 Spark通信机制 94
5.3.5 Spark容错机制 97
5.3.6 Spark Shuffle机制 101
5.4 Scala快速入门 102
5.4.1 Scala解释器 103
5.4.2 变量 103
5.4.3 函数 104
5.4.4 编写Scala脚本 105
5.4.5 while 配合if实现循环 105
5.4.6 foreach和 for 来实现迭代 105
5.4.7 类型参数化数组 106
5.4.8 Lists 107
5.4.9 使用元组(Tuples) 108
5.4.10 Sets和Maps 108
5.4.11 函数编程风格 109
5.4.12 读取文件 110
5.5 Spark环境部署 110
5.5.1 安装与配置Spark 110
5.5.2 Intellij IDEA构建Spark开发环境 118
5.5.3 SBT构建Spark程序 121
5.5.4 编译Spark程序 122
5.5.5 远程调试Spark程序 123
5.5.6 生成Spark部署包 124
5.6 Spark 编程案例 124
5.6.1 WordCount 125
5.6.2 Top K 127
5.6.3 倒排索引 128
习题 130
参考文献 131
第6章 Spark SQL 132
6.1 Spark SQL简介 132
6.1.1 Spark SQL发展历程 132
6.1.2 Spark SQL 架构 133
6.2 Spark SQL编程基础 137
6.2.1 数据类型及表达式 137
6.2.2 Spark SQL查询引擎Catalyst 138
6.2.3 SQL DSL API 142
6.2.4 Spark SQL ThriftServer和CLI 144
6.2.5 Spark SQL常用操作 146
6.3 Spark SQL实战 151
6.3.1 Spark SQL开发环境搭建 151
6.3.2 Spark SQL使用入门 166
习题 173
参考文献 173
第7章 键值数据库 174
7.1 概述 174
7.1.1 键值存储 174
7.1.2 键值数据库 176
7.2 Redis 178
7.2.1 简介 178
7.2.2 Redis数据服务及集群技术 180
7.2.3 Redis安装 186
7.2.4 Redis数据操作 187
7.2.5 案例:网站访问历史记录查询 193
7.3 Memcached 198
7.3.1 简介 198
7.3.2 Memcached缓存技术 198
7.3.3 Memcached安装 200
7.3.4 Memcached数据操作 203
7.3.5 Memcached分布式技术 206
7.3.6 案例:论坛帖子信息缓存 207
7.4 典型应用及局限 208
7.4.1 典型应用 209
7.4.2 键值数据库局限 211
习题 211
参考文献 212
第8章 流式数据库 213
8.1 流式计算模型 213
8.1.1 流式计算概念 213
8.1.2 流式计算数据特点 215
8.1.3 流式计算典型应用 216
8.1.4 典型流式计算平台 216
8.2 流式计算关键技术 218
8.2.1 计算拓扑 218
8.2.2 消息传递 220
8.2.3 高可用性 222
8.2.4 语义保障 224
8.2.5 其他关键技术 225
8.3 Storm平台 225
8.3.1 Storm简介 225
8.3.2 Storm原理 227
8.3.3 Storm部署 237
8.3.4 案例:Maven环境下的Storm编程 242
8.4 Spark Streaming平台 246
8.4.1 Spark Streaming简介 247
8.4.2 Spark Streaming原理 248
8.4.3 案例:集群环境下的Spark Streaming编程 249
习题 261
参考文献 262
第9章 数据应用托管平台Docker 263
9.1 Docker技术简介 263
9.1.1 Docker是什么 263
9.1.2 Docker的架构和流程 265
9.2 Docker的优势和局限 266
9.2.1 Docker的优势 266
9.2.2 Docker的局限性 268
9.3 基于Docker的大数据系统设计 270
9.3.1 分布式Docker网络环境的搭建 270
9.3.2 Docker集群管理系统:Kubernetes 271
习题 277
参考文献 278
总 序
短短几年间,大数据就以一日千里的发展速度,快速实现了从概念到落地,直接带动了相关产业井喷式发展。全球多家研究机构统计数据显示,大数据产业将迎来发展黄金期:IDC预计,大数据和分析市场将从2016年的1300亿美元增长到2020年的2030亿美元以上;中国报告大厅发布的大数据行业报告数据也说明,自2017年起,我国大数据产业将迎来发展黄金期,未来2~3年的市场规模增长率将保持在35%左右。
数据采集、数据存储、数据挖掘、数据分析等大数据技术在越来越多的行业中得到应用,随之而来的就是大数据人才问题的凸显。麦肯锡预测,每年数据科学专业的应届毕业生将增加7%,然而仅高质量项目对于专业数据科学家的需求每年就会增加12%,完全供不应求。根据《人民日报》的报道,未来3~5年,中国需要180万数据人才,但目前只有约30万人,人才缺口达到150万之多。
以贵州大学为例,其首届大数据专业研究生就业率就达到100%,可以说“一抢而空”。急切的人才需求直接催热了大数据专业,国家教育部正式设立“数据科学与大数据技术”本科新专业。目前已经有两批共计35所大学获批,包括北京大学、中南大学、对外经济贸易大学、中国人民大学、北京邮电大学、复旦大学等。估计2018年会有几百所高校获批。
不过,就目前而言,在大数据人才培养和大数据课程建设方面,大部分高校仍然处于起步阶段,需要探索的还有很多。首先,大数据是个新生事物,懂大数据的老师少之又少,院校缺“人”;其次,尚未形成完善的大数据人才培养和课程体系,院校缺“机制”;再次,大数据实验需要为每位学生提供集群计算机,院校缺“机器”;最后,院校没有海量数据,开展大数据教学科研工作缺“原材料”。
其实,早在网格计算和云计算兴起时,我国科技工作者就曾遇到过类似的挑战,我有幸参与了这些问题的解决过程。为了解决网格计算问题,我在清华大学读博期间,于2001年创办了中国网格信息中转站网站,每天花几个小时收集和分享有价值的资料给学术界,此后我也多次筹办和主持全国性的网格计算学术会议,进行信息传递与知识分享。2002年,我与其他专家合作的《网格计算》教材也正式面世。
2008年,当云计算开始萌芽之时,我创办了中国云计算网站(chinacloud.cn)(在各大搜索引擎“云计算”关键词中排名第一),2010年出版了《云计算(第一版)》、2011年出版了《云计算(第二版)》、2015年出版了《云计算(第三版)》,每一版都花费了大量成本制作并免费分享对应的几十个教学PPT。目前,这些PPT的下载总量达到了几百万次之多。同时,《云计算》教材也成为国内高校的首选教材,在CNKI公布的高被引图书名单中,对于2010年以来出版的所有图书,《云计算(第一版)》在自动化和计算机领域排名全国第一。除了资料分享,在2010年,我也在南京组织了全国高校云计算师资培训班,培养了国内第一批云计算老师,并通过与华为、中兴、360等知名企业合作,输出云计算技术,培养云计算研发人才。这些工作获得了大家的认可与好评,此后我接连担任了工信部云计算研究中心专家、中国云计算专家委员会云存储组组长等职位。
近几年,面对日益突出的大数据发展难题,我也正在尝试使用此前类似的办法去应对这些挑战。为了解决大数据技术资料缺乏和交流不够通透的问题,我于2013年创办了中国大数据网站(thebigdata.cn),投入大量的人力进行日常维护,该网站目前已经在各大搜索引擎的“大数据”关键词排名中位居第一;为了解决大数据师资匮乏的问题,我面向全国院校陆续举办多期大数据师资培训班。2016年末至今,在南京多次举办全国高校/高职/中职大数据免费培训班,基于《大数据》《大数据实验手册》以及云创大数据提供的大数据实验平台,帮助到场老师们跑通了Hadoop、Spark等多个大数据实验,使他们跨过了“从理论到实践,从知道到用过”的门槛。2017年5月,还举办了全国千所高校大数据师资免费讲习班,盛况空前。
其中,为了解决大数据实验难的问题而开发的大数据实验平台,正在为越来越多高校的教学科研带去方便:2016年,我带领云创大数据(www.cstor.cn,股票代码:835305)的科研人员,应用Docker容器技术,成功开发了BDRack大数据实验一体机,它打破虚拟化技术的性能瓶颈,可以为每一位参加实验的人员虚拟出Hadoop集群、Spark集群、Storm集群等,自带实验所需数据,并准备了详细的实验手册(包含42个大数据实验)、PPT和实验过程视频,可以开展大数据管理、大数据挖掘等各类实验,并可进行精确营销、信用分析等多种实战演练。目前,大数据实验平台已经在郑州大学、西京学院、郑州升达经贸管理学院、镇江高等职业技术学校等多所院校成功应用,并广受校方好评。该平台也以云服务的方式在线提供(大数据实验平台,https://bd.cstor.cn),帮助师生通过自学,用一个月左右成为大数据动手的高手。
同时,为了解决缺乏权威大数据教材的问题,我所负责的南京大数据研究院,联合金陵科技学院、河南大学、云创大数据、中国地震局等多家单位,历时两年,编著出版了适合本科教学的《大数据》《大数据库》《大数据实验手册》等教材。另外,《数据挖掘》《虚拟化与容器》《大数据可视化》《深度学习》等本科教材也将于近期出版。在大数据教学中,本科院校的实践教学应更加系统性,偏向新技术的应用,且对工程实践能力要求更高。而高职、高专院校则更偏向于技术性和技能训练,理论以够用为主,学生将主要从事数据清洗和运维方面的工作。基于此,我们还联合多家高职院校专家准备了《云计算基础》《大数据基础》《数据挖掘基础》《R语言》《数据清洗》《大数据系统运维》《大数据实践》系列教材,目前也已经陆续进入定稿出版阶段。
此外,我们也将继续在中国大数据(thebigdata.cn)和中国云计算(chinacloud.cn)等网站免费提供配套PPT和其他资料。同时,持续开放大数据实验平台(https://bd.cstor.cn)、免费的物联网大数据托管平台万物云(wanwuyun.com)和环境大数据免费分享平台环境云(envicloud.cn),使资源与数据随手可得,让大数据学习变得更加轻松。
在此,特别感谢我的硕士导师谢希仁教授和博士导师李三立院士。谢希仁教授所著的《计算机网络》已经更新到第7版,与时俱进且日臻完美,时时提醒学生要以这样的标准来写书。李三立院士是留苏博士,为我国计算机事业做出了杰出贡献,曾任国家攀登计划项目首席科学家。他的严谨治学带出了一大批杰出的学生。
本丛书是集体智慧的结晶,在此谨向付出辛勤劳动的各位作者致敬!书中难免会有不当之处,请读者不吝赐教。我的邮箱:gloud@126.com,微信公众号:刘鹏看未来(lpoutlook)。
刘鹏 教授
于南京大数据研究院
前 言
面对大数据时代产生的海量数据,传统的关系型数据库和数据处理技术在使用中遇到了前所未有的难题,如海量数据快速访问能力受到束缚,海量数据访问缺乏灵活性,对非结构化数据处理能力薄弱,海量数据导致存储成本、维护管理成本不断增加等。如何对海量数据进行查询分析已成为所有数据库研发人员亟待解决的问题,大数据库因此应运而生。所谓的大数据库是针对传统数据库在存储、管理海量数据时显现的不足,逐渐衍生出能存储管理多种数据类型,并适用于海量数据处理的数据库技术。
《大数据》这本书于2017年1月出版,承蒙大家的喜爱,自出版以来受到广大读者的关注和好评。由于大数据技术发展迅猛,我们的大数据研发团队经过长期的研究和紧密跟踪,及时推出了《大数据库》这本教材。《大数据库》是全国高校标准教材《大数据》的姊妹篇,在内容上进行了全面互补,以确保能够更准确地反映大数据技术的最新面貌。
正如在小数据时代我们应该学习《数据库》一样,在大数据时代我们应该学习《大数据库》。本书系统地介绍了目前业界主流的四种大数据库技术,分别是列式数据库、内存数据库、键值数据库以及流式数据库。列式数据库通常用来应对海量数据的分布式存储,典型列式数据库有HBase;内存数据库是指将全部内容存放在内存中,而非像传统数据库那样存放在外部存储器中的数据库,这种数据库的读写性能很高,主要用在对性能要求极高的环境中,典型内存数据库有Spark;键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据,该模型对于IT系统的优势在于简单、易部署、高并发,典型键值数据库有Memcached、Redis;流式数据库的处理模式是将源源不断的数据视为数据流,它总是尽可能快速地分析最新的数据,并给出分析结果,也就是尽可能实现实时计算,典型流式数据库有Spark Streaming、Storm。
大数据库技术可以对海量数据进行分析处理,采用不同的技术手段挖掘价值信息并投入到应用中。因此,期望读者可以从本书中学会主流大数据库技术的理论知识和实战应用;也期望本书为大数据“创新人才”培养目标提供新思路。
本书是集体智慧的结晶,在此谨向付出辛勤劳动的各位作者致敬!书中难免会有不当之处,请读者不吝赐教。我的邮箱:gloud@126.com,微信公众号:刘鹏看未来(lpoutlook)。
刘鹏 教授
于南京大数据研究院
2017年6月6日
不错的参考书
评分挺好的~~~~~~~~~~
评分冲着最新改版而购,看封面还算可以,应该是正版吧。
评分昨天刚到货,还没有来得及看,书很新,也比较厚,希望内容也同样给力
评分好书,云计算学习必备!
评分很实用的书哦,价格也狠便宜!
评分哈哈哈哈哈哈哈哈呵呵
评分一本好书,替舍友买的,正版好评
评分学习学习,需要补充新能量
大数据库——高级大数据人才培养丛书 pdf epub mobi txt 电子书 下载