新書推薦:
《
中文版SOLIDWORKS 2024机械设计从入门到精通(实战案例版)
》
售價:HK$
98.9
《
纯数学教程
》
售價:HK$
85.8
《
威尔士史:历史与身份的演进
》
售價:HK$
107.8
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:HK$
86.9
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:HK$
74.8
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:HK$
129.8
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:HK$
54.8
《
1911:危亡警告与救亡呼吁
》
售價:HK$
76.8
|
內容簡介: |
本书详细介绍大数据环境下的常用的数据库和相关工具,包括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大数据SQL3
1.4当前主流大数据SQL简介4
1.4.1Hive4
1.4.2Impala5
1.4.3Shark6
1.4.4Spark SQL7
1.5本章总结8
习题9
参考文献9
第2章分布式数据库HBase10
2.1HBase基础10
2.1.1体系架构10
2.1.2数据模型15
2.2HBase操作简介17
2.2.1HBase接口简介17
2.2.2HBase Shell实战17
2.2.3HBase API20
2.3HBase实战21
2.3.1实战HBase之综例21
2.3.2实战HBase之使用MapReduce构建索引22
习题26
参考文献27
第3章数据仓库工具Hive28
3.1Hive简介28
3.1.1工作原理28
3.1.2体系架构29
3.1.3计算模型30
3.1.4Hive部署模式31
3.2Hive的使用32
3.2.1Hive的数据类型32
3.2.2Hive接口汇总32
3.3实战Hive Shell33
3.3.1DDL操作33
3.3.2DML操作34
3.3.3SQL操作34
3.4实战Hive之复杂语句35
3.5实战Hive之综合示例37
3.6实战Hive API接口38
3.6.1UDF编程示例38
3.6.2UDAF编程示例39
习题40
参考文献41
第4章大数据查询系统Impala42
4.1Impala简介42
4.1.1Impala的起源42
4.1.2Impala的特点42
4.1.3Impala 前辈及竞争对手43
4.2Impala工作原理43
4.2.1Impala 设计目标44
4.2.2Impala 服务器组件44
4.2.3Impala 编程特点45
4.2.4Impala在Hadoop生态圈中的生存之道45
4.3Impala环境搭建46
4.3.1Impala 安装前的考虑47
4.3.2Impala 安装途径与安装示范50
4.4Impala操作实例61
4.4.1Impala 基本操作62
4.4.2Impala 数据库操作62
习题66
参考文献66
第5章内存数据库Spark67
5.1Spark简介67
5.1.1Spark的引入67
5.1.2Spark生态系统BDAS69
5.1.3Spark系统架构75
5.1.4Spark工作流程77
5.1.5Spark应用案例78
5.2Spark计算模型80
5.2.1Spark程序模型81
5.2.2弹性分布式数据集(RDD)81
5.2.3Spark算子84
5.3Spark工作机制85
5.3.1Spark运行机制85
5.3.2Spark调度机制87
5.3.3Spark IO机制93
5.3.4Spark通信机制94
5.3.5Spark容错机制97
5.3.6Spark Shuffle机制101
5.4Scala快速入门102
5.4.1Scala解释器103
5.4.2变量103
5.4.3函数104
5.4.4编写Scala脚本105
5.4.5while 配合if实现循环105
5.4.6foreach和 for 来实现迭代105
5.4.7类型参数化数组106
5.4.8Lists107
5.4.9使用元组(Tuples)108
5.4.10Sets和Maps108
5.4.11函数编程风格109
5.4.12读取文件110
5.5Spark环境部署110
5.5.1安装与配置Spark110
5.5.2Intellij IDEA构建Spark开发环境118
5.5.3SBT构建Spark程序121
5.5.4编译Spark程序122
5.5.5远程调试Spark程序123
5.5.6生成Spark部署包124
5.6Spark 编程案例124
5.6.1WordCount125
5.6.2Top K127
5.6.3倒排索引128
习题130
参考文献131
第6章Spark SQL132
6.1Spark SQL简介132
6.1.1Spark SQL发展历程132
6.1.2Spark SQL 架构133
6.2Spark SQL编程基础137
6.2.1数据类型及表达式137
6.2.2Spark SQL查询引擎Catalyst138
6.2.3SQL DSL API142
6.2.4Spark SQL ThriftServer和CLI144
6.2.5Spark SQL常用操作146
6.3Spark SQL实战151
6.3.1Spark SQL开发环境搭建151
6.3.2Spark SQL使用入门166
习题173
参考文献173
第7章键值数据库174
7.1概述174
7.1.1键值存储174
7.1.2键值数据库176
7.2Redis178
7.2.1简介178
7.2.2Redis数据服务及集群技术180
7.2.3Redis安装186
7.2.4Redis数据操作187
7.2.5案例:网站访问历史记录查询193
7.3Memcached198
7.3.1简介198
7.3.2Memcached缓存技术198
7.3.3Memcached安装200
7.3.4Memcached数据操作203
7.3.5Memcached分布式技术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.3Storm平台225
8.3.1Storm简介225
8.3.2Storm原理227
8.3.3Storm部署237
8.3.4案例:Maven环境下的Storm编程242
8.4Spark Streaming平台246
8.4.1Spark Streaming简介247
8.4.2Spark Streaming原理248
8.4.3案例:集群环境下的Spark Streaming编程249
习题261
参考文献262
第9章数据应用托管平台Docker263
9.1Docker技术简介263
9.1.1Docker是什么263
9.1.2Docker的架构和流程265
9.2Docker的优势和局限266
9.2.1Docker的优势266
9.2.2Docker的局限性268
9.3基于Docker的大数据系统设计270
9.3.1分布式Docker网络环境的搭建270
9.3.2Docker集群管理系统:Kubernetes271
习题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日
|
|