首页 > 技术文章 > Hive中 使用 Round() 的坑

iiwen 2017-03-02 10:46 原文

有个算法如下:

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再试..找到原因请分享..

推荐阅读