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!
Bạn có tìm thấy giải pháp không? –
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