2016-08-10 19 views
5

Tôi muốn lấy số lượng đầu vào và đầu ra của giai đoạn bản đồ và giai đoạn giảm và thời gian hoàn thành công việc bản đồ/giảm bớt với Java. Các thống kê này được viết trên nhà ga nhưng tôi cần để có được nó với một mã Java và để viết nó trên giao diện của riêng tôi, ngay sau dòng:Lấy số lượng đầu vào và đầu ra của MapReduce trong Java

job_blocking.waitForCompletion(true); 

Trả lời

0

Sau dòng này, bạn có thể nhận được số MAP_INPUT_RECORDS và REDUCE_OUTPUT_RECORDS (còn MAP_OUTPUT_RECORDS), bằng cách nhận các giá trị của những quầy:

long map_input_records = job.getCounters() 
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","MAP_INPUT_RECORDS") 
    .getValue(); 
long map_output_records = job.getCounters() 
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","MAP_OUTPUT_RECORDS") 
    .getValue(); 
long reduce_input_records = job.getCounters() 
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","REDUCE_INPUT_RECORDS") 
    .getValue(); 
long reduce_output_records = job.getCounters() 
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","REDUCE_OUTPUT_RECORDS") 
    .getValue(); 

Đối với thời gian cần thiết để chạy các công việc, tôi không biết nếu có một cách khác (dễ dàng hơn) so với thiết lập một biến dài với thời gian hiện tại trước và sau khi nó được thực hiện và nhận được sự khác biệt của họ.

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