티스토리 뷰

Hive에서 테이블에 데이터 Insert 시, 이런 에러가 발생한다면....


Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"stdr_year":"2014","ctprvn_nm":"경기도","sido_cd":"41","signgu_nm":"고양시","signgu_cd":"41280","prpos_area_lclas_nm":"주거지역","prpos_area_lclas_cd":"UQA100","prpos_area_mlsfc_nm":"전용주거","prpos_area_mlsfc_cd":"UQA110","prpos_area_sclas_nm":"제1종전용주거","prpos_area_sclas_cd":"UQA111","measrmt_rate":50,"cpcty_rate":100}

at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:172)

at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)

at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)

at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)

at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:415)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)

at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"stdr_year":"2014","ctprvn_nm":"경기도","sido_cd":"41","signgu_nm":"고양시","signgu_cd":"41280","prpos_area_lclas_nm":"주거지역","prpos_area_lclas_cd":"UQA100","prpos_area_mlsfc_nm":"전용주거","prpos_area_mlsfc_cd":"UQA110","prpos_area_sclas_nm":"제1종전용주거","prpos_area_sclas_cd":"UQA111","measrmt_rate":50,"cpcty_rate":100}

at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:545)

at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:163)

... 8 more

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unexpected exception: invalid shape type

at org.apache.hadoop.hive.ql.exec.MapJoinOperator.process(MapJoinOperator.java:426)

at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:838)

at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:88)

at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:838)

at org.apache.hadoop.hive.ql.exec.FilterOperator.process(FilterOperator.java:122)

at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:838)

at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:97)

at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:164)

at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:535)

... 9 more


   insert 할 데이터에 null이 들어가 있지는 않은지 점검해봐야 한다.


   원래 Hive는 데이터가 없을 경우 null을 insert하지만..  컬럼 타입이 binary일 경우 반드시 데이터가 있어야 하는 제약이 있다. (그런 것 같다. ㅡㅡ)


   고로 반드시 binary타입의 컬럼에는 null값이 없어야 저런 에러가 발생하지 않는다는 점!



   또 하나 주의할 점은,


   저 위의 에러 메시지에 나와있는 데이터를 찾아서 binary 타입이 null인지 찾아봤자 소용이 없다는 것.


   저 위의 에러 메시지는 그냥 에러가 났다고 알려주는 정도...라고 생각하면 된다.


   일일히 null인 데이터가 어디에 있는지 찾아봐야 한다..




   이것 때문에 개고생 생고생 날고생 다했다. 쉣쉣쉣!!!



댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함