深入理解大数据:大数据处理与编程实践
作者 : 黄宜华 主编 苗凯翔 副主编
出版日期 : 2014-07-18
ISBN : 978-7-111-47325-1
适用人群 : 大学计算机专业教材,业界应用研发人员开发设计编程手
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 518
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

以大数据处理主流平台Hadoop1.0为核心,介绍Hadoop MapReduce,HDFS,HBase,以及Hive的基本设计思想、工作原理、系统构架、以及详细的大数据处理编程技术。
特点:
(1) 重点放在教读者算法设计实现,从基础算法,到应用编程案例,解决实际问题。
(2) 作者多年的教学研究实践,课程设计沉淀,可以更深入地讨论大数据。
(3) 来自业界——Intel真实的实践经验和案例积累。

图书特色

黄宜华博士,南京大学计算机科学与技术系教授、PASA大数据实验室学术带头人。中国计算机学会大数据专家委员会委员、副秘书长,江苏省计算机学会大数据专家委员会主任。于1983、1986和1997年获得南京大学计算机专业学士、硕士和博士学位。主要研究方向为大数据并行处理、云计算以及Web信息挖掘等,发表学术研究论文60多篇。2010年在Google公司资助下在本校创建并开设了“MapReduce大数据并行处理技术”课程,成为全国最早开设该课程的院校之一。因在该课程教学和人才培养方面的出色成绩获得2012年Google奖教金。目前正在开展系统化的大数据并行处理技术研究工作,主持国家和省部级科研项目以及与美国Intel公司等业界的合作研究项目多项。


苗凯翔 (Kai X. Miao) 博士,英特尔中国大数据首席技术官,中国计算机学会大数据专家委员会委员。曾担任英特尔中国区系统集成部总监、信息技术研究部门亚洲地区总监、英特尔北美地区解决方案首席架构师。于2009荣获英特尔公司首席工程师职称。在加入英特尔以前,曾在美国Rutgers与DeVry大学任教。获得北方交通大学(北京)通信学士学位、美国辛辛那提大学电机工程硕士和博士学位。发表期刊和会议研究论文多篇,并拥有21项美国专利,在各种会议上发表过上百次主题演讲,曾参与IETF、ITU 和 MIT CFP等工业标准的制定,并于2006 年担任IEEE通信杂志的联合编辑。

从计算技术的角度看,大数据处理是一种涉及到几乎所有计算机技术层面的综合性计算技术,涉及到计算机软硬件技术的方方面面。大数据研究和应用已成为产业升级与新产业崛起的重要推动力量。
作为国内第一本经过多年课堂教学实践总结而成的大数据并行处理和编程技术书籍,本书全面地介绍了大数据处理相关的基本概念和原理,着重讲述了Hadoop MapReduce大数据处理系统的组成结构、工作原理和编程模型,分析了基于MapReduce的各种大数据并行处理算法和程序设计的思想方法。适合高等院校作为MapReduce大数据并行处理技术课程的教材,同时也很适合作为大数据处理应用开发和编程专业技术人员的参考手册。
我很高兴地看到,该书已纳入了教育部计算机类专业教学指导委员会制定的计算机类专业系统能力培养计划。大数据处理是一门综合性、最能体现计算机系统能力培养的课程。把大数据处理纳入计算机类专业系统能力培养课程体系中第三层次的核心课程,作为一门起到一定“收官”作用的综合性课程,这是在计算机系统能力培养方面的一个很好的尝试。
—— 中国工程院院士、中国计算机学会大数据专家委员会主任 李国杰

作为国内最早从事大数据技术研究和教学的团队之一,南京大学黄宜华教授和他的大数据实验室同仁们在大数据技术领域已经进行了多年系统深入的研究工作,取得了卓有成效的研究成果。英特尔作为一家全球领先的计算技术公司,长期以来始终以计算技术的创新为己任。在大数据处理技术方面,我们也竭尽全力发挥出我们在软硬件平台的组合优势引领大数据技术的全面发展和推广。
这本《深入理解大数据》的力作正是我们双方在大数据领域共同努力的结晶,是以学术界和业界完美结合的方式,在融合了学术界系统化的研究教学工作和业界深度的系统和应用研发工作基础上,成功打造出的一本大数据技术佳作。相信这是一本适合软件技术人员和 IT 行业管理人员理解和掌握大数据技术的不可多得的技术书籍,也是一本适合于在校大学生和研究生学习和掌握大数据处理和编程技术的好教材。
—— 英特尔亚太研发有限公司总经理 何京翔

本书在总结多年来MapReduce并行处理技术课程教学经验和成果的基础上,与业界著名企业Intel公司的大数据技术和产品开发团队和资深工程师联合,以学术界的教学成果与业界高水平系统研发经验完美结合,在理论联系实际的基础上,在基础理论原理、实际算法设计方法以及业界深度技术三个层面上,精心组织材料编写而成。

全书的主要内容包括:
■ 大数据处理技术与Hadoop MapReduce简介
■ Hadoop系统的安装和操作管理
■ 大数据分布式文件系统HDFS
■ Hadoop MapReduce并行编程模型、框架与编程接口
■ 分布式数据库HBase
■ 分布式数据仓库Hive
■ Intel Hadoop系统优化与功能增强
■ MapReduce基础算法程序设计
■ MapReduce高级程序设计技术
■ MapReduce机器学习与数据挖掘基础算法
■ 大数据处理算法与应用编程案例

本书中算法设计章节的程序源码可在南京大学PASA大数据实验室(PASA:Parallel Algorithms,Systems,and Applications)网站上下载:
http://pasa-bigdata.nju.edu.cn/links.html

Intel Hadoop系统免费试用版下载地址:
http://www.intel.cn/idh

本书反馈意见发送邮箱:
feedback_bigdata@163.com

图书前言

