Hadoop技术内幕

蔡斌 陈湘萍
前言 为什么写本书 互联网使得信息的采集、传播速度和规模达到空前的水平,实现了全球的信息共享与交互,它已经成为信息社会必不可少的基础设施,同时也带来了多方面的新挑战。2003年,Google发表了《Google File System》,介绍了Google海量数据处理使用的文件系统,使互联网时代的数据存储发生了革命性的变化。而Doug Cutting等人在Nutch项目上应用GFS和MapReduce思想,并演化为Hadoop项目,经过多年的发展,最终形成了包含多个相关项目的软件生态系统,开创了海量数据处理的新局面。 Hadoop正是为了解决互联网时代的海量数据存储和处理而设计、开发的。简单地讲,Hadoop是一个可以更容易开发和并行处理大规模数据的分布式计算平台,它的主要特点是:扩展能力强、成本低、高效率、可靠。目前,Hadoop的用户已经从传统的互联网公司,扩展到科学计算、电信行业、电力行业、生物行业以及金融公司,并得到越来越广泛的应用。 Hadoop作为一个优秀的开源项目,提供了一些文档和所有的源代码,但是,对于很多开发人员,仅仅通过一些简单的例子或教程学习使用Hadoop的基本功能是远远不够的。同时,随着云计算和大数据的发展,产业界正在经历一次重大变革,特别是基于云计算的海量数据处理,改变着我们思考的方式和习惯,开发者们越来越有必要去了解Hadoop的架构与设计原理。 本书从源代码的层面上对Hadoop的公共工具Common和Hadoop的分布式文件系统HDFS进行了介绍,帮助广大开发者从架构与设计原理的角度去理解Hadoop,从而为更好地使用和扩展Hadoop打下坚实的基础。同时,Hadoop是一个使用Java语言实现的优秀系统,从事Java和分布式计算相关技术的开发者们能从它的源码实现中看到许多优秀的设计思想、对各种设计模式的灵活运用、语言的使用技巧以及编程规…