分享

运行wordcount报错

丹青穆怀 发表于 2017-3-14 17:35:08 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 34 20104

代码
package wordcount;

import java.io.IOException;
import java.util.StringTokenizer;

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.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {
        public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
                private final static IntWritable one = new IntWritable(1);
                private Text word = new Text();

                public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
                        StringTokenizer itr = new StringTokenizer(value.toString());
                        while (itr.hasMoreTokens()) {
                                word.set(itr.nextToken());
                                context.write(word, one);
                        }
                }
        }

        public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
                private IntWritable result = new IntWritable();

                public void reduce(Text key, Iterable<IntWritable> values, Context context)
                                throws IOException, InterruptedException {
                        int sum = 0;
                        for (IntWritable val : values) {
                                sum += val.get();
                        }
                        result.set(sum);
                        context.write(key, result);
                }
        }

        public static void main(String[] args) throws Exception {
                Configuration conf = new Configuration();
                String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
                if (otherArgs.length != 2) {
                        System.err.println("Usage:wordcount<in><out>");
                        System.exit(2);
                }
                Job job = new Job(conf, "wordcount");
                job.setJarByClass(WordCount.class);
                job.setMapperClass(TokenizerMapper.class);
                job.setCombinerClass(IntSumReducer.class);
                job.setReducerClass(IntSumReducer.class);
                job.setOutputKeyClass(Text.class);
                job.setOutputValueClass(IntWritable.class);
                FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
                FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
                System.exit(job.waitForCompletion(true) ? 0 : 1);

        }

}
报错一:
hadoop jar ~/workspace/HadoopTest02.jar wordcount.WordCount /user/hadoop/test1/input /user/hadoop/test1/output

Application application_1488773330457_0001 failed 2 times due to AM Container for appattempt_1488773330457_0001_000002 exited with exitCode: -1000
For more detailed output, check application tracking page:http://hadoop001:23188/proxy/application_1488773330457_0001/Then, click on links to logs of each attempt.
Diagnostics: Could not find any valid local directory for nmPrivate/container_1488773330457_0001_02_000001.tokens
Failing this attempt. Failing the application.

报错二:
hadoop jar ~/workspace/HadoopTest02.jar wordcount.WordCount /user/hadoop/test1/input /user/hadoop/test1/output

Usage:wordcount<in><out>

没有识别后面的俩路径,什么情况???



已有(35)人评论

跳转到指定楼层
langke93 发表于 2017-3-14 17:49:39
/user/hadoop/test1/input /user/hadoop/test1/output
你把路径写错了呗
是/usr不是/user
回复

使用道具 举报

丹青穆怀 发表于 2017-3-14 17:54:15
langke93 发表于 2017-3-14 17:49
/user/hadoop/test1/input /user/hadoop/test1/output
你把路径写错了呗
是/usr不是/user

[hadoop@hadoop001 host_dir]$ hadoop fs -lsr /user/hadoop/test1/input
lsr: DEPRECATED: Please use 'ls -R' instead.
-rw-r--r--   3 hadoop hadoop         28 2017-03-14 16:47 /user/hadoop/test1/input/a
-rw-r--r--   3 hadoop hadoop         24 2017-03-14 16:47 /user/hadoop/test1/input/b
-rw-r--r--   3 hadoop hadoop         29 2017-03-14 16:47 /user/hadoop/test1/input/c
-rw-r--r--   3 hadoop hadoop         27 2017-03-14 16:47 /user/hadoop/test1/input/d

回复

使用道具 举报

langke93 发表于 2017-3-14 17:59:25
丹青穆怀 发表于 2017-3-14 17:54
[hadoop@hadoop001 host_dir]$ hadoop fs -lsr /user/hadoop/test1/input
lsr: DEPRECATED: Please use  ...

写hdfs的全路径。hdfs://............
回复

使用道具 举报

丹青穆怀 发表于 2017-3-14 18:01:38
langke93 发表于 2017-3-14 17:59
写hdfs的全路径。hdfs://............

没有用,我试过了。。
[hadoop@hadoop001 hadoop]$ hadoop jar ~/workspace/HadoopTest02.jar wordcount.WordCount hdfs://beh/user/hadoop/test1/input hdfs://beh/user/hadoop/test1/output
Usage:wordcount<in><out>

回复

使用道具 举报

nextuser 发表于 2017-3-14 18:22:36
丹青穆怀 发表于 2017-3-14 18:01
没有用,我试过了。。
[hadoop@hadoop001 hadoop]$ hadoop jar ~/workspace/HadoopTest02.jar wordcount ...

/user/hadoop/test1/output
这个路径创建下
回复

使用道具 举报

SuperDove 发表于 2017-3-14 18:25:42
hdfs://master:8020/user/hadoop/test1/input
hdfs://master:8020/user/hadoop/test1/output
回复

使用道具 举报

丹青穆怀 发表于 2017-3-15 11:04:46
SuperDove 发表于 2017-3-14 18:25
hdfs://master:8020/user/hadoop/test1/input
hdfs://master:8020/user/hadoop/test1/output

这样写的话,集群配置的双namenode就没有用了,ha也没有用了。
回复

使用道具 举报

丹青穆怀 发表于 2017-3-15 11:05:31
nextuser 发表于 2017-3-14 18:22
/user/hadoop/test1/output
这个路径创建下

这个也不行啊!
回复

使用道具 举报

hyj 发表于 2017-3-15 11:07:34

贴出问题来
回复

使用道具 举报

1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条