2012年以来,大数据(Big Data)技术在全世界范围内迅猛发展,在全球学术界、工业界和各国政府得到了高度关注和重视,掀起了一场可与20世纪90年代的信息高速公路相提并论的发展热潮。
  大数据技术如此重要,已经被我国政府提升到国家重大发展战略的高度。2014年我国政府工作报告中指出:“设立新兴产业创业创新平台,在新一代移动通信、集成电路、大数据、先进制造、新能源、新材料等方面赶超先进,引领未来产业发展”。由此可见,大数据已经被我国政府列为推动国家科技创新和引领经济结构优化升级、赶超国际先进水平、引领国家未来产业发展的战略性计划。两会期间,CCTV中央电视台的新闻报道开创性地引入了大数据新闻报道手段,以大数据说话,高频率使用大数据报道两会重大新闻,引起了全国民众的普遍关注和兴趣。
  大数据也同样成为各发达国家政府高度关注的战略性高科技技术和产业。2012年3月,美国总统奥巴马签署并发布了一个“大数据研究发展创新计划”(Big Data R&D Initiative),投资2亿美元启动大数据技术和工具研发,这是继1993年美国宣布“信息高速公路”计划后的又一次重大科技发展部署。美国政府认为大数据是“未来的新石油”,将大数据研究上升为国家意志,认为大数据将对未来的科技与经济发展带来重大影响,一个国家拥有数据的规模和运用数据的能力将成为综合国力的重要组成部分,对数据的占有和控制也将成为国家间和企业间新的争夺焦点。在随后的近两年里,英国、法国、德国、日本等发达国家政府都纷纷推出了相应的大数据发展战略计划。
  《大数据时代》一书的作者、英国牛津大学教授、被誉为 “大数据时代预言家”的维克托·迈尔-舍恩伯格认为:“大数据开启了一次重大的时代转型”,认为大数据将带来巨大的变革,改变我们的生活、工作和思维方式,改变我们的商业模式,影响我们的经济、政治、科技和社会等各个层面。他认为,大数据将成为企业的核心竞争力,成为一种商业资本,成为企业的重要资产。
  大数据技术最大的推动力来自于行业应用需求。过去几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸性增长。动辄达到PB级规模的行业/企业大数据已经远远超出了现有传统的计算技术和信息系统的处理能力。另一方面,人们发现,大数据在带来巨大技术挑战的同时,也带来巨大的商业价值,带来巨大的技术创新与商业机遇。大数据巨大的应用需求和隐含的深度价值极大地推动了大数据技术的快速发展,促进了大数据所涉及到的各个技术层面和系统平台方面的长足发展。
  在大数据处理的众多技术和系统中,起到开创性作用、最为主流的当数Google公司在2003年发明的MapReduce技术以及随后在2007年由开源组织Apache推出的开源的Hadoop MapReduce技术和系统。目前,Hadoop已经成为全世界最为成功和最广为接受使用的主流大数据处理技术平台,在国内外几乎所有知名IT和互联网企业中都得到推广使用,成为了事实上的大数据处理工业标准。
  除了知名IT和互联网企业外,大数据技术的迅猛发展与行业应用需求的快速增长,也推动了其他各个行业对相关大数据处理与应用技术的高度关注。近年来,国内外越来越多的典型行业开始制定和启动了行业大数据处理应用开发计划,期冀使用大数据处理技术管理和分析企业大数据。然而,目前国内外的实际状况是,由于MapReduce等相关大数据处理技术发展较新,除了知名IT和互联网企业能娴熟运用外,目前大多数应用行业普遍不熟悉这方面的技术,即使很多中小规模的软件公司也不掌握这方面的开发技术,大多刚刚开始关注和学习这方面的技术。同时,由于国内外绝大多数高校对大数据技术的关注较晚,有关大数据方面的课程教学和人才培养工作未能跟上技术市场的变化和需求。这些因素使得目前技术市场上大数据技术人才严重短缺。
  幸运的是,本团队早在2010年开始即开始关注大数据处理技术,并开展了系统的大数据技术教学和研究工作。2009年底,Google中国公司大学合作部在清华大学举行了MapReduce海量数据处理技术培训班。培训班结束后,在Google中国公司大学合作部精品课程计划资助下,由本人负责在南京大学建设了MapReduce大规模数据并行处理技术课程,并自2011年开始为南京大学计算机系研究生开设了该课程,使我们成为国内最早系统性从事MapReduce大规模数据并行处理技术教学的院校之一。课程开设后取得非常好的教学效果。课程同学组队参加了2012年由中国云计算产业联盟主办的首届“中国云计算·移动互联网创新大赛”,夺得4个大数据赛题全部17个奖项中的8项大奖,获得奖金20万元;在2013年由中国计算机学会主办的“第一届中国大数据技术创新大赛”上夺得大赛唯一的一项一等奖,获得奖金10万元。本书的很多章节内容正是在总结所开设课程内容、上述大赛获奖算法以及部分同学的优秀课程设计内容基础上组织形成。
  为了满足专业技术人员学习MapReduce相关技术的需求,近几年来,国内陆续推出了一些有关Hadoop MapReduce的编程技术书籍,为计算机专业人员学习和掌握Hadoop编程技术提供了很有价值的学习资料。然而,目前出版的这些书籍,大多是参照Hadoop官方技术文档和资料整理编写而成,主要集中在对Hadoop编程接口以及简单编程示例的介绍,对MapReduce技术背后系统的工作原理、编程模型、设计思想以及编程和算法设计方法介绍不够深入和系统,使得这些编程手册性的技术书籍不太适宜作为高校课程教学或者初学者自学时的教材使用。
  根据近5年来我们开展Hadoop MapReduce大数据并行处理技术课程教学中所发现的问题和总结出的经验,相对而言,Hadoop MapReduce的基本工作原理、编程接口和简单示例程序都比较容易学习和理解。但是,学习者和程序员普遍感到困惑的是,针对稍微复杂一些的实际的大数据处理和算法设计问题(如设计实现一个机器学习和数据分析算法),由于 MapReduce并行程序设计与传统的程序设计技术方法有较大的不同,如何依据数据本身的特点以及MapReduce并行程序设计思想和并行算法设计方法,对这些实际问题分析并理清其MapReduce程序或算法设计思路、并最终完成编程实现,对此大家普遍感到有一定的困难和障碍。另一方面,在我们接触到的一些对Hadoop已有一定编程经验、希望对开源Hadoop系统的优化增强功能和深度技术做进一步了解的技术人员中,会感到现有的书籍资料中大多找不到这方面的技术内容。
  为此,我们在总结多年来MapReduce并行处理技术课程教学经验和成果的基础上,与业界著名企业Intel公司的大数据技术和产品开发团队和资深工程师联合,以学术界的教学成果与业界高水平系统研发经验完美结合,在理论联系实际的基础上,在基础理论原理、实际算法设计方法以及业界深度技术三个层面上,精心组织材料编写完成了本书。
  全书从Hadoop MapReduce技术与系统的基本原理剖析着手,在系统介绍基础理论原理、设计思想和编程模型的基础上,介绍编程框架与接口,然后着重系统化地介绍MapReduce并行算法设计与编程技术,由浅入深,循序渐进,较为全面地介绍和覆盖了基本MapReduce算法设计、高级MapReduce编程技术以及一系列较为复杂的机器学习和数据挖掘并行化算法,并介绍了来自Intel Hadoop系统产品的一系列增强功能及其深度的技术剖析;最后,为了给读者进一步介绍一些综合性和实战性的算法设计和编程案例,本书收集了一系列实战性的大数据处理和算法设计问题,这些问题来自本课程同学参加的全国性大数据大赛中的获奖算法、本课程中的优秀课程设计以及来自本团队的科研课题及业界实际的大数据应用实战案例。
  与市场上现有的一些同类书籍相比,本书主要有三大特点:第一个特点是,对MapReduce的基本工作原理和编程模型等基础理论原理有较为系统深入的阐述,让读者对MapReduce技术有一个理论上的深入理解,为后期学习和合理运用算法设计方法打下一个较为坚实的理论基础;第二个特点是,对于那些看懂了基本原理和接口、却苦于难以下手去具体设计和编程实现实际大处理处理算法问题的读者来说,本书会重点给他们讲解MapReduce并行程序和算法设计思路和方法,重点介绍和展示如何根据大数据问题本身的特点和MapReduce并行程序设计特点,将一个大数据问题或算法转化为MapReduce并行化算法设计思路和实现方法,然后再辅以详细的程序实现代码加以分析介绍;第三个特点是,对于那些有较好基础、希望了解更深入技术的读者来说,本书引入了开源技术书籍资料中所没有的来自业界产品的增强功能和深度技术内容。
  本书共分11章,分为两大部分,其中第一部分包括第1~7章,主要介绍Hadoop系统的相关技术内容;第二部分包括第8~11章,主要介绍MapReduce的编程和算法设计。
  第1章 大数据处理技术简介,简要介绍大数据并行处理技术的基本概念和技术内容,MapReduce并行计算技术设计思想和功能特点,以及Hadoop系统的基本组成和构架。
  第2章Hadoop系统的安装和操作管理,介绍Hadoop系统的安装和操作管理方法。
  第3章 大数据存储——分布式文件系统HDFS,介绍分布式文件系统Hadoop HDFS的基本组成和工作原理、HDFS文件系统操作命令、HDFS的基本编程接口和编程示例。
  第4章Hadoop MapReduce并行编程框架,介绍Hadoop MapReduce并行编程模型、框架、基本构架和工作过程以及MapReduce编程接口。
  第5章 分布式数据库HBase,介绍分布式数据库HBase的基本功能特点和组成结构、数据模型、HBase的安装与操作、HBase的编程接口和编程示例,并深度介绍HBase的读写操作特性和HBase的一些高级功能。
  第6章 分布式数据仓库Hive,介绍分布式数据仓库Hive的基本功能特点和结构组成、数据模型、Hive的安装和操作、Hive的查询语言HiveQL以及Hive JDBC编程技术。
  第7章Intel Hadoop系统优化与功能增强,介绍Hadoop Intel系统优化与功能增强以及Intel Hadoop系统的安装管理,然后详细介绍和解读Intel Hadoop系统HDFS的高级功能扩展、HBase的高级功能扩展与编程示例以及Hive的高级功能扩展与编程示例。
  第8章MapReduce 基础算法程序设计,介绍MapReduce的基础算法设计,包括WordCount、矩阵乘法、关系代数运算、单词共现算法、文档倒排索引、PageRank网页排名算法以及专利文献分析算法设计方法和编程实现。本章所有算法均有完整实现代码供下载学习。
  第9章MapReduce高级程序设计技术,介绍MapReduce高级程序设计技术,包括复合键值对的使用、用户定制数据类型、用户定制输入输出格式、用户定制Partitioner和Combiner、组合式MapReduce计算作业、多数据源的连接、全局参数/数据文件的传递与使用以及关系数据库的连接与访问技术。
  第10章MapReduce数据挖掘基础算法,介绍基于MapReduce的机器学习和数据挖掘并行化算法设计方法和编程实现,包括K-Means聚类算法、最近邻分类算法、朴素贝叶斯分类算法、决策树分类算法、频繁项集挖掘算法以及隐马尔科夫模型和最大期望算法。本章所有算法均有完整实现代码供下载学习。
  第11章 大数据处理算法设计与应用编程案例,介绍大数据处理算法与基本应用编程案例的算法设计和编程实现,包括基于MapReduce的搜索引擎算法、基于MapReduce的大规模短文本多分类算法、基于MapReduce的大规模基因序列比对算法、基于MapReduce的大规模城市路径规划算法、基于MapReduce的大规模重复文档检测算法、基于内容的并行化图像搜索算法与引擎、基于MapReduce的大规模微博传播分析、基于关联规则挖掘的图书推荐算法、以及基于Hadoop的城市智能交通综合应用案例。
  本书由南京大学计算机系PASA大数据实验室黄宜华教授担任主编、并负责全书内容的组织和编审,Intel公司大数据软件部首席工程师苗凯翔担任副主编。其余作者主要来自南京大学计算机系PASA大数据实验室以及Intel公司大数据软件部;此外,北京神州立诚科技有限公司也参加了部分章节的编写。
  本书第1章由黄宜华、周珊编写完成,第2章由仇红剑编写完成,第3章由赵頔编写完成,第4章由黄宜华、沈仪和赵博编写完成,第5章由姜伟华、杜竟成编写完成,第6章由萧少聪、韩小姣编写完成,第7章由陈建忠、王星宇、王毅、Manoj Shanmugasundaram编写完成,第8章由唐云、金磊编写完成,第9章由黄宜华编写完成,第10章由金磊、赵頔、仇红剑、顾荣编写完成,第11章由顾荣、赵博、韦永壮、笪庆、陈虎、李相臣、彭岳、王刚、姬浩、张同宝、陈新江编写完成。
  衷心感谢Intel公司大数据软件部参编工程师在本书写作过程中的共同努力和辛苦付出!特别感谢Intel公司Evelyn Yan(颜历)、Kally Wang(王星宇)、Yale Wang(王毅)在本书写作过程中所做的大量组织协调工作!也感谢本团队所在南京大学计算机系PASA大数据实验室所有参编作者的辛苦努力和付出!感谢机械工业出版社华章分社在本书编写和出版过程中的大力支持和帮助!
  Google中国公司大学合作部在过去的几年中为我们开设大数据技术课程给予了大力的支持和帮助,在此,谨向Google中国公司表示衷心的感谢!同时也要衷心感谢清华大学郑纬民教授和陈康副教授,他们为2009年Google公司的技术培训提供了全部课件并进行了主讲,使我们获益匪浅,该课件也为后期本课程的建设提供了良好的基础。此外,也要衷心感谢南京大学计算机软件新技术国家重点实验室,早在2010年即投入100万元资助购建了一个科研教学专用的MapReduce大数据并行处理集群,为几年来本团队的教学科研和本系其他诸多课题组的研究工作提供了良好的计算设施和条件。
  本书是国内第一本经过多年课堂教学实践后撰写而成的大数据处理和并行编程技术书籍,因此,本书非常适合于高等院校作为MapReduce大数据并行处理技术课程教材使用,同时也很适合于高等院校学生作为自学MapReduce并行处理技术的参考书。与此同时,由于本书包含很多来自业界实际产品的深度技术内容,并包括了丰富的算法设计和编程实战案例,因此本书也非常适合于作为IT和其他应用行业专业技术人员从事大数据处理应用开发和编程工作时的参考手册。
  书中第8章和第10章全部算法设计的程序代码都经过本团队完整编程实现并运行通过,源码可在与本书配套的南京大学PASA大数据实验室(PASA:Parallel Algorithms,Systems,and Applications)网站上下载:http://pasa-bigdata.nju.edu.cn/links.html。
  由于作者水平有限,书中难免会有不准确甚至错误之处。不当之处敬请读者批评指正,并将反馈意见发送到邮箱:feedback_bigdata@163.com,以便我们再版时修正错误。

