1、学习hadoop MapReduce流程:
(1)使用split对输入文件进行分片,每个分片作为一个map任务。注意,输入分片存储的 并非数据本身,而是一个分片长度和一个记录数据的位置的数组。分片的大小由block决定(当第n块大小大于实际文件大小时,按照实际文件大小占用空间。)
(2)对切分完的输入按照一定的规则解析成(k,v)对。
(3)调用Mapper类中的map()方法,对第二步解析出来的(k,v)对进行操作。这也是我们需要实现真正逻辑的地方。每调用一次map()方法,就会输出0个或1个或多个(k,v)对。
小知识:Hadoop 2.x默认的block大小是128MB,Hadoop 1.x默认的block大小是64MB,可以在hdfs-site.xml中设置dfs.block.size,注意单位是byte。分片大小范围可以在mapred-site.xml中设置,mapred.min.split.size mapred.max.split.size,minSplitSize大小默认为1B,maxSplitSize大小默认为Long.MAX_VALUE = 9223372036854775807。
public class AccessLogsMapper extends Mapper<Object, Text, Text, Text> {
private