2016-12-25 10 views
1

hadoopフレームワークを使用してJavaでアプリケーションを作成しています。これは、サイズ、iteam_sizeとして定義された項目、合計値を3か月定義します。私は自分の書き込み可能なクラスを実装しています。私のコードという名前ですが、私は別の出力を与えてくれます。ここに私のコードは次のとおりです。 -Hadoopフレームワークを使用してJavaで異なる出力が発生する

Mycode(カスタム書き込み可能)

package com.some.writable; 

import java.io.DataInput; 

import java.io.DataOutput; 

import java.io.IOException; 

import org.apache.hadoop.io.Text; 

import org.apache.hadoop.io.WritableComparable; 

public class Mycode implements WritableComparable<Mycode> { 

    Text first; 
    Text second; 

    public Mycode(Text first, Text second) { 
     set(first, second); 
    } 

    public Mycode() { 
     set(new Text(), new Text()); 
    } 

    public Mycode(String first, String second) { 
     set(new Text(first), new Text(second)); 
    } 

    public Text getFirst() { 
     return first; 
    } 

    public Text getSecond() { 
     return second; 
    } 

    public void set(Text first, Text second) { 
     this.first = first; 
     this.second = second; 
    } 

    @Override 
    public void readFields(DataInput in) throws IOException { 
     first.readFields(in); 
     second.readFields(in); 
    } 

    @Override 
    public void write(DataOutput out) throws IOException { 
     first.write(out); 
     second.write(out); 
    } 
    @Override 
    public int compareTo(Mycode tp) { 
     int cmp = first.compareTo(tp.first); 

     if (cmp != 0) { 
      return cmp; 
     } 

     return second.compareTo(tp.second); 
    } 

    @Override 
    public int hashCode(){ 
     return first.hashCode() + second.hashCode(); 
    } 

    @Override 
    public boolean equals(Object o) 
    { 
     if(o instanceof Mycode) 
     { 
      Mycode tp = (Mycode) o; 
      return first.equals(tp.first) && second.equals(tp.second); 
     } 
     return false; 
    } 

} 

mywritablemapper.java(マッパークラス)

package com.some.writable; 

import java.io.IOException; 

import java.util.StringTokenizer; 

import org.apache.hadoop.io.IntWritable; 

import org.apache.hadoop.io.LongWritable; 

import org.apache.hadoop.io.Text; 

import org.apache.hadoop.mapreduce.Mapper; 

public class mywritablemapper extends 
    Mapper<LongWritable, Text, Mycode, IntWritable>{ 
    static int i=-1; 
    static int j=-1; 
    Mycode n=new Mycode(); 
@Override 
    public void map(LongWritable key, Text value, Context context) 
      throws IOException, InterruptedException, NumberFormatException { 
    String[] iteam= {"NIVEA","CHICKEN","BURGER","JEANS","SHIRT","T-SHIRT","BOOKS","JACKETS","SHOES","MOBILES","PEPSI","PEN"}; 
    String[] months = {"JAN", "FEB", "MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"}; 
    String iteam_size= iteam[j+1]; 
    String size= months[i+1]; 
    String line = value.toString(); 
    StringTokenizer st=new StringTokenizer(line," "); 
    String agg = new String(); 
    while(st.hasMoreTokens()) 
     { 
      agg=st.nextToken(); 
      IntWritable a = new IntWritable(Integer.parseInt(agg)); 
      Text z= new Text(size); 
      Text x =new Text(iteam_size); 
      n.set(z,x); 
      context.write(n,a); 
      System.out.println(n+" "+a); 
      } 
    j++; 
    i++; 
} 
} 

減速クラス: -

package com.some.writable; 
import java.io.IOException; 

import java.util.StringTokenizer; 

import org.apache.hadoop.io.IntWritable; 
import org.apache.hadoop.io.LongWritable; 
import org.apache.hadoop.io.Text; 
import org.apache.hadoop.mapreduce.Mapper; 
import org.apache.hadoop.mapreduce.Reducer; 
public class mywritablereducer extends Reducer<Mycode, IntWritable, Text, IntWritable>{ 
    Text ab = new Text(); 
    public void reduce(Mycode key, Iterable<IntWritable> values, Context context) 
      throws IOException, InterruptedException { 

     int count=0; 
     for(IntWritable value: values) 
     { 
      count += value.get(); 
     } 

     ab.set(key.toString()); 
     context.write(ab, new IntWritable(count)); 
     System.out.println(ab+""+count); 
    } 

} 