南京大学计算机科学与技术系PASA大数据实验室
黄宜华
2014年3月18日,于南京

上架指导

计算机科学及应用

封底文字

从计算技术的角度看,大数据处理是一种涉及到几乎所有计算机技术层面的综合性计算技术,涉及到计算机软硬件技术的方方面面。大数据研究和应用已成为产业升级与新产业崛起的重要推动力量。
作为国内第一本经过多年课堂教学实践总结而成的大数据并行处理和编程技术书籍,本书全面地介绍了大数据处理相关的基本概念和原理,着重讲述了Hadoop MapReduce大数据处理系统的组成结构、工作原理和编程模型,分析了基于MapReduce的各种大数据并行处理算法和程序设计的思想方法。适合高等院校作为MapReduce大数据并行处理技术课程的教材,同时也很适合作为大数据处理应用开发和编程专业技术人员的参考手册。
我很高兴地看到,该书已纳入了教育部计算机类专业教学指导委员会制定的计算机类专业系统能力培养计划。大数据处理是一门综合性、最能体现计算机系统能力培养的课程。把大数据处理纳入计算机类专业系统能力培养课程体系中第三层次的核心课程,作为一门起到一定“收官”作用的综合性课程,这是在计算机系统能力培养方面的一个很好的尝试。
——中国工程院院士 李国杰

