맵퍼 및 감속기를 설정하지 않고 다른 프로그램에서 매개 변수를 설정하지 않는 hadoop map-reduce 프로그램을 작성 중입니다. 저는 작업이 출력과 동일한 출력을 출력 파일에 보낼 것이라고 가정했습니다. 하지만 내가 그 탭 (아마)에 의해 구분 된 모든 라인 출력 파일에 더미 정수 값을 인쇄하는 것으로 나타났습니다. 여기 Map-reduce 출력 파일에서 알 수없는 정수 값 가져 오기
내 코드입니다 :import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public class MinimalMapReduce extends Configured implements Tool {
public int run(String[] args) throws Exception {
Job job = new Job(getConf());
job.setJarByClass(getClass());
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
return job.waitForCompletion(true) ? 0 : 1;
}
public static void main(String[] args) {
String argg[] = {"/Users/***/Documents/hadoop/input/input.txt",
"/Users/***/Documents/hadoop/output_MinimalMapReduce"};
try{
int exitCode = ToolRunner.run(new MinimalMapReduce(), argg);
System.exit(exitCode);
}catch(Exception e){
e.printStackTrace();
}
}
}
그리고 여기에 입력 :
2011 22
2011 25
2012 40
2013 35
2013 38
2014 44
2015 43
그리고 여기에 출력됩니다 :
0 2011 22
8 2011 25
16 2012 40
24 2013 35
32 2013 38
40 2014 44
48 2015 43
내가 같은 OUPUT 등을 얻을 수있는 방법 입력?
이것은 매퍼를 지정하지 않아도 'IdentityMapper'가 항상 실행되기 때문입니다. 각 줄 앞에 _unknown 정수 _는 파일 시작 부분에서 해당 줄의 오프셋입니다. – philantrovert
@philantrovert 나는 이것을 해답으로 올리겠다. –
@BinaryNerd 그것, 선생님. 당신이 그것을 upvote 있는지 확인하십시오. 나는 너를 계속 지켜 볼거야;) – philantrovert