Tôi đang cố gắng tìm ra đầu ra của tác vụ Bản đồ được lưu vào đĩa trước khi nó có thể được sử dụng bởi tác vụ Giảm.Trong Hadoop, khung công tác sẽ lưu đầu ra của tác vụ Bản đồ trong một ứng dụng Map-Reduce thông thường ở đâu?
Lưu ý: - phiên bản sử dụng là Hadoop 0.20.204 với các API mới
Ví dụ, khi ghi đè lên các phương pháp bản đồ trong lớp bản đồ:
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
// code that starts a new Job.
}
Tôi quan tâm để tìm hiểu nơi context.write() kết thúc bằng văn bản dữ liệu. Cho đến nay tôi đã chạy vào:
FileOutputFormat.getWorkOutputPath(context);
nào mang lại cho tôi vị trí sau trên HDFS:
hdfs://localhost:9000/tmp/outputs/1/_temporary/_attempt_201112221334_0001_m_000000_0
Khi tôi cố gắng sử dụng nó như là đầu vào cho một công việc nó mang lại cho tôi những lỗi sau:
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/tmp/outputs/1/_temporary/_attempt_201112221334_0001_m_000000_0
Lưu ý: công việc được bắt đầu trong Mapper, vì vậy về mặt kỹ thuật, các thư mục tạm thời nơi nhiệm vụ Mapper đang viết nó ra tồn tại khi ne w bắt đầu công việc. Sau đó, một lần nữa, nó vẫn nói rằng đường dẫn đầu vào không tồn tại.
Bất kỳ ý tưởng nào về vị trí đầu ra tạm thời được ghi vào? Hoặc có lẽ vị trí mà tôi có thể tìm thấy đầu ra của tác vụ Bản đồ trong một công việc có cả bản đồ và giai đoạn Giảm là gì?
BTW, có vẻ như FileOutputhFormat # getWorkOutputPath cung cấp vị trí của thư mục đầu ra tạm thời cho công việc chứ không phải cho tác vụ bản đồ theo tài liệu api. 'Khi tôi cố gắng sử dụng nó làm đầu vào cho một công việc khác, nó mang lại cho tôi lỗi sau:' - thường các tệp tạm thời bị xóa khi công việc được hoàn thành hoặc nếu không nút sẽ dễ dàng hoàn thành. –
OK, điểm công bằng, nhưng tôi đang bắt đầu công việc trong khi công việc khác đang thực hiện. Tôi đang làm bản đồ lồng nhau giảm. Vì vậy, các công việc bên ngoài là bận rộn chờ đợi trong khi công việc bên trong đang thực hiện, do đó, không nên có bất kỳ xóa các tập tin tạm thời. – inquire
Nhưng ok, những thứ đủ công bằng sẽ bị xóa, có nghĩa là chúng ở đâu đó trước khi chúng bị xóa. Tôi cần phải tìm ra nơi đó. : D – inquire