2016-08-10 6 views
5

में मैपरेडस के इनपुट और आउटपुट की संख्या प्राप्त करें, मैं मानचित्र चरण के इनपुट और आउटपुट की संख्या और पूर्ण चरण का समय और जावा के साथ नौकरी को कम करना चाहता हूं। ये आंकड़े टर्मिनल पर लिखा है लेकिन मैं एक जावा कोड के साथ इसे पाने के लिए और अपने खुद के इंटरफेस पर यह लिखने के लिए, बस लाइन के बाद की जरूरत है:जावा

job_blocking.waitForCompletion(true); 

उत्तर

0

इस लाइन के बाद, आप MAP_INPUT_RECORDS की संख्या प्राप्त कर सकते हैं और REDUCE_OUTPUT_RECORDS (भी MAP_OUTPUT_RECORDS), उन काउंटरों के मूल्यों हो रही द्वारा:

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

समय काम चलाने के लिए आवश्यक के लिए, मैं अगर वहाँ एक और तरीका है (आसान) के साथ एक लंबी चर की स्थापना से है पता नहीं है वर्तमान समय से पहले और बाद में इसे निष्पादित किया जाता है और अपना अंतर प्राप्त होता है।