Hadoop 사용자 정의 카운터
2610 단어 hadoop
public static class mapper extends Mapper<Text, BytesWritable, Text , Text>{
private Counter c ;
@Override
protected void setup(Context context) throws IOException,
InterruptedException {
c = context.getCounter("FILE", "COUNT");
}
@Override
protected void map(Text key, BytesWritable value, Context context)
throws IOException, InterruptedException {
c.increment(1);
context.write(key, new Text(value.getBytes()));
}
@Override
protected void cleanup(Context context)
throws IOException, InterruptedException {
}
}
public static class reducer extends Reducer<Text, Text, Text, Text>{
@Override
protected void reduce(Text arg0, Iterable<Text> arg1,
Context context)
throws IOException, InterruptedException {
Iterator<Text> itr = arg1.iterator();
while(itr.hasNext()){
itr.next();
}
context.write(arg0, new Text("heihei"));
}
}
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException{
Configuration conf = new Configuration();
Job job = new Job(conf);
job.setJarByClass(testCounter.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(mapper.class);
job.setReducerClass(reducer.class);
job.setInputFormatClass(WholeFileInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.waitForCompletion(true);
String num = job.getCounters().findCounter("Map-Reduce Framework", "Map input records").getName();
System.out.println(num);
}
계산 기 를 가 져 오 는 것 은 job 가 완 료 된 후에 만 job. wait ForComplete (true) 입 니 다.그 다음 에 앞 에 놓 으 면 불법 안전 의 오 류 를 보답 하지만 reducer 함수 에 서 는 오 류 를 보고 할 수도 있 고 카운터 값 을 얻 을 수도 없습니다. 아마도 설계 자 들 은 reducer 안의 이상 을 잡 지 않 았 을 것 입 니 다.
카운터 에는 사용자 정의 카운터 와 내장 카운터 가 있 습 니 다.
정적 카운터 와 동적 카운터, 전 자 는 매 거 진 을 사용 하고 안전 합 니 다. 후 자 는 문자열 을 직접 사용 합 니 다. 가끔 은 편리 함 을 표시 하기 위해 properties 속성 파일 을 만 듭 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure HDInsight + Microsoft R Server에서 연산 처리 분산Microsoft Azure HDInsight는 Microsoft가 제공하는 Hadoop의 PaaS 서비스로 인프라 주변의 구축 노하우를 몰라도 훌륭한 Hadoop 클러스터를 구축할 수 있는 훌륭한 서비스입니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.