随笔分类 - Hadoop编程笔记
摘要:在这一节我们要深入了解Hadoop的FileSystem类——这是与与hadoop的文件系统交互的重要接口。虽然我们只是着重于HDFS的实现,但我们在编码时一般也要注意代码在FileSystem不同子类文件系统之间的可移植性。这是非常有用的,比如说你可以非常方便的直接用同样的代码在你的本地文件系统上进行测试。使用hadoop URL读数据 从hadoop文件系统中读取文件的最简单的方法之一便是使用java.net.URL对象来打开一个欲从中读取数据的流(stream)。通常情况下的编程风格如下:1 InputStream in = null;2 try {3 in = new U...
阅读全文
摘要:1 概述本文档目的在于对namenode中各种关键的数据结构进行剖析和解释,以方便更好的对namenode的各种处理逻辑和代码结构进行理解。其中包括对namenode中Namenode和FSNameSystem的程序代码结构,FSDirectory,BlocksMap, CorruptReplicationMap,excessReplicateMap, UnderReplicatedBlocks,PendingReplictiondBlocks等数据结构的介绍。1.1 代码结构1.1.1 NameNode在HDFS中,namenode的服务提供整个HDFS文件系统的namespace管理,块管
阅读全文
摘要:Hadoop Release 0.20.0的API包括了一个全新的API:Context,有时候也称为上下文对象,此对象的设计使得在未来进行扩展更加容易。 后续的hadoop版本--如1.x--已经完成了大部分的API 更新。新的API类型上不兼容以前的API,所以以前的应用程序需要重写才能使新的API发挥其作用 。新的API和旧的API之间有下面几个明显的区别:1. 新的API倾向于使用抽象类,而不是接口,因为这更容易扩展。例如,你可以添加一个方法(附带默认的实现)到一个抽象类而不需修改类之前的实现方法。在新的API中,Mapper和Reducer是抽象类。有关更多抽象类与接口的区别请参见这
阅读全文
摘要:本《hadoop编程笔记》系列主要针对Hadoop编程方面的学习,包括主要类及接口的用法和作用以及编程方法,最佳实践等,如果你想更多的学习Hadoop本身所具有的特性和功能及其附属的生态圈(如Pig,Hive,Hbase等),请参阅另一个笔记系列《Hadoop学习笔记》,俺深知自己能力有限,写的不对的地方还望各位海涵,同时给俺指点一二~~ 本文说明:本文来源于hadoop1.0.4 API。1. MapperMaps are the individual tasks which transform input records into a intermediate records. Th...
阅读全文