2015-03-30 2 views
5

Я пытаюсь проанализировать Wikipedia article view dataset с использованием Amazon EMR. Этот набор данных содержит статистику просмотра страниц за трехмесячный период (1 января 2011 года - 31 марта 2011 года). Я пытаюсь найти статью с наибольшим количеством просмотров за это время. Вот код, я использую:AWS EMR Step не удалось, поскольку созданные задания не удалось

public class mostViews { 

public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { 

    private final static IntWritable views = new IntWritable(1); 
    private Text article = new Text(); 

    public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { 

     String line = value.toString(); 

     String[] words = line.split(" "); 
     article.set(words[1]); 
     views.set(Integer.parseInt(words[2])); 
     output.collect(article, views); 
    } 
} 

public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { 

    public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { 

     int sum = 0; 

     while (values.hasNext()) 
     { 
      sum += values.next().get(); 
     } 
     output.collect(key, new IntWritable(sum)); 
    } 
} 

public static void main(String[] args) throws Exception { 
    JobConf conf = new JobConf(mostViews.class); 
    conf.setJobName("wordcount"); 

    conf.setOutputKeyClass(Text.class); 
    conf.setOutputValueClass(IntWritable.class); 

    conf.setMapperClass(Map.class); 
    conf.setCombinerClass(Reduce.class); 
    conf.setReducerClass(Reduce.class); 

    conf.setInputFormat(TextInputFormat.class); 
    conf.setOutputFormat(TextOutputFormat.class); 

    FileInputFormat.setInputPaths(conf, new Path(args[0])); 
    FileOutputFormat.setOutputPath(conf, new Path(args[1])); 

    JobClient.runJob(conf); 
} 
} 

Сам код работает, но когда я создать кластер и добавить пользовательский баночку, он иногда не но иногда это работает. Использование всего набора данных в качестве входных данных приводит к сбою, но с использованием одного месяца, например, января, он завершается. После запуска, используя весь набор данных, я посмотрел на лог-файл «контроллера» и нашел это, я думаю, это отношение:

2015-03-10T11:50:12.437Z INFO Synchronously wait child process to complete :  hadoop jar /mnt/var/lib/hadoop/steps/s-22ZUAWNM... 
2015-03-10T12:05:10.505Z INFO Process still running 
2015-03-10T12:20:12.573Z INFO Process still running 
2015-03-10T12:35:14.642Z INFO Process still running 
2015-03-10T12:50:16.711Z INFO Process still running 
2015-03-10T13:05:18.779Z INFO Process still running 
2015-03-10T13:20:20.848Z INFO Process still running 
2015-03-10T13:35:22.916Z INFO Process still running 
2015-03-10T13:50:24.986Z INFO Process still running 
2015-03-10T14:05:27.056Z INFO Process still running 
2015-03-10T14:20:29.126Z INFO Process still running 
2015-03-10T14:35:31.196Z INFO Process still running 
2015-03-10T14:50:33.266Z INFO Process still running 
2015-03-10T15:05:35.337Z INFO Process still running 
2015-03-10T15:11:37.366Z INFO waitProcessCompletion ended with exit code 1 :  hadoop jar /mnt/var/lib/hadoop/steps/s-22ZUAWNM... 
2015-03-10T15:11:40.064Z INFO Step created jobs: job_1425988140328_0001 
2015-03-10T15:11:50.072Z WARN Step failed as jobs it created failed.  Ids:job_1425988140328_0001 

Может кто-нибудь сказать мне, что происходит не так, и что я могу сделать, чтобы исправить это? Тот факт, что он работает в течение одного месяца, но не в течение двух или трех месяцев, заставляет меня думать, что набор данных может быть слишком большим, но я не уверен. Я все еще новичок во всей этой Hadoop/EMR, поэтому, если есть какая-то информация, которую я оставил, просто дайте мне знать. Любая помощь или совет будут очень признательны.

Заранее благодарен!

+0

Вы нашли решение? –

+0

Не совсем, я просто уменьшил размер набора данных, и, похоже, он работал тогда. Я до сих пор не знаю, почему это произошло в первую очередь. – spoon

ответ

0

Эти ошибки обычно возникают, когда вы исчерпаете место на жестких дисках HDFS (на жестких дисках узла EMR) или в памяти.

Во-первых, я хотел бы начать, пытаясь читать журналы, которые сообщение непосредственно вам: «/ MNT/вар/Lib/Hadoop/шаги/с-22ZUAWNM ...»

Во-вторых, я бы попытаться создать больший EMR (экземпляры EC2 с большим количеством дисков и оперативной памяти или более основных экземпляров).

Смежные вопросы