摘要: 文件读取的过程如下:使用HDFS提供的客户端开发库Client,向远程的Namenode发起RPC请求;Namenode会视情况返回文件的部分或者全部block列表,对于每个block,Namenode都会返回有该block拷贝的DataNode地址;客户端开发库Client会选取离客户端最接近的DataNode来读取block;如果客户端本身就是DataNode,那么将从本地直接获取数据.读取完当前block的数据后,关闭与当前的DataNode连接,并为读取下一个block寻找最佳的DataNode;当读完列表的block后,且文件读取还没有结束,客户端开发库会继续向Namenode获取下 阅读全文
posted @ 2013-09-06 16:56 liutoutou 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1.输入文件: 文件是MapReduce任务的数据的初始存储地。正常情况下,输入文件一般是存在HDFS里。这些文件的格式可以是任意的;我们可以使用基于行的日志文件,也可以使用二进制格式,多行输入记录或其它一些格式。这些文件会很大—数十G或更大。2. 输入格式:InputFormat类定义了如何分割和读取输入文件,它提供有下面的几个功能:选择作为输入的文件或对象;定义把文件划分到任务的InputSplits;为RecordReader读取文件提供了一个工厂方法; Hadoop自带了好几个输入格式。其中有一个抽象类叫FileInputFormat,所有操作文件的InputFormat类都是从它那. 阅读全文
posted @ 2013-09-06 16:42 liutoutou 阅读(204) 评论(0) 推荐(0) 编辑