Hadoop 0.20.2のTeraSortクラスのマッパーにいくつかのコードを挿入する予定です。ただし、ソースコードを確認した後、マッパーが実装されているセグメントを見つけることはできません。 通常、マッパークラスを示すjob.setMapperClass()というメソッドがあります。しかし、TeraSortでは、setInputformat、setOutputFormatのようなものしか見ることができません。マッパーとメソッドを削減する場所を見つけることができませんか? これについて何かヒントを教えてください。おかげで、 ソースコードはhadoop用マッパー/レデューサーTeraSort
job.setMapperClass(ValidateMapper.class);
job.setReducerClass(ValidateReducer.class);
私はTeraSortため、このような方法を見ることができない、TeraValidateのように、私たちはのようなコードを見つけることができ、他のクラスの
public int run(String[] args) throws Exception {
LOG.info("starting");
JobConf job = (JobConf) getConf();
Path inputDir = new Path(args[0]);
inputDir = inputDir.makeQualified(inputDir.getFileSystem(job));
Path partitionFile = new Path(inputDir, TeraInputFormat.PARTITION_FILENAME);
URI partitionUri = new URI(partitionFile.toString() +
"#" + TeraInputFormat.PARTITION_FILENAME);
TeraInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setJobName("TeraSort");
job.setJarByClass(TeraSort.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setInputFormat(TeraInputFormat.class);
job.setOutputFormat(TeraOutputFormat.class);
job.setPartitionerClass(TotalOrderPartitioner.class);
TeraInputFormat.writePartitionFile(job, partitionFile);
DistributedCache.addCacheFile(partitionUri, job);
DistributedCache.createSymlink(job);
job.setInt("dfs.replication", 1);
// TeraOutputFormat.setFinalSync(job, true);
job.setNumReduceTasks(0);
JobClient.runJob(job);
LOG.info("done");
return 0;
}
このようなものです。
おかげで、