作为国内最早从事大数据技术研究和教学的团队之一,南京大学黄宜华教授和他的大数据实验室同仁们在大数据技术领域已经进行了多年系统深入的研究工作,取得了卓有成效的研究成果。英特尔作为一家全球领先的计算技术公司,长期以来始终以计算技术的创新为己任。在大数据处理技术方面,我们也竭尽全力发挥出我们在软硬件平台的组合优势引领大数据技术的全面发展和推广。
这本《深入理解大数据》的力作正是我们双方在大数据领域共同努力的结晶,是以学术界和业界完美结合的方式,在融合了学术界系统化的研究教学工作和业界深度的系统和应用研发工作基础上,成功打造出的一本大数据技术佳作。相信这是一本适合软件技术人员和 IT 行业管理人员理解和掌握大数据技术的不可多得的技术书籍,也是一本适合于在校大学生和研究生学习和掌握大数据处理和编程技术的好教材。
——英特尔亚太研发有限公总经理 何京翔


大数据广泛的应用前景代表了 IT 行业的未来。近年来,大数据的巨大应用需求推动了大数据处理技术取得了长足的进步和发展。但是,大数据的 4V 特性决定了大数据处理仍然面临着巨大的技术困难和挑战,因此,我们还需要大力推动大数据技术的研发和应用。这就需要培养更多熟练掌握大数据处理技术的专业人才。这正是我们编写这本 Hadoop大数据处理技术书籍的主要动机和目的。本书希望通过对目前最为主流、最广为业界接受使用的 Hadoop 大数据处理和编程技术的深入介绍,对 IT 专业技术人员与学生学习和掌握大数据技术起到较大的帮助作用!
——英特尔中国大数据首席技术官 苗凯翔

本书主要特点:第一个特点是,对 MapReduce的基本工作原理和编程模型等基础理论原理有较为系统深入的阐述,让读者对 MapReduce 技术有一个理论上的深入理解,为后期学习和合理运用算法设计方法打下一个较为坚实的理论基础;第二个特点是,对于那些看懂了基本原理和接口、却苦于难以下手去具体设计和编程实现实际大处理处理算法问题的读者来说,本书会重点给他们讲解 MapReduce 并行程序和算法设计思路和方法,重点介绍和展示如何根据大数据问题本身的特点和 MapReduce 并行程序设计特点,将一个大数据问题或算法转化为 MapReduce 并行化算法设计思路和实现方法,然后再辅以详细的程序实现代码加以分析介绍;第三个特点是,对于那些有较好基础、希望了解更深入技术的读者来说,本书引入了开源技术书籍资料中所没有的来自业界产品的增强功能和深度技术内容。
——南京大学计算机科学与技术系 黄宜华

作者简介

黄宜华 主编 苗凯翔 副主编:黄宜华博士,南京大学计算机科学与技术系教授、PASA大数据实验室学术带头人。中国计算机学会大数据专家委员会委员、副秘书长,江苏省计算机学会大数据专家委员会主任。于1983、1986和1997年获得南京大学计算机专业学士、硕士和博士学位。主要研究方向为大数据并行处理、云计算以及Web信息挖掘等,发表学术研究论文60多篇。2010年在Google公司资助下在本校创建并开设了“MapReduce大数据并行处理技术”课程,成为全国最早开设该课程的院校之一。因在该课程教学和人才培养方面的出色成绩获得2012年Google奖教金。目前正在开展系统化的大数据并行处理技术研究工作,主持国家和省部级科研项目以及与美国Intel公司等业界的合作研究项目多项。

推荐序

