大数据技术基础:基于Hadoop与Spark
上QQ阅读APP看书,第一时间看更新

前言

随着互联网应用的井喷式发展,人类进入了信息大爆炸和海量信息处理时代,大数据成为近几年来国内外最热门的话题之一。但是,究竟什么是大数据,大数据有什么意义,什么是大数据技术,有哪些大数据技术,大数据技术发展状况如何,如果升级现有的信息系统又该从何处入手,应该采用哪一种大数据解决方案……所有这些问题都令每一个关注大数据话题的人感到困惑。

四川大学图像信息研究所创始人、四川大学锦城学院电子信息学院院长陶德元教授很早以前就敏锐地察觉到,要解决这些问题就必须大量培养掌握大数据技术的人才。为此,当大家还在争论要不要在本科开设大数据专业时,陶教授于2013年已率先在四川大学锦城学院的高年级本科生中引入了大数据课程,依托物联网工程专业在本科生层次建立了大数据专业方向的人才培养试点。没有他山之石可采,只能摸着石头过河,不断地总结经验和教训,一路走来甚为艰辛。我们深知,在众多国内大数据专家、学者面前,我们的水平仍显得不足,因此深怕因技术水平浅薄,所汇集的文字材料漏洞百出而贻笑大方。

如今,从四川大学锦城学院已经走出了3届初步掌握大数据技术的学生,还有3个年级的在校生正在接受大数据技术的洗礼。经过3年的摸索,大数据专业方向的相关课程和内容已逐步稳定下来。特别是连续3届学生的成功就业,让我们有了写作本书的勇气。

Spark刚出道时,有人预言Hadoop终将被Spark所淘汰,从而走向消亡。事实果却非如此。实际上,自2007年被推出以来,Hadoop一直在不断发展和演化,如今已经发展成一个由60多个技术组件组成的庞大生态系统,核心组件包括HDFS、MapReduce、YARN、HBase、Hive、Spark 等。其中,HDFS 用于实现数据的分布式存储。MapReduce用于实现数据的分布式计算,其计算任务的输入和输出是依靠文件读写操作来实现的,由于大量的磁盘I/O操作会影响系统性能,因此它常常满足不了实时处理数据的需求。Spark改进了MapReduce的计算模式,它在减少磁盘I/O 操作的同时把数据缓存在内存中,从而提升数据的处理性能,理论上要比MapReduce的速度快100倍。但是,Spark没有提供分布式存储解决方案。可见, Hadoop和Spark可以做到优势互补。也正是基于这一点,本书将Hadoop和Spark技术组合起来进行剖析,目的也是希望能够向读者呈现一个比较完整的大数据技术解决方案。

本书以大数据处理系统所关注的三大要求——“存储”“计算”与“容错”为起点,全面介绍了它们所代表的大数据技术的原理以及应用编程方法。全书分为4个部分,共10章。第1部分只包括第1章,主要介绍大数据概念与特征、大数据技术的发展、大数据存储与计算模式、大数据的典型应用等;第2部分包括第2~4章,重点介绍了Hadoop平台的部署方法、HDFS的分布式存储原理及其Shell操作、HDFS API编程与应用;第3部分包括第5~7章,主要介绍了MapReduce v2(YARN)的分布式计算原理、MapReduce API基本编程与高级编程方法及应用;第4部分为最后3章,主要介绍了Spark组成和原理、Spark Streaming和Spark SQL编程与应用方法等。

本书具有4个鲜明特点:第一,重点突出,避免因面面俱到而缺乏技术深度;第二,内容结构完整,文字流畅,循序渐进,符合人的认知规律;第三,案例丰富,可操作性强,有助于快速培养大数据开发能力;第四,全书配备了丰富的、符合初学者习惯的思考和实践任务。

本书旨在帮助大数据技术的初学者快速掌握Hadoop和Spark原理及其应用,提升读者的大数据应用与开发能力。同时本书极强的系统性、可操作性以及大量精心设计的案例对于有一定基础的中高级读者有非常好的参考价值。

参与本书编写工作的有四川大学锦城学院的罗福强、李瑶、陈虹君、熊永福等老师。其中,熊永福编写了第1章,罗福强编写了第2~4章,李瑶编写了第5~7章,陈虹君编写了第8、9、10章。本书由罗福强负责主编工作。本书获得了科研项目资助,也获得了四川大学锦城学院和人民邮电出版社各级领导的重视与支持,特别得到了电子信息学院陶德元教授的支持和大量帮助。在此,我们对支持本书编写并提供过帮助的所有人表示诚挚的感谢!

由于作者水平有限,本书虽经多次校对,仍难免有疏漏之处,我们殷切地期望读者提出中肯的意见,联系方式:LFQ501@sohu.com。

编者

2017年1月