driverclass

package com.some.writable; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.io.IntWritable; 
import org.apache.hadoop.io.Text; 
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.GenericOptionsParser; 
//import com.some.iteams.Iteamreducer; 
import com.some.writable.mywritablemapper; 
import com.some.writable.mywritablereducer; 
public class mywritabledriver { 
    public static void main(String[] args) throws Exception { 
     Configuration conf = new Configuration(); 
     String[] programArgs = 
      new GenericOptionsParser(conf, args).getRemainingArgs(); 
     /*if (programArgs.length != 2) { 
     System.err.println("Usage: MaxTemp <in> <out>"); 
     System.exit(2); 
     }*/ 
     Job job = new Job(conf, "MycodeWritable"); 
     job.setJarByClass(mywritabledriver.class); 
     job.setMapperClass(mywritablemapper.class); 
     job.setReducerClass(mywritablereducer.class); 
     job.setMapOutputKeyClass(Mycode.class); 
     job.setMapOutputValueClass(IntWritable.class); 
     job.setOutputKeyClass(Text.class); 
     job.setOutputValueClass(IntWritable.class); 
     FileInputFormat.addInputPath(job, new Path("/home/biadmin/Record.txt")); 
     FileOutputFormat.setOutputPath(job, new Path("/home/biadmin/dead")); 
     System.exit(job.waitForCompletion(true) ? 0 : 1); 
    } 
} 

私はミスをやっているところを知らないアウトプット(出力は月の列、項目欄は、合計値のようにする必要があります)