推荐序一
(中国工程院院士、中国计算机学会大数据专家委员会主任 李国杰)
  数据是与自然资源、人力资源一样重要的战略资源,掌控数据资源的能力是国家数字主权的体现。大数据研究和应用已成为产业升级与新产业崛起的重要推动力量,如果落后就意味着失守战略性新兴产业的制高点。近年来,大数据浪潮席卷全球,引起世界各国的高度关注,美国等发达国家出台了发展大数据的国家计划,全世界著名IT企业都在积极推动大数据技术的研发和应用,国内外很多高校和研究机构都在从事大数据技术和数据科学的研究。
  学术界已总结了大数据的许多特点,包括体量巨大、速度极快、模态多样、潜在价值大等。对于处理大数据的技术人员,首先面对的困难是过去熟悉的处理系统和软件对付不了大数据,需要学会使用大数据处理和分析平台,进一步的需求是掌握大数据并行处理的算法和程序设计的方法。
  Google公司是大数据处理的先驱,其三大核心技术MapReduce、GFS和BigTable奠定了大数据分布式处理的基础。MapReduce是一种分布式运算技术,也是简化的分布式编程模式。在Google公司三大核心技术基础上,Apache社区开发的开源软件 Hadoop是实现MapReduce 计算模型的分布式并行编程框架。Hadoop 还提供一个分布式文件系统(HDFS)及分布式数据库(HBase),将数据部署到各个计算节点上。Hadoop的独特之处在于它的编程模型简单,用户可以很快地编写和测试分布式系统。2008年以来,Hadoop逐渐被互联网企业广泛接纳,这一开源的生态环境已成为大数据处理的主流和事实标准。
  一般而言,大数据处理有三种模式:离线计算、在线处理和流计算。Hadoop是目前使用较广泛的离线计算应用框架,在线处理与流计算尚未形成广泛使用的开源生态环境。大数据处理平台还在不断发展之中,2013年出现的Spark在全面兼容Hadoop的基础上,通过更多的利用内存处理大幅提高了系统性能。Spark等新框架的出现并不是取代Hadoop,而是扩大了大数据技术的生态环境,促使生态环境向良性化和完整化发展。

   李国杰院士,中国计算机学会大数据专家委员会主任,是我国计算机界的老一辈科学家,在并行处理、计算机体系结构、人工智能、组合优化等方面成果卓著,荣获过多项国家级奖励,领导中科院计算所和曙光公司为发展我国高性能计算机产业、研制龙芯高性能通用CPU芯片做出了重要贡献,对国内计算机科技、教育和产业的发展也提出过有影响的政策建议。
  目前国内外大数据技术人才十分短缺。据麦肯锡公司预计, 美国到2018年大数据分析技术人才缺口将达19万人。中国巨大的人口基数会带来更为巨量的数据,未来几年国内也将需要数十万以上的大数据技术人才。技术市场大规模的人才需求对高校大数据技术人才培养提出了很大的挑战。
  作为国内最早从事大数据技术教学与研究的教师之一,南京大学黄宜华教授2010年就在Google公司资助下开设了“MapReduce大规模数据并行处理技术”研究生课程,并组织成立了南京大学PASA大数据技术实验室,开展了一系列大数据技术研究工作。在多年课程教学和科研工作基础上,以理论联系实际的方式,结合学术界的教学科研成果与来自业界的系统研发经验,他组织撰写了这本专业技术教材——《深入理解大数据》,着重介绍目前主流的Hadoop MapReduce大数据处理与编程技术。
  与市场上现有的一些大数据处理和编程书籍相比,该书有较大的特色。该书较为全面地介绍了大数据处理相关的基本概念和原理,着重介绍了Hadoop MapReduce大数据处理系统的组成结构、工作原理和编程模型。在此基础上,该书由浅入深、循序渐进,重点介绍和分析了基于MapReduce的各种大数据并行处理算法和程序设计的思想方法,并辅以经过完整实现和验证的各种算法代码的分析介绍,内容涵盖了常用的基本算法以及较为复杂的机器学习和数据挖掘算法的设计与实现。该书还通过一系列来自全国性大赛获奖算法、部分优秀课程设计、部分科研成果、以及业界实际的大数据应用编程实战案例,较为深入地阐述了相关的大数据并行处理和编程技术。
  作为国内第一本经过多年课堂教学实践总结而成的大数据并行处理和编程技术书籍,该书很适合高等院校作为MapReduce大数据并行处理技术课程的教材,同时也很适合于作为大数据处理应用开发和编程专业技术人员的参考手册。
  此外,我很高兴地看到,该书已纳入了教育部计算机类专业教学指导委员会制定的计算机类专业系统能力培养计划,作为“计算机类专业系统能力培养系列教材”。从计算技术的角度看,大数据处理是一种涉及到几乎所有计算机技术层面的综合性计算技术,涉及到计算机软硬件技术的方方面面,因此,大数据处理是一门综合性、最能体现计算机系统能力培养的课程。为此,把大数据处理纳入计算机类专业系统能力培养课程体系中第三层次的核心课程,作为一门起到一定“收官”作用的综合性课程,这是在计算机系统能力培养方面的一个很好的尝试。

    中国工程院院士
    中国计算机学会大数据专家委员会主任
    李国杰
    2014年7月,于北京




推荐序二
大数据处理技术——信息时代的金钥匙
  可以毫不夸张地说,我们现在正处在信息爆炸的时代!随着移动互联网和物联网的迅猛发展,数据正在以前所未有的规模急剧增长。海量数据的收集、存储、处理、分析以及由此而产生的信息服务正在成为全球信息技术发展的主流。如果说大数据是信息时代的“石油”,那么大数据处理就是信息时代对这些数据“石油”的开采、运输、加工和提炼过程。可以预见,我们未来的生活将会像我们依赖石油化工产品一样依赖丰富多彩的大数据分析应用和信息服务。
  在这一轮大数据的发展和变革中,中国以其过去三十几年信息化和近几年移动互联网和物联网发展所积累的基础,正面临着前所未有的良好发展机遇。与西方发达国家相比,中国在大数据技术发展方面有不少自身独特的优势:中国巨大的人口基数孕育着巨大的技术市场,同时也造就巨大的数据资源。因此,在这一轮新的变革中,一方面,我们面临着很多技术挑战,需要努力学习国外先进的技术和经验,需要去不断探索和发现很多新的数据分析应用商业模式;但另一方面,上述的一些独特优势,加上大数据领域目前还处于初期阶段,这些因素使得我们有很好的机会和一定的优势与其他发达市场一道,探索如何通过大数据技术来进一步提高数据信息分析应用的技术水平与服务质量,并以此改善我们的生活。因此,在大数据的研究与应用方面,中国和西方发达国家可以齐头并进、互相借鉴。
  我很欣慰地看到,作为国内最早从事大数据技术研究和教学的团队之一,南京大学黄宜华教授和他的大数据实验室同仁们在大数据技术领域已经进行了多年系统深入的研究工作,取得了卓有成效的研究成果。我和黄教授相识于两年多前的中国大数据技术大会上,黄教授的学识和为人令人钦佩。此后我们在大数据研究方面展开了建设性的合作。
  英特尔作为一家全球领先的计算技术公司,长期以来始终以计算技术的创新为己任。在大数据处理技术方面,我们也竭尽全力发挥出我们在软硬件平台的组合优势引领大数据技术的全面发展和推广。让人欣喜的是,英特尔中国团队是英特尔Hadoop系统开发的主力军。这也为我们与黄教授的合作创造了得天独厚的条件。
  这本《深入理解大数据》的力作正是我们双方在大数据领域共同努力的结晶,是以学术界和业界完美结合的方式,在融合了学术界系统化的研究教学工作和业界深度的系统和应用研发工作基础上,成功打造出的一本大数据技术佳作。
  本书在总结多年的技术研发和教学内容的基础上,深入浅出地概括了大数据的基本概念和技术内容,然后重点介绍了主流大数据处理系统Hadoop的基本原理和架构;在此基础上逐章详细介绍了Hadoop平台下大数据分布存储、并行化计算和算法设计等一系列重要技术及其编程方法,尤其是详细介绍了大量实际的大数据处理算法设计和编程实现方法。相信这是一本适合软件技术人员和IT行业管理人员理解和掌握大数据技术的不可多得的技术书籍,也是一本适合于在校大学生和研究生学习和掌握大数据处理和编程技术的好教材。
  在未来十年里,我们将看到数以十亿计的移动设备、可穿戴设备和智能终端设备融入我们生活的方方面面,沉浸式计算体验(Immersive Computing Experience)将成为我们生活的常态。随之应运而生的海量数据,大数据的存储和处理将分布于数据生命周期的各个阶段,因此,我们需要更多、更便捷的大数据处理方法和能力。显然,这并非一个算法、一个软件或一个高性能处理器所能单独完成的事情。我们需要以开放和软硬件结合的综合性体系架构,来实现大规模的大数据分析处理系统的部署和使用。基于英特尔架构优化的Hadoop平台是一个很好的开端。
  大数据技术带来的变革方兴未艾,我们正在打造开启信息技术新时代的金钥匙。我也衷心地希望这本书能成为读者打开大数据技术之门的钥匙!

  英特尔亚太研发有限公司总经理
  何京翔





