bsp;
//private Log LOG = LogFactory.getLog(ZRecordReader.class);//日志写入系统,可加可不加
@Override
public void initialize(InputSplit split, TaskAttemptContext context)
throws IOException, InterruptedException {
// 初始化函数
FileSplit inputsplit = (FileSplit)split;
start = inputsplit.getStart(); //得到此分片开始位置
end = start + inputsplit.getLength();//结束此分片位置
final Path file = inputsplit.getPath();
// 打开文件
FileSystem fs = file.getFileSystem(context.getConfiguration());
FSDataInputStream fileIn = fs.open(inputsplit.getPath());
//将文件指针移动到当前分片,因为每次默认打开文件时,其指针指向开头
fileIn.seek(start);
in = new LineReader(fileIn, context.getConfiguration());
if (start != 0)
{
System.out.println("4");
//如果这不是第一个分片,那么假设第一个分片是0——4,那么,第4个位置已经被读取,则需要跳过4,否则会产生读入错误,因为你回头又去读之前读过的地方
start += in.readLine(new Text(), 0, maxBytesToConsume(start));
}
pos = start;
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页