2015-03-30 47 views
5

Tôi đang cố gắng phân tích Wikipedia article view dataset bằng cách sử dụng Amazon EMR. Tập dữ liệu này chứa thống kê lượt xem trang trong khoảng thời gian ba tháng (từ ngày 1 tháng 1 năm 2011 đến ngày 31 tháng 3 năm 2011). Tôi đang cố gắng tìm bài viết có số lượt xem nhiều nhất trong thời gian đó. Đây là mã tôi đang sử dụng:AWS EMR Bước không thành công do công việc tạo ra không thành công

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); 
} 
} 

Mã này hoạt động, nhưng khi tôi tạo cụm và thêm một bình tùy chỉnh, đôi khi nó không thành công nhưng các lần khác nó hoạt động. Việc sử dụng toàn bộ tập dữ liệu làm dữ liệu đầu vào làm cho nó thất bại, nhưng sử dụng một tháng, ví dụ: tháng 1, nó hoàn thành. Sau khi chạy bằng cách sử dụng toàn bộ số liệu, tôi nhìn vào 'điều khiển' tập tin đăng nhập và thấy điều này, mà tôi nghĩ là có liên quan:

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 

bất cứ ai có thể cho tôi biết những gì đang xảy ra sai, và những gì tôi có thể làm gì để khắc phục nó? Thực tế là nó hoạt động trong một tháng nhưng không phải trong hai hoặc ba tháng khiến tôi nghĩ rằng tập dữ liệu có thể quá lớn, nhưng tôi không chắc chắn. Tôi vẫn còn mới đối với toàn bộ điều Hadoop/EMR này vì vậy nếu có bất kỳ thông tin nào tôi để lại, hãy cho tôi biết. Bất kỳ giúp đỡ hoặc tư vấn sẽ được đánh giá rất nhiều.

Cảm ơn trước!

+0

Bạn có tìm thấy giải pháp không? –

+0

Không chính xác, tôi chỉ giảm kích thước của tập dữ liệu và nó dường như hoạt động sau đó. Tôi vẫn không biết tại sao điều này lại xảy ra ngay từ đầu. – spoon

Trả lời

0

Các lỗi này thường xảy ra khi bạn hết dung lượng, trên HDFS (Đĩa cứng của nút EMR) hoặc trên Bộ nhớ.

Trước tiên, tôi sẽ bắt đầu bằng cách cố gắng để đọc các bản ghi mà thông điệp chỉ dẫn bạn tới: "/ mnt/var/lib/hadoop/bước/s-22ZUAWNM ..."

Thứ hai, tôi sẽ cố gắng tạo ra một EMR lớn hơn (các cá thể EC2 có nhiều đĩa và RAM hoặc nhiều trường hợp cốt lõi hơn).

Các vấn đề liên quan