推荐序三
  据预测, 到2020年,全球包含PC、平板电脑、智能手机等联网设备将超过300亿台。实际上,随着物联网技术与可穿戴设备的飞速发展, 终端设备会远远大于这个数量。随之而来各种应用也会爆炸式增长。大量应用会产生巨量的数据,数据内容的种类也会非常多样化,比如大量的普通数据、医疗影像数据以及越来越多城市摄像头所录下的视频数据等。
  根据国际分析机构IDC的统计,全球不同设备产生的数据量,到2020年预计将会突破40ZB。如此海量、持续、细粒度、多样化的数据,让各个行业都看到了数据的巨大潜在价值,这将大力推动大数据技术和应用的发展,为当今和未来的科技和经济发展以及社会的生产和生活带来重大影响。
  目前,全球的大数据市场规模很大,并保持了30%以上的年增长率。在中国,据2012年的统计,中国占据全球数据总量的13%;而据预计,随着中国的不断发展,作为全球第二大经济体,中国将拥有全球最高的终端设备出货量以及全球最高的物联网的用户数,并且我们的增长速度也将超过全球。到2020年,中国的整个数据量将超过8ZB,也就是说,数据增长率将是2012年的23倍。虽然中国的大数据解决方案才刚刚起步,但是预计在未来五年内中国大数据市场将会保持50%的增长率。大数据市场在未来几年将拥有整体IT市场4倍的增长速度、服务器市场5倍的增长速度,并且将远远高于云计算市场的增长速度。大数据市场在中国的IT行业已经变得越来越重要。
  近年来,大数据的各种应用层出不穷。在政府行业的“平安城市”项目中,很多摄像头在收集视频数据,通过这些视频数据的管理和分析,可有效预防犯罪、保障社会公共安全。此外,互联网舆情分析、地震预测、气象分析、人口信息综合分析等,也都是政府民生相关的大数据应用领域。
  在金融行业,很多行业用户使用大数据解决方案,对海量结构化交易数据进行实时入库处理,并提供并发查询,进行金融欺诈分析监测以预防金融犯罪;还可以通过数据分析挖掘以进行精准的金融营销,通过对金融分析发现更多的投资组合、避免投资风险等。
  电信行业也开始使用大数据解决方案,提供对上亿电话通联详单数据的快速查询和分析,并可以通过对电信用户数据的分析,提供基于LBS(基于位置的服务)的数据分析服务,进行电信产品和服务的精准营销、精准广告投放和促销等。
  零售行业也开始使用大数据解决方案,通过对用户的交易数据进行关联性分析挖掘以决定商品在货架上的摆放位置,在方便用户购物的同时、提高用户的购买量。
  交通领域也逐步采用智能交通管理方案,通过对道路的交通状况进行分析预测,实现智能化道路交通管理和分流,对违章进行自动检测和处理,完成套牌车辆检测、区域分析以及其他异常行为的检测、分析和预警。其他还有像铁路、航空等交通行业的客票和货运处理、物流管理等,都将成为典型的大数据应用领域。
  在医疗行业,对于医疗影像(如X光片、CT片等)、就诊、用药、手术、住院状况等医疗数据的信息化管理要求越来越高。同时目前医疗行业也开始关注如何通过对医疗大数据进行融合分析,为医生提供辅助诊断、医疗方案推荐、药物疗效分析、病因分析、专家治疗经验共享等基于大数据的智能化诊疗服务。
  大数据广泛的应用前景代表了IT行业的未来。近年来,大数据的巨大应用需求推动了大数据处理技术取得了长足的进步和发展。但是,大数据的4V特性(大体量、多样性、时效性、以及精确性)决定了大数据处理仍然面临着巨大的技术困难和挑战,因此,我们还需要大力推动大数据技术的研发和应用。这就需要培养更多熟练掌握大数据处理技术的专业人才。而今天的人才市场上还极为缺乏这种熟练掌握大数据技术的专业人才。
  为此,需要让更多的专业技术人员学习和掌握大数据技术,这正是我们编写这本Hadoop大数据处理技术书籍的主要动机和目的。本书希望通过对目前最为主流、最广为业界接受使用的Hadoop大数据处理和编程技术的深入介绍,对IT专业技术人员与学生学习和掌握大数据技术起到较大的帮助作用!

英特尔中国大数据首席技术官
苗凯翔博士
2014年3月20日,于上海

图书目录