16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
16/12/25 04:04:31 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.queue.name is deprecated. Instead, use mapreduce.job.queuename 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.submit.replication is deprecated. Instead, use mapreduce.client.submit.file.replication 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.used.genericoptionsparser is deprecated. Instead, use mapreduce.client.genericoptionsparser.used 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.archives is deprecated. Instead, use mapreduce.job.cache.archives 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.files is deprecated. Instead, use mapreduce.job.cache.files 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
16/12/25 04:04:31 WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String). 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.input.pathFilter.class is deprecated. Instead, use mapreduce.input.pathFilter.class 
16/12/25 04:04:31 INFO input.FileInputFormat: Total input paths to process : 1 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.queue.name is deprecated. Instead, use mapreduce.job.queuename 
16/12/25 04:04:31 INFO Configuration.deprecation: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.local.dir is deprecated. Instead, use mapreduce.cluster.local.dir 
16/12/25 04:04:31 INFO Configuration.deprecation: local.cache.size is deprecated. Instead, use mapreduce.tasktracker.cache.local.size 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.files.timestamps is deprecated. Instead, use mapreduce.job.cache.files.timestamps 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.classpath.files is deprecated. Instead, use mapreduce.job.classpath.files 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.archives.timestamps is deprecated. Instead, use mapreduce.job.cache.archives.timestamps 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.classpath.archives is deprecated. Instead, use mapreduce.job.classpath.archives 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.localFiles is deprecated. Instead, use mapreduce.job.cache.local.files 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.cache.localArchives is deprecated. Instead, use mapreduce.job.cache.local.archives 
16/12/25 04:04:31 WARN mapred.LocalJobRunner: LocalJobRunner does not support symlinking into current working dir. 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.child.tmp is deprecated. Instead, use mapreduce.task.tmp.dir 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
16/12/25 04:04:31 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name 
16/12/25 04:04:31 INFO Configuration.deprecation: jobclient.output.filter is deprecated. Instead, use mapreduce.client.output.filter 
16/12/25 04:04:31 INFO mapred.JobClient: Running job: job_local_0001 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.profile is deprecated. Instead, use mapreduce.task.profile 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.profile.maps is deprecated. Instead, use mapreduce.task.profile.maps 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.profile.reduces is deprecated. Instead, use mapreduce.task.profile.reduces 
16/12/25 04:04:31 INFO mapred.LocalJobRunner: OutputCommitter set in config null 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir 
16/12/25 04:04:31 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces 
16/12/25 04:04:31 INFO Counters.deprecation: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.local.dir is deprecated. Instead, use mapreduce.cluster.local.dir 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.tip.id is deprecated. Instead, use mapreduce.task.id 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.is.map is deprecated. Instead, use mapreduce.task.ismap 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.task.partition is deprecated. Instead, use mapreduce.task.partition 
16/12/25 04:04:31 INFO Configuration.deprecation: mapred.job.id is deprecated. Instead, use mapreduce.job.id 
16/12/25 04:04:31 INFO Configuration.deprecation: hadoop.net.static.resolutions is deprecated. Instead, use mapreduce.tasktracker.net.static.resolutions 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.work.output.dir is deprecated. Instead, use mapreduce.task.output.dir 
16/12/25 04:04:32 INFO util.ProcessTree: setsid exited with exit code 0 
16/12/25 04:04:32 INFO mapred.Task: Using ResourceCalculatorPlugin : [email protected] 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords 
16/12/25 04:04:32 INFO Configuration.deprecation: io.sort.spill.percent is deprecated. Instead, use mapreduce.map.sort.spill.percent 
16/12/25 04:04:32 INFO Configuration.deprecation: io.sort.mb is deprecated. Instead, use mapreduce.task.io.sort.mb 
16/12/25 04:04:32 INFO mapred.MapTask: io.sort.mb = 100 
16/12/25 04:04:32 INFO mapred.MapTask: data buffer = 79691776/99614720 
16/12/25 04:04:32 INFO mapred.MapTask: record buffer = 262144/327680 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.output.key.comparator.class is deprecated. Instead, use mapreduce.job.output.key.comparator.class 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.compress.map.output is deprecated. Instead, use mapreduce.map.output.compress 
16/12/25 04:04:32 INFO Configuration.deprecation: min.num.spills.for.combine is deprecated. Instead, use mapreduce.map.combine.minspills 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.linerecordreader.maxlength is deprecated. Instead, use mapreduce.input.linerecordreader.line.maxlength 
[email protected] 92 
[email protected] 34 
[email protected] 100 
[email protected] 100 
[email protected] 11 
[email protected] 399 
[email protected] 200 
[email protected] 100 
[email protected] 23 
[email protected] 45 
[email protected] 12 
[email protected] 89 
[email protected] 200 
[email protected] 100 
[email protected] 200 
[email protected] 293 
[email protected] 12 
[email protected] 200 
[email protected] 214 
[email protected] 34 
[email protected] 45 
[email protected] 12 
[email protected] 65 
[email protected] 29 
[email protected] 11 
[email protected] 53 
[email protected] 39 
[email protected] 50 
[email protected] 11 
[email protected] 39 
[email protected] 65 
[email protected] 54 
[email protected] 53 
[email protected] 400 
[email protected] 200 
[email protected] 300 
[email protected] 14 
[email protected] 33 
[email protected] 34 
[email protected] 11 
[email protected] 89 
[email protected] 100 
[email protected] 14 
[email protected] 15 
[email protected] 83 
[email protected] 11 
[email protected] 512 
[email protected] 499 
[email protected] 200 
[email protected] 100 
[email protected] 32 
[email protected] 65 
[email protected] 48 
[email protected] 22 
[email protected] 100 
[email protected] 240 
[email protected] 45 
[email protected] 32 
[email protected] 12 
[email protected] 25 
[email protected] 21 
[email protected] 65 
[email protected] 300 
[email protected] 200 
[email protected] 100 
[email protected] 65 
[email protected] 89 
[email protected] 200 
[email protected] 189 
[email protected] 0 
[email protected] 51 
[email protected] 23 
[email protected] 65 
[email protected] 98 
[email protected] 0 
[email protected] 24 
[email protected] 45 
[email protected] 12 
[email protected] 599 
[email protected] 52 
[email protected] 13 
[email protected] 53 
[email protected] 92 
com.some.writable.[email protected] 1 
[email protected] 143 
[email protected] 41 
[email protected] 244 
[email protected] 43 
[email protected] 50 
[email protected] 25 
[email protected] 100 
[email protected] 56 
[email protected] 192 
[email protected] 52 
[email protected] 22 
[email protected] 100 
[email protected] 41 
[email protected] 41 
[email protected] 53 
[email protected] 55 
[email protected] 100 
[email protected] 41 
[email protected] 21 
[email protected] 289 
[email protected] 33 
[email protected] 15 
[email protected] 35 
[email protected] 395 
[email protected] 11 
[email protected] 400 
[email protected] 0 
[email protected] 14 
[email protected] 100 
[email protected] 433 
[email protected] 200 
[email protected] 100 
[email protected] 100 
[email protected] 100 
[email protected] 32 
[email protected] 22 
[email protected] 0 
[email protected] 22 
[email protected] 22 
[email protected] 11 
[email protected] 104 
[email protected] 45 
[email protected] 11 
[email protected] 51 
[email protected] 22 
[email protected] 150 
[email protected] 31 
[email protected] 15 
[email protected] 24 
[email protected] 500 
[email protected] 200 
[email protected] 53 
[email protected] 192 
[email protected] 67 
[email protected] 240 
[email protected] 0 
[email protected]6844 100 
[email protected] 0 
[email protected] 150 
[email protected] 29 
[email protected] 40 
[email protected] 70 
[email protected] 0 
[email protected] 0 
[email protected] 50 
[email protected] 200 
[email protected] 0 
[email protected] 0 
[email protected] 0 
[email protected] 205 
[email protected] 0 
[email protected] 100 
[email protected] 200 
[email protected] 300 
[email protected] 0 
[email protected] 323 
[email protected] 50 
[email protected] 0 
[email protected] 50 
[email protected] 200 
[email protected] 100 
[email protected] 0 
[email protected] 100 
[email protected] 23 
16/12/25 04:04:32 INFO mapred.MapTask: Starting flush of map output 
16/12/25 04:04:32 INFO mapred.MapTask: Finished spill 0 
16/12/25 04:04:32 INFO mapred.Task: Task:attempt_local_0001_m_000000_0 is done. And is in the process of commiting 
16/12/25 04:04:32 INFO Counters.deprecation: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead 
16/12/25 04:04:32 INFO mapred.LocalJobRunner: 
16/12/25 04:04:32 INFO mapred.Task: Task 'attempt_local_0001_m_000000_0' done. 
16/12/25 04:04:32 INFO Counters.deprecation: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
16/12/25 04:04:32 INFO mapred.Task: Using ResourceCalculatorPlugin : [email protected] 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
16/12/25 04:04:32 INFO mapred.LocalJobRunner: 
16/12/25 04:04:32 INFO Configuration.deprecation: keep.failed.task.files is deprecated. Instead, use mapreduce.task.files.preserve.failedtasks 
16/12/25 04:04:32 INFO Configuration.deprecation: io.sort.factor is deprecated. Instead, use mapreduce.task.io.sort.factor 
16/12/25 04:04:32 INFO mapred.Merger: Merging 1 sorted segments 
16/12/25 04:04:32 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 2788 bytes 
16/12/25 04:04:32 INFO mapred.LocalJobRunner: 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.output.value.groupfn.class is deprecated. Instead, use mapreduce.job.output.group.comparator.class 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.output.compress is deprecated. Instead, use mapreduce.output.fileoutputformat.compress 
16/12/25 04:04:32 INFO Configuration.deprecation: mapred.textoutputformat.separator is deprecated. Instead, use mapreduce.output.textoutputformat.separator 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
16/12/25 04:04:32 INFO mapred.Task: Task:attempt_local_0001_r_000000_0 is done. And is in the process of commiting 
16/12/25 04:04:32 INFO Counters.deprecation: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead 
16/12/25 04:04:32 INFO mapred.LocalJobRunner: 
16/12/25 04:04:32 INFO mapred.Task: Task attempt_local_0001_r_000000_0 is allowed to commit now 
16/12/25 04:04:32 INFO output.FileOutputCommitter: Saved output of task 'attempt_local_0001_r_000000_0' to file:/home/biadmin/dead 
16/12/25 04:04:32 INFO mapred.LocalJobRunner: reduce > reduce 
16/12/25 04:04:32 INFO mapred.Task: Task 'attempt_local_0001_r_000000_0' done. 
16/12/25 04:04:32 INFO Configuration.deprecation: job.end.notification.url is deprecated. Instead, use mapreduce.job.end-notification.url 
16/12/25 04:04:32 INFO mapred.JobClient: map 100% reduce 100% 
16/12/25 04:04:32 INFO mapred.JobClient: Job complete: job_local_0001 
16/12/25 04:04:32 INFO mapred.JobClient: Counters: 20 
16/12/25 04:04:32 INFO mapred.JobClient: File System Counters 
16/12/25 04:04:32 INFO mapred.JobClient:  FILE: BYTES_READ=4452 
16/12/25 04:04:32 INFO mapred.JobClient:  FILE: BYTES_WRITTEN=198006 
16/12/25 04:04:32 INFO mapred.JobClient: org.apache.hadoop.mapreduce.TaskCounter 
16/12/25 04:04:32 INFO mapred.JobClient:  MAP_INPUT_RECORDS=12 
16/12/25 04:04:32 INFO mapred.JobClient:  MAP_OUTPUT_RECORDS=168 
16/12/25 04:04:32 INFO mapred.JobClient:  MAP_OUTPUT_BYTES=2450 
16/12/25 04:04:32 INFO mapred.JobClient:  MAP_OUTPUT_MATERIALIZED_BYTES=2792 
16/12/25 04:04:32 INFO mapred.JobClient:  SPLIT_RAW_BYTES=94 
16/12/25 04:04:32 INFO mapred.JobClient:  COMBINE_INPUT_RECORDS=0 
16/12/25 04:04:32 INFO mapred.JobClient:  COMBINE_OUTPUT_RECORDS=0 
16/12/25 04:04:32 INFO mapred.JobClient:  REDUCE_INPUT_GROUPS=12 
16/12/25 04:04:32 INFO mapred.JobClient:  REDUCE_SHUFFLE_BYTES=0 
16/12/25 04:04:32 INFO mapred.JobClient:  REDUCE_INPUT_RECORDS=168 
16/12/25 04:04:32 INFO mapred.JobClient:  REDUCE_OUTPUT_RECORDS=12 
16/12/25 04:04:32 INFO mapred.JobClient:  SPILLED_RECORDS=336 
16/12/25 04:04:32 INFO mapred.JobClient:  CPU_MILLISECONDS=0 
16/12/25 04:04:32 INFO mapred.JobClient:  PHYSICAL_MEMORY_BYTES=0 
16/12/25 04:04:32 INFO mapred.JobClient:  VIRTUAL_MEMORY_BYTES=0 
16/12/25 04:04:32 INFO mapred.JobClient:  COMMITTED_HEAP_BYTES=299237376 
16/12/25 04:04:32 INFO mapred.JobClient: File Input Format Counters 
16/12/25 04:04:32 INFO mapred.JobClient:  Bytes Read=680 
16/12/25 04:04:32 INFO mapred.JobClient: org.apache.hadoop.mapreduce.lib.output.FileOutputFormat$Counter 
16/12/25 04:04:32 INFO mapred.JobClient:  BYTES_WRITTEN=470 

はそれに

答えて

2

を見てくださいあなたは、あなたの中にtoStringメソッドを提供していませんでしたこのクラスは、それはあなたが

[email protected] 205 

代わりの

NIVEA JAN 205 
見る理由です

例:

@Override 
public String toString() { 
    return first.toString() + " " + second.toString(); 
} 

はまた、いくつかの注意事項:

  1. のhashCodeが間違っています。クラスのフィールドへmap方法から少なくとも31 * first.hashCode() + second.hashCode();
  2. 移動配列宣言を使用
+0

は、私はいくつかのチュートリアルや、私は私が書くことができるように、それらについての詳細を学びたいいくつかの並べ替えを意味私のハッシュコードにいくつかのより多くの情報を与えることができます効率的に感謝します。 – Anmol

+0

@Anmolこの質問をチェックすることができますhttp://stackoverflow.com/questions/113511/best-implementation-for-hashcode-method – AdamSkywalker

+0

@Anmolまたはこの投稿はhttps://www.mkyong.com/java/java-howオーバーライド - 等しい/ハッシュコード/ – AdamSkywalker

関連する問題