基本信息

编辑推荐
■ 学术界与业界完美结合的结晶,从原理剖析到系统化算法设计与编程实践 ■ 多年来系统性教学实践和成果总结,一系列业界产品增强功能深度技术剖析 ■ 一系列大赛获奖算法、优秀课程设计以及来自科研课题及业界应用的实战案例
内容简介
计算机书籍
《深入理解大数据:大数据处理与编程实践》从Hadoop MapReduce并行计算技术与系统的基本原理剖析着手,在系统介绍基本工作原理、编程模型、编程框架和接口的基础上,着重系统化地介绍MapReduce并行算法设计与编程技术,较为全面地介绍了基本MapReduce算法设计、高级MapReduce编程技术以及一系列较为复杂的机器学习和数据挖掘并行化算法,并引入来自Intel Hadoop系统的一系列增强功能以及深度技术剖析;最后,为了提高读者的算法设计与编程实战能力,本书较为详细地介绍了一系列综合性和实战性大数据处理和算法设计问题,这些问题来自课程同学参加的全国性大数据大赛中的获奖算法、课程中的优秀课程设计以及来自本团队的科研课题及业界实际的大数据应用实战案例。书中第8章和第10章的所有算法均有完整实现代码可供下载学习。
《深入理解大数据:大数据处理与编程实践》是国内第一本基于多年课堂教学实践总结和撰写而成的大数据处理和并行编程技术书籍,因此,本书非常适合高等院校作为MapReduce大数据并行处理技术课程教材使用,同时也很适合于高等院校学生作为自学MapReduce并行处理技术的参考书。与此同时,由于本书包含了很多来自业界实际产品的深度技术内容、并包括了丰富的算法设计和编程实战案例,因此,本书也很适合作为IT和其他应用行业专业技术人员进行大数据处理应用开发和编程实现时的参考手册。
作译者
目录
推荐序一
推荐序二
推荐序三
丛书序言
前 言
第一部分 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
前言
大数据技术如此重要,已经被我国政府提升到国家重大发展战略的高度。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编程技术。
序言
(中国工程院院士、中国计算机学会大数据专家委员会主任李国杰)
数据是与自然资源、人力资源一样重要的战略资源,掌控数据资源的能力是国家数字主权的体现。大数据研究和应用已成为产业升级与新产业崛起的重要推动力量,如果落后就意味着失守战略性新兴产业的制高点。近年来,大数据浪潮席卷全球,引起世界各国的高度关注,美国等发达国家出台了发展大数据的国家计划,全世界著名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月,于北京
推荐序二
大数据处理技术——信息时代的金钥匙
可以毫不夸张地说,我们现在正处在信息爆炸的时代!随着移动互联网和物联网的迅猛发展,数据正在以前所未有的规模急剧增长。海量数据的收集、存储、处理、分析以及由此而产生的信息服务正在成为全球信息技术发展的主流。如果说大数据是信息时代的“石油”,那么大数据处理就是信息时代对这些数据“石油”的开采、运输、加工和提炼过程。可以预见,我们未来的生活将会像我们依赖石油化工产品一样依赖丰富多彩的大数据分析应用和信息服务。
媒体评论
——中国工程院院士 李国杰
作为国内最早从事大数据技术研究和教学的团队之一,南京大学黄宜华教授和他的大数据实验室同仁们在大数据技术领域已经进行了多年系统深入的研究工作,取得了卓有成效的研究成果。英特尔作为一家全球领先的计算技术公司,长期以来始终以计算技术的创新为己任。在大数据处理技术方面,我们也竭尽全力发挥出我们在软硬件平台的组合优势引领大数据技术的全面发展和推广。我很高兴地看到,该书已纳入了教育部计算机类专业教学指导委员会制定的计算机类专业系统能力培养计划。大数据处理是一门综合性、最能体现计算机系统能力培养的课程。把大数据处理纳入计算机类专业系统能力培养课程体系中第三层次的核心课程,作为一门起到一定“收官”作用的综合性课程,这是在计算机系统能力培养方面的一个很好的尝试。
——中国工程院院士 李国杰
作为国内最早从事大数据技术研究和教学的团队之一,南京大学黄宜华教授和他的大数据实验室同仁们在大数据技术领域已经进行了多年系统深入的研究工作,取得了卓有成效的研究成果。英特尔作为一家全球领先的计算技术公司,长期以来始终以计算技术的创新为己任。在大数据处理技术方面,我们也竭尽全力发挥出我们在软硬件平台的组合优势引领大数据技术的全面发展和推广。
这本《深入理解大数据》的力作正是我们双方在大数据领域共同努力的结晶,是以学术界和业界完美结合的方式,在融合了学术界系统化的研究教学工作和业界深度的系统和应用研发工作基础上,成功打造出的一本大数据技术佳作。相信这是一本适合软件技术人员和 IT 行业管理人员理解和掌握大数据技术的不可多得的技术书籍,也是一本适合于在校大学生和研究生学习和掌握大数据处理和编程技术的好教材。
——英特尔亚太研发有限公总经理 何京翔
大数据广泛的应用前景代表了 IT 行业的未来。近年来,大数据的巨大应用需求推动了大数据处理技术取得了长足的进步和发展。但是,大数据的 4V 特性决定了大数据处理仍然面临着巨大的技术困难和挑战,因此,我们还需要大力推动大数据技术的研发和应用。这就需要培养更多熟练掌握大数据处理技术的专业人才。这正是我们编写这本 Hadoop大数据处理技术书籍的主要动机和目的。本书希望通过对目前最为主流、最广为业界接受使用的 Hadoop 大数据处理和编程技术的深入介绍,对 IT 专业技术人员与学生学习和掌握大数据技术起到较大的帮助作用!
——英特尔中国大数据首席技术官 苗凯翔
本书主要特点:第一个特点是,对 MapReduce的基本工作原理和编程模型等基础理论原理有较为系统深入的阐述,让读者对 MapReduce 技术有一个理论上的深入理解,为后期学习和合理运用算法设计方法打下一个较为坚实的理论基础;第二个特点是,对于那些看懂了基本原理和接口、却苦于难以下手去具体设计和编程实现实际大处理处理算法问题的读者来说,本书会重点给他们讲解 MapReduce 并行程序和算法设计思路和方法,重点介绍和展示如何根据大数据问题本身的特点和 MapReduce 并行程序设计特点,将一个大数据问题或算法转化为 MapReduce 并行化算法设计思路和实现方法,然后再辅以详细的程序实现代码加以分析介绍;第三个特点是,对于那些有较好基础、希望了解更深入技术的读者来说,本书引入了开源技术书籍资料中所没有的来自业界产品的增强功能和深度技术内容。
——南京大学计算机科学与技术系 黄宜华
书摘
Hadoop系统
第1章大数据处理技术简介
第2章?Hadoop系统的安装与操作管理
第3章大数据存储——分布式文件系统HDFS
第4章?Hadoop MapReduce并行编程框架
第5章分布式数据库HBase
第6章分布式数据仓库Hive
第7章?Intel Hadoop系统优化与功能增强
第1章
大数据处理技术简介
近年来,大数据技术在全世界迅猛发展,引起了全世界的广泛关注,掀起了一个全球性的发展浪潮。大数据技术发展的主要推动力来自并行计算硬件和软件技术的发展,以及近年来行业大数据处理需求的迅猛增长。其中,大数据处理技术最直接的推动因素,当数Google公司发明的MapReduce大规模数据分布存储和并行计算技术,以及Apache社区推出的开源Hadoop MapReduce并行计算系统的普及使用。为此,本书将重点介绍目前成为大数据处理主流技术和平台Hadoop MapReduce并行处理和编程技术。
本章将简要介绍大数据处理相关的基本概念、技术及发展状况。大数据处理的核心技术是分布存储和并行计算,因此,本章首先简要介绍并行计算的基本概念和技术;在此基础上,将简要介绍MapReduce的基本概念、功能和技术特点;最后本章将进一步简要介绍开源Hadoop系统的基本功能特点和组成。
1.1并行计算技术简介
1.1.1并行计算的基本概念
随着信息技术的快速发展,人们对计算系统的计算能力和数据处理能力的要求日益提高。随着计算问题规模和数据量的不断增大,人们发现,以传统的串行计算方式越来越难以满足实际应用问题对计算能力和计算速度的需求,为此出现了并行计算技术。
并行计算(Parallel Computing)是指同时对多条指令、多个任务或多个数据进行处理的一种计算技术。实现这种计算方式的计算系统称为并行计算系统,它由一组处理单元组成,这组处理单元通过相互之间的通信与协作,以并行化的方式共同完成复杂的计算任务。实现并行计算的主要目的是,以并行化的计算方法,实现计算速度和计算能力的大幅提升,以解决传统的串行计算所难以完成的计算任务。
现代计算机的发展历程可分为两个明显不同的发展时代:串行计算时代和并行计算时代。并行计算技术是在单处理器计算能力面临发展瓶颈、无法继续取得突破后,才开始走上了快速发展的通道。并行计算时代的到来,使得计算技术获得了突破性的发展,大大提升了计算能力和计算规模。
1.?单处理器计算性能提升达到极限
纵观计算机的发展历史,日益提升计算性能是计算技术不断追求的目标和计算技术发展的主要特征之一。自计算机出现以来,提升单处理器计算机系统计算速度的常用技术手段有以下几个方面。