我正在使用hadoop框架用java编写一个应用程序,它应该给我3个列:month定义为size,item定义为iteam\u size,total value。我正在实现我自己的可写类MyCode,但是它给了我不同的输出,有人能告诉我出了什么问题吗?这是我的code:-
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(Map器类)
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++;
}
}
减速机class:-
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);
}
}
驱动器类
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 : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@d935de01
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
com.some.writable.Mycode@6240ecc 92
com.some.writable.Mycode@6240ecc 34
com.some.writable.Mycode@6240ecc 100
com.some.writable.Mycode@6240ecc 100
com.some.writable.Mycode@6240ecc 11
com.some.writable.Mycode@6240ecc 399
com.some.writable.Mycode@6240ecc 200
com.some.writable.Mycode@6240ecc 100
com.some.writable.Mycode@6240ecc 23
com.some.writable.Mycode@6240ecc 45
com.some.writable.Mycode@6240ecc 12
com.some.writable.Mycode@6240ecc 89
com.some.writable.Mycode@6240ecc 200
com.some.writable.Mycode@6240ecc 100
com.some.writable.Mycode@bf256a36 200
com.some.writable.Mycode@bf256a36 293
com.some.writable.Mycode@bf256a36 12
com.some.writable.Mycode@bf256a36 200
com.some.writable.Mycode@bf256a36 214
com.some.writable.Mycode@bf256a36 34
com.some.writable.Mycode@bf256a36 45
com.some.writable.Mycode@bf256a36 12
com.some.writable.Mycode@bf256a36 65
com.some.writable.Mycode@bf256a36 29
com.some.writable.Mycode@bf256a36 11
com.some.writable.Mycode@bf256a36 53
com.some.writable.Mycode@bf256a36 39
com.some.writable.Mycode@bf256a36 50
com.some.writable.Mycode@aa5bd953 11
com.some.writable.Mycode@aa5bd953 39
com.some.writable.Mycode@aa5bd953 65
com.some.writable.Mycode@aa5bd953 54
com.some.writable.Mycode@aa5bd953 53
com.some.writable.Mycode@aa5bd953 400
com.some.writable.Mycode@aa5bd953 200
com.some.writable.Mycode@aa5bd953 300
com.some.writable.Mycode@aa5bd953 14
com.some.writable.Mycode@aa5bd953 33
com.some.writable.Mycode@aa5bd953 34
com.some.writable.Mycode@aa5bd953 11
com.some.writable.Mycode@aa5bd953 89
com.some.writable.Mycode@aa5bd953 100
com.some.writable.Mycode@5e971ac 14
com.some.writable.Mycode@5e971ac 15
com.some.writable.Mycode@5e971ac 83
com.some.writable.Mycode@5e971ac 11
com.some.writable.Mycode@5e971ac 512
com.some.writable.Mycode@5e971ac 499
com.some.writable.Mycode@5e971ac 200
com.some.writable.Mycode@5e971ac 100
com.some.writable.Mycode@5e971ac 32
com.some.writable.Mycode@5e971ac 65
com.some.writable.Mycode@5e971ac 48
com.some.writable.Mycode@5e971ac 22
com.some.writable.Mycode@5e971ac 100
com.some.writable.Mycode@5e971ac 240
com.some.writable.Mycode@669ec19 45
com.some.writable.Mycode@669ec19 32
com.some.writable.Mycode@669ec19 12
com.some.writable.Mycode@669ec19 25
com.some.writable.Mycode@669ec19 21
com.some.writable.Mycode@669ec19 65
com.some.writable.Mycode@669ec19 300
com.some.writable.Mycode@669ec19 200
com.some.writable.Mycode@669ec19 100
com.some.writable.Mycode@669ec19 65
com.some.writable.Mycode@669ec19 89
com.some.writable.Mycode@669ec19 200
com.some.writable.Mycode@669ec19 189
com.some.writable.Mycode@669ec19 0
com.some.writable.Mycode@14ebbcbe 51
com.some.writable.Mycode@14ebbcbe 23
com.some.writable.Mycode@14ebbcbe 65
com.some.writable.Mycode@14ebbcbe 98
com.some.writable.Mycode@14ebbcbe 0
com.some.writable.Mycode@14ebbcbe 24
com.some.writable.Mycode@14ebbcbe 45
com.some.writable.Mycode@14ebbcbe 12
com.some.writable.Mycode@14ebbcbe 599
com.some.writable.Mycode@14ebbcbe 52
com.some.writable.Mycode@14ebbcbe 13
com.some.writable.Mycode@14ebbcbe 53
com.some.writable.Mycode@14ebbcbe 92
com.some.writable.Mycode@14ebbcbe 1
com.some.writable.Mycode@57d97e9 143
com.some.writable.Mycode@57d97e9 41
com.some.writable.Mycode@57d97e9 244
com.some.writable.Mycode@57d97e9 43
com.some.writable.Mycode@57d97e9 50
com.some.writable.Mycode@57d97e9 25
com.some.writable.Mycode@57d97e9 100
com.some.writable.Mycode@57d97e9 56
com.some.writable.Mycode@57d97e9 192
com.some.writable.Mycode@57d97e9 52
com.some.writable.Mycode@57d97e9 22
com.some.writable.Mycode@57d97e9 100
com.some.writable.Mycode@57d97e9 41
com.some.writable.Mycode@57d97e9 41
com.some.writable.Mycode@252e0d16 53
com.some.writable.Mycode@252e0d16 55
com.some.writable.Mycode@252e0d16 100
com.some.writable.Mycode@252e0d16 41
com.some.writable.Mycode@252e0d16 21
com.some.writable.Mycode@252e0d16 289
com.some.writable.Mycode@252e0d16 33
com.some.writable.Mycode@252e0d16 15
com.some.writable.Mycode@252e0d16 35
com.some.writable.Mycode@252e0d16 395
com.some.writable.Mycode@252e0d16 11
com.some.writable.Mycode@252e0d16 400
com.some.writable.Mycode@252e0d16 0
com.some.writable.Mycode@252e0d16 14
com.some.writable.Mycode@66a1804 100
com.some.writable.Mycode@66a1804 433
com.some.writable.Mycode@66a1804 200
com.some.writable.Mycode@66a1804 100
com.some.writable.Mycode@66a1804 100
com.some.writable.Mycode@66a1804 100
com.some.writable.Mycode@66a1804 32
com.some.writable.Mycode@66a1804 22
com.some.writable.Mycode@66a1804 0
com.some.writable.Mycode@66a1804 22
com.some.writable.Mycode@66a1804 22
com.some.writable.Mycode@66a1804 11
com.some.writable.Mycode@66a1804 104
com.some.writable.Mycode@66a1804 45
com.some.writable.Mycode@dbb5e22f 11
com.some.writable.Mycode@dbb5e22f 51
com.some.writable.Mycode@dbb5e22f 22
com.some.writable.Mycode@dbb5e22f 150
com.some.writable.Mycode@dbb5e22f 31
com.some.writable.Mycode@dbb5e22f 15
com.some.writable.Mycode@dbb5e22f 24
com.some.writable.Mycode@dbb5e22f 500
com.some.writable.Mycode@dbb5e22f 200
com.some.writable.Mycode@dbb5e22f 53
com.some.writable.Mycode@dbb5e22f 192
com.some.writable.Mycode@dbb5e22f 67
com.some.writable.Mycode@dbb5e22f 240
com.some.writable.Mycode@dbb5e22f 0
com.some.writable.Mycode@63e6844 100
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 150
com.some.writable.Mycode@63e6844 29
com.some.writable.Mycode@63e6844 40
com.some.writable.Mycode@63e6844 70
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 50
com.some.writable.Mycode@63e6844 200
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 0
com.some.writable.Mycode@63e6844 205
com.some.writable.Mycode@32599 0
com.some.writable.Mycode@32599 100
com.some.writable.Mycode@32599 200
com.some.writable.Mycode@32599 300
com.some.writable.Mycode@32599 0
com.some.writable.Mycode@32599 323
com.some.writable.Mycode@32599 50
com.some.writable.Mycode@32599 0
com.some.writable.Mycode@32599 50
com.some.writable.Mycode@32599 200
com.some.writable.Mycode@32599 100
com.some.writable.Mycode@32599 0
com.some.writable.Mycode@32599 100
com.some.writable.Mycode@32599 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 : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@77c604f7
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
com.some.writable.Mycode@5e971ac1941
com.some.writable.Mycode@252e0d161462
com.some.writable.Mycode@325991446
com.some.writable.Mycode@bf256a361257
com.some.writable.Mycode@6240ecc1505
com.some.writable.Mycode@57d97e91150
com.some.writable.Mycode@14ebbcbe1128
com.some.writable.Mycode@aa5bd9531403
com.some.writable.Mycode@669ec191343
com.some.writable.Mycode@63e6844844
com.some.writable.Mycode@dbb5e22f1556
com.some.writable.Mycode@66a18041291
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
我不知道我在哪里犯了错误,请注意
1条答案
按热度按时间rekjcdws1#
你没有在你的类中提供tostring方法,这就是你看到的原因
而不是
例子:
还有一些注意事项:
哈希代码错误。至少使用
31 * first.hashCode() + second.hashCode();
将数组声明从map
方法对字段进行分类