Hadoop中文件读写(Java)
前言 在本文档中,你将了解到如何用Java接口读写Hadoop分布式系统中的文件,以及编码的转换等问题。其中有些细节,在你不知道的时候,是非常容易出错的。 这边读写文件分以下三种情况: 1. 在非Map Reduce过程中读写分布式文件系统中的文件 比如说,你想自己遍历一个文件,想截断一个文件,都属于这种方式。一般该过程发生在run函数中,程序员处理Map Reduce产生的中间文件上。 2. 在map(或reduce)函数中读写一个Record。 对于TextInputFormat,一个Record就是一行。我们会得到一个Text对象,作为一行。要注意的是如果读入的文件不是UTF-8 格式(比如GBK,因为TextInputFormat只能解码UTF-8文件,直接读会产生乱码),我们如何正确转换成Unicode。 3. 在map(或reduce)函数中,读写文件 比如说,在map函数中,你想通过读入文件初始化一个HashMap。 非Map Reduce过程中读文件 主要用到FileSystem类,打开一个文件后得到FSDataInputStream,据说这个F...