推荐序一
推荐序二
推荐序三
丛书序言
前  言
第一部分 Hadoop系统
第1章 大数据处理技术简介 2
1.1 并行计算技术简介 2
1.1.1 并行计算的基本概念 2
1.1.2 并行计算技术的分类 6
1.1.3 并行计算的主要技术问题 10
1.2 大数据处理技术简介 13
1.2.1 大数据的发展背景和研究意义 13
1.2.2 大数据的技术特点 16
1.2.3 大数据研究的主要目标、基本原则和基本途径 17
1.2.4 大数据计算模式和系统 18
1.2.5 大数据计算模式的发展趋势 21
1.2.6 大数据的主要技术层面和技术内容 22
1.3 MapReduce并行计算技术简介 25
1.3.1 MapReduce的基本概念和由来 25
1.3.2 MapReduce的基本设计思想 26
1.3.3 MapReduce的主要功能和技术特征 28
1.4 Hadoop系统简介 30
1.4.1 Hadoop的概述与发展历史 30
1.4.2 Hadoop系统分布式存储与并行计算构架 31
1.4.3 Hadoop平台的基本组成与生态系统 33
1.4.4 Hadoop的应用现状和发展趋势 37
第2章 Hadoop系统的安装与操作管理 39
2.1 Hadoop系统安装方法简介 39
2.2 单机和单机伪分布式Hadoop系统安装基本步骤 39
2.2.1 安装和配置JDK 40
2.2.2 创建Hadoop用户 40
2.2.3 下载安装Hadoop 40
2.2.4 配置SSH 41
2.2.5 配置Hadoop环境 42
2.2.6 Hadoop的运行 43
2.2.7 运行测试程序 43
2.2.8 查看集群状态 44
2.3 集群分布式Hadoop系统安装基本步骤 44
2.3.1 安装和配置JDK 44
2.3.2 创建Hadoop用户 45
2.3.3 下载安装Hadoop 45
2.3.4 配置SSH 45
2.3.5 配置Hadoop环境 46
2.3.6 Hadoop的运行 48
2.3.7 运行测试程序 48
2.3.8 查看集群状态 49
2.4 Hadoop MapReduce程序开发过程 49
2.5 集群远程作业提交与执行 53
2.5.1 集群远程作业提交和执行过程 53
2.5.2 查看作业执行结果和集群状态 53
第3章 大数据存储——分布式文件系统HDFS 56
3.1 HDFS的基本特征与构架 56
3.1.1 HDFS的基本特征 57
3.1.2 HDFS的基本框架与工作过程 57
3.2 HDFS可靠性设计 60
3.2.1 HDFS数据块多副本存储设计 60
3.2.2 HDFS可靠性的设计实现 61
3.3 HDFS文件存储组织与读写 63
3.3.1 文件数据的存储组织 63
3.3.2 数据的读写过程 65
3.4 HDFS文件系统操作命令 68
3.4.1 HDFS启动与关闭 68
3.4.2 HDFS文件操作命令格式与注意事项 69
3.4.3 HDFS文件操作命令 69
3.4.4 高级操作命令和工具 77
3.5 HDFS基本编程接口与示例 83
3.5.1 HDFS编程基础知识 83
3.5.2 HDFS基本文件操作API 84
3.5.3 HDFS基本编程实例 87
第4章 Hadoop MapReduce并行编程框架 91
4.1 MapReduce基本编程模型和框架 91
4.1.1 MapReduce并行编程抽象模型 91
4.1.2 MapReduce的完整编程模型和框架 93
4.2 Hadoop MapReduce基本构架与工作过程 96
4.2.1 Hadoop系统构架和MapReduce程序执行过程 96
4.2.2 Hadoop MapReduce执行框架和作业执行流程 98
4.2.3 Hadoop MapReduce作业调度过程和调度方法 102
4.2.4 MapReduce执行框架的组件和执行流程 106
4.3 Hadoop MapReduce主要组件与编程接口 107
4.3.1 数据输入格式InputFormat 107
4.3.2 输入数据分块InputSplit 109
4.3.3 数据记录读入RecordReader 110
4.3.4 Mapper类 112
4.3.5 Combiner 114
4.3.6 Partitioner 115
4.3.7 Sort 116
4.3.8 Reducer类 119
4.3.9 数据输出格式OutputFormat 120
4.3.10 数据记录输出RecordWriter 122
第5章 分布式数据库HBase 123
5.1 HBase简介 123
5.1.1 为什么需要NoSQL数据库 123
5.1.2 HBase的作用和功能特点 125
5.2 HBase的数据模型 126
5.2.1 HBase的基本数据模型 126
5.2.2 HBase的查询模式 128
5.2.3 HBase表设计 129
5.3 HBase的基本构架与数据存储管理方法 132
5.3.1 HBase在Hadoop生态中的位置和关系 132
5.3.2 HBase的基本组成结构 133
5.3.3 HBase Region 133
5.3.4 Region Server 135
5.3.5 HBase的总体组成结构 138
5.3.6 HBase的寻址和定位 139
5.3.7 HBase节点的上下线管理 142
5.4 HBase安装与操作 145
5.4.1 安装一个单机版的HBase 145
5.4.2 HBase Shell操作命令 146
5.4.3 基于集群的HBase安装和配置 149
5.5 HBase的编程接口和编程示例 152
5.5.1 表创建编程接口与示例 152
5.5.2 表数据更新编程接口与示例 153
5.5.3 数据读取编程接口与示例 155
5.5.4 HBase MapReduce支持和编程示例 157
5.6 HBase的读写操作和特性 161
5.6.1 HBase的数据写入 161
5.6.2 HBase的数据读取 171
5.7 其他HBase功能 173
5.7.1 Coprocessor 173
5.7.2 批量数据导入Bulk Load 176
第6章 分布式数据仓库Hive 179
6.1 Hive的作用与结构组成 179
6.2 Hive的数据模型 181
6.2.1 Hive的数据存储模型 181
6.2.2 Hive的元数据存储管理 182
6.2.3 Hive的数据类型 183
6.3 Hive的安装 184
6.3.1 下载Hive安装包 184
6.3.2 配置环境变量 184
6.3.3 创建Hive数据文件目录 185
6.3.4 修改Hive配置文件 185
6.4 Hive查询语言——HiveQL 188
6.4.1 DDL语句 188
6.4.2 DML语句 189
6.4.3 SELECT查询语句 190
6.4.4 数据表操作语句示例 190
6.4.5 分区的使用 192
6.4.6 桶的使用 193
6.4.7 子查询 194
6.4.8 Hive的优化和高级功能 194
6.5 Hive JDBC编程接口与程序设计 196
第7章 Intel Hadoop系统优化与功能增强 200
7.1 Intel Hadoop系统简介 200
7.1.1 Intel Hadoop系统的主要优化和增强功能 200
7.1.2 Intel Hadoop的系统构成与组件 201
7.2 Intel Hadoop系统的安装和管理 202
7.3 Intel Hadoop HDFS的优化和功能扩展 202
7.3.1 HDFS的高可用性 203
7.3.2 Intel Hadoop系统高可用性配置服务 204
7.3.3 Intel Hadoop系统高可用性配置服务操作 206
7.3.4 自适应数据块副本调整策略 208
7.4 Intel Hadoop HBase的功能扩展和编程示例 211
7.4.1 HBase大对象存储(LOB) 211
7.4.2 加盐表 212
7.4.3 HBase跨数据中心大表 213
7.5 Intel Hadoop Hive的功能扩展和编程示例 216
7.5.1 开源Hive的不足 216
7.5.2 Intel Hadoop“Hive over HBase”优化设计 216
7.5.3 Hive over HBase的架构 216
第二部分 MapReduce的编程和算法设计
第8章 MapReduce基础算法程序设计 220
8.1 WordCount 220
8.1.1 WordCount算法编程实现 220
8.2 矩阵乘法 223
8.2.1 矩阵乘法原理和实现思路 223
8.2.2 矩阵乘法的MapReduce程序实现 224
8.3 关系代数运算 227
8.3.1 选择操作 227
8.3.2 投影操作 228
8.3.3 交运算 229
8.3.4 差运算 230
8.3.5 自然连接 231
8.4 单词共现算法 233
8.4.1 单词共现算法的基本设计 233
8.4.2 单词共现算法的实现 234
8.4.3 单词共现算法实现中的细节问题 235
8.5 文档倒排索引 237
8.5.1 简单的文档倒排索引 237
8.5.2 带词频等属性的文档倒排索引 239
8.6 PageRank网页排名算法 242
8.6.1 PageRank的简化模型 243
8.6.2 PageRank的随机浏览模型 244
8.6.3 PageRank的MapReduce实现 245
8.7 专利文献分析算法 249
8.7.1 构建专利被引用列表 250
8.7.2 专利被引用次数统计 251
8.7.3 专利被引用次数直方图统计 252
8.7.4 按照年份或国家统计专利数 254
第9章 MapReduce高级程序设计技术 256
9.1 简介 256
9.2 复合键值对的使用 257
9.2.1 把小的键值对合并成大的键值对 257
9.2.2 巧用复合键让系统完成排序 259
9.3 用户定制数据类型 262
9.3.1 Hadoop内置的数据类型 263
9.3.2 用户自定义数据类型的实现 263
9.4 用户定制数据输入输出格式 264
9.4.1 Hadoop内置的数据输入格式与RecordReader 265
9.4.2 用户定制数据输入格式与RecordReader 265
9.4.3 Hadoop内置的数据输出格式与RecordWriter 269
9.4.4 用户定制数据输出格式与RecordWriter 269
9.4.5 通过定制数据输出格式实现多集合文件输出 270
9.5 用户定制Partitioner和Combiner 271
9.5.1 用户定制Partitioner 272
9.5.2 用户定制Combiner 273
9.6 组合式MapReduce计算作业 274
9.6.1 迭代MapReduce计算任务 274
9.6.2 顺序组合式MapReduce作业的执行 275
9.6.3 具有复杂依赖关系的组合式MapReduce作业的执行 275
9.6.4 MapReduce前处理和后处理步骤的链式执行 276
9.7 多数据源的连接 278
9.7.1 基本问题数据示例 279
9.7.2 用DataJoin类实现Reduce端连接 279
9.7.3 用全局文件复制方法实现Map端连接 285
9.7.4 带Map端过滤的Reduce端连接 287
9.7.5 多数据源连接解决方法的限制 288
9.8 全局参数/数据文件的传递与使用 288
9.8.1 全局作业参数的传递 288
9.8.2 查询全局的MapReduce作业属性 290
9.8.3 全局数据文件的传递 291
9.9 关系数据库的连接与访问 292
9.9.1 从数据库中输入数据 292
9.9.2 向数据库中输出计算结果 292
第10章 MapReduce数据挖掘基础算法 295
10.1 K-Means聚类算法 295
10.1.1 K-Means聚类算法简介 295
10.1.2 基于MapReduce的K-Means算法的设计实现 297
10.2 KNN最近邻分类算法 300
10.2.1 KNN最近邻分类算法简介 300
10.2.2 基于MapReduce的KNN算法的设计实现 301
10.3 朴素贝叶斯分类算法 303
10.3.1 朴素贝叶斯分类算法简介 303
10.3.2 朴素贝叶斯分类并行化算法的设计 304
10.3.3 朴素贝叶斯分类并行化算法的实现 306
10.4 决策树分类算法 310
10.4.1 决策树分类算法简介 310
10.4.2 决策树并行化算法的设计 313
10.4.3 决策树并行化算法的实现 317
10.5 频繁项集挖掘算法 327
10.5.1 频繁项集挖掘问题描述 327
10.5.2  Apriori频繁项集挖掘算法简介 328
10.5.3 Apriori频繁项集挖掘并行化算法的设计 329
10.5.4 Apriori频繁项集挖掘并行化算法的实现 331
10.5.5 基于子集求取的频繁项集挖掘算法的设计 335
10.5.6 基于子集求取的频繁项集挖掘并行化算法的实现 336
10.6 隐马尔科夫模型和最大期望算法 340
10.6.1 隐马尔科夫模型的基本描述 340
10.6.2 隐马尔科夫模型问题的解决方法 341
10.6.3 最大期望算法概述 345
10.6.4 并行化隐马尔科夫算法设计 345
10.6.5 隐马尔科夫算法的并行化实现 348
第11章 大数据处理算法设计与应用编程案例 352
11.1 基于MapReduce的搜索引擎算法 352
11.1.1 搜索引擎工作原理简介 353
11.1.2 基于MapReduce的文档预处理 354
11.1.3 基于MapReduce的文档倒排索引构建 356
11.1.4 建立Web信息查询服务 363
11.2 基于MapReduce的大规模短文本多分类算法 365
11.2.1 短文本多分类算法工作原理简介 365
11.2.2 并行化分类训练算法设计实现 366
11.2.3 并行化分类预测算法设计实现 369
11.3 基于MapReduce的大规模基因序列比对算法 371
11.3.1 基因序列比对算法简介 371
11.3.2 并行化BLAST算法的设计与实现 373
11.4 基于MapReduce的大规模城市路径规划算法 379
11.4.1 问题背景和要求 379
11.4.2 数据输入 380
11.4.3 程序设计要求 384
11.4.4 算法设计总体框架和处理过程 385
11.4.5 并行化算法的设计与实现 386
11.5 基于MapReduce的大规模重复文档检测算法 396
11.5.1 重复文档检测问题描述 396
11.5.2 重复文档检测方法和算法设计 397
11.5.3 重复文档检测并行化算法设计实现 401
11.6 基于内容的并行化图像检索算法与引擎 404
11.6.1 基于内容的图像检索问题概述 404
11.6.2 图像检索方法和算法设计思路 405
11.6.3 并行化图像检索算法实现 407
11.7 基于MapReduce的大规模微博传播分析 412
11.7.1 微博分析问题背景与并行化处理过程 413
11.7.2 并行化微博数据获取算法的设计实现 414
11.7.3 并行化微博数据分析算法的设计实现 416
11.8 基于关联规则挖掘的图书推荐算法 422
11.8.1 图书推荐和关联规则挖掘简介 422
11.8.2 图书频繁项集挖掘算法设计与数据获取 423
11.8.3 图书关联规则挖掘并行化算法实现 425
11.9 基于Hadoop的城市智能交通综合应用案例 432
11.9.1 应用案例概述 432
11.9.2 案例一:交通事件检测 433
11.9.3 案例二:交通流统计分析功能 435
11.9.4 案例三:道路旅行时间分析 435
11.9.5 案例四:HBase实时查询 436
11.9.6 案例五:HBase Endpoint快速统计 437
11.9.7 案例六:利用Hive高速统计 439
附  录
附录A OpenMP并行程序设计简介 442
附录B MPI并行程序设计简介 448
附录C 英特尔Apache Hadoop*系统安装手册 457
参考文献 486

教学资源推荐
作者: [美] 迈克尔·米森马彻(Michael Mitzenmacher) 伊莱·阿法尔(Eli Upfal) 著
作者: Andrew S.Tanenbaum
作者: 徐洁磐
作者: 吴灏 等编著
参考读物推荐
作者: [美]鲍里斯·肖勒(Boris Scholl) 特伦特·斯旺森(Trent Swanson) 彼得·加索维奇(Peter Jausovec) 著