Hive中 使用 Round() 的坑
有个算法如下:
SELECT MEMBERNUMBER, ROUND(SUM(SumPointAmount)) AS VALUE FROM BSUM_CRMPOINT WHERE UPPER(POINTCATEGORY)='REWARD' GROUP BY MEMBERNUMBER
使用round()函数来规范Sum()后的值..
算法并不复杂..但一直报错..
MapReduce Total cumulative CPU time: 1 minutes 16 seconds 968 msec Ended Job = job_1483628918349_2920 with errors Error during job, obtaining debugging information... Examining task ID: task_1483628918349_2920_m_000002 (and more) from job job_1483628918349_2920 Task with the most failures(4): ----- Task ID: task_1483628918349_2920_m_000000 URL: http://headnodehost:9014/taskdetails.jsp?jobid=job_1483628918349_2920&tipid=task_1483628918349_2920_m_000000 ----- Diagnostic Messages for this Task: Error: GC overhead limit exceeded Container killed by the ApplicationMaster. Container killed on request. Exit code is 137 Container exited with a non-zero exit code 137 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask MapReduce Jobs Launched: Stage-Stage-1: Map: 3 Reduce: 8 Cumulative CPU: 76.968 sec HDFS Read: 1547020 HDFS Write: 0 FAIL Total MapReduce CPU Time Spent: 1 minutes 16 seconds 968 msec
并没有具体错误的报文.. ExitValue 为 2
后来偶然把Round去掉..跑通了..返回码0
百思不得其解..
有路过大神希望能解释下..
有同样算法的童鞋请尝试去除round再试..找到原因请分享..