我们主要使用Hadoop的2个部分:分布式文件存储系统(HDFS)和MapReduce计算模型。
关于这2个部分,可以参考一下Google的论文:The Google File System 和 MapReduce: Simplified Data Processing on Large Clusters
OK,有了上面的这些理论基础,就可以开始体验我们的Hadoop了。
- 参考官方文档中的:Hadoop Quick Start ,先搭建起来一个最基本的单机运行模式,在Linux系统中运行系统提供的example。然后,打开Eclipse,安装一个 MapReduce的插件 ,创建一个Hadoop项目,加入example的源代码(hadoop-0.20.0srcexamplesorgapachehadoopexamples)。查看代码的说明,自己运行一下程序。
- 参考官方文档中的:Map/Reduce Tutorial,了解MapReduce的基本编程概念,再尝试着去修改example中的代码。
- 自己编写几个简单的MapReduce程序,在编写的过程中学会调试Hadoop程序。
- 参考官方文档中的:Cluster Setup,建立起自己的集群,并在集群中运行之前在单机上运行的Hadoop程序。
- 参考官方文档中的:User Guide Architecture File System Shell Guide,了解HDFS的基本概念和使用。
- 参考官方文档中的:Streaming,通过简单的范例了解Streaming的基本使用,再编写之前写过的Hadoop程序的其他语言版本,并运行。同时可以比较效率。
- 阅读相关的参考书籍:这里我推荐O'Reilly Media的《Hadoop: The Definitive Guide》。通过阅读本书,你能更加全面和深入地了解之前所接触的东西,同时能了解基本Hive,Pig,HBase,ZooKeeper等项目。
- 进一步实践,编写一些难度更大的MapReduce程序,比如2个表的Join操作。
- 了解Hadoop的日志系统,更快更加准确地在开发和应用中定位和解决问题。
- 阅读Hadoop的源代码,了解底层实现:)