[ 
https://issues.apache.org/jira/browse/MAPREDUCE-6185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14237635#comment-14237635
 ] 

sam liu commented on MAPREDUCE-6185:
------------------------------------

This issue is about method 'jobClient.getJob(jobid).reduceProgress()' and only 
happens on the job which only has map tasks, but no reduce task, such as 
Teragen.

[A] My Test Code:
// Using hadoop-mapreduce-client-core\org.apache.hadoop.mapred.JobClient.java
                JobClient jobClient = new JobClient(new Configuration()); 
                
                for (int i = 0; i < 120; i++){
                        Thread.sleep(1000);
                        System.out.println("jobClient.getJob(" + args[0] + 
").reduceProgress()=" + jobClient.getJob(args[0]).reduceProgress());            
     
                }

[B] WordCount: Got expected result
Can get reduceProgress during job running(0.0 to 1.0) and after job 
completion(1.0).

$ hadoop jar yarn.hadoop.jar hadoop.yarn.proj.test.YarnClientTest 
job_1417679271770_0169
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.20833334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.20833334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.20833334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.33333334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.33333334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.33333334
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.6765683
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.6765683
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.6765683
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.76213264
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.76213264
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.76213264
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.8284452
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.8284452
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.8284452
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.9177592
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.9177592
jobClient.getJob(job_1417679271770_0169).reduceProgress()=0.9177592
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
14/12/04 22:54:21 INFO mapred.ClientServiceDelegate: Application state is 
completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0
jobClient.getJob(job_1417679271770_0169).reduceProgress()=1.0

[C] Teragen: Failed to get expected result
- Can get reduceProgress during job running(0.0 ) 
- But get NaN after job completion

As Teragen only has Mapper, but does not has Reducer, so I think it's correct.

$ hadoop jar yarn.hadoop.jar hadoop.yarn.proj.test.YarnClientTest 
job_1417679271770_0168
14/12/04 22:51:53 INFO client.RMProxy: Connecting to ResourceManager at 
cluster.nn1/9.31.111.201:8032
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
jobClient.getJob(job_1417679271770_0168).reduceProgress()=0.0
14/12/04 22:52:17 INFO mapred.ClientServiceDelegate: Application state is 
completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
jobClient.getJob(job_1417679271770_0168).reduceProgress()=NaN
jobClient.getJob(job_1417679271770_0168).reduceProgress()=NaN
jobClient.getJob(job_1417679271770_0168).reduceProgress()=NaN
jobClient.getJob(job_1417679271770_0168).reduceProgress()=NaN
jobClient.getJob(job_1417679271770_0168).reduceProgress()=NaN

Expected result: '0.0'.
Actual result:  'NaN'.
Comment:
- Even after job completion, method reduceProgress() still should return same 
result '0.0', but not 'NaN'.
- As 'Redirecting to job history server', marked the component of this jira as 
'jobhistoryserver'

> YARN M/R may return NaN for reducer progress after Job completion
> -----------------------------------------------------------------
>
>                 Key: MAPREDUCE-6185
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6185
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: jobhistoryserver
>    Affects Versions: 2.4.1
>            Reporter: sam liu
>            Priority: Minor
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to