You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by Ch Wan <xm...@gmail.com> on 2014/08/21 08:27:37 UTC

Hive Runtime Error: Unable to deserialize reduce input key from...

Hi, I have two hive (0.13) tables with the following create syntax:

CREATE TABLE `src`(
> `a` string,
> `b` int,
> `c` int,
> `p` string
> );


CREATE TABLE `tgt`(
> `a` string,
> `b` int,
> `c` int
> )PARTITIONED BY (`p` string);



And the table src contains only one row :

hive> select * from src;
> OK
> www -123 8831 month_city
>


When I run the SQL:

INSERT into TABLE `tgt` partition (p) SELECT 'all', b, sum(c), p FROM `src`
> group by b, p;
>


I will got the this error:

Diagnostic Messages for this Task:
> Error: java.lang.RuntimeException:
> org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error:
> Unable to deserialize reduce input key from
> x1x109x111x110x116x104x95x99x105x116x121x0x1x97x108x108x0x1x127x255x255x133x255
> with properties {columns=reducesinkkey0,reducesinkkey1,reducesinkkey2,
> serialization.lib=org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe,
> serialization.sort.order=+++, columns.types=string,int,string}
>  at
> org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:283)
> at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:462)
>  at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:408)
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
>  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:1491)
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime
> Error: Unable to deserialize reduce input key from
> x1x109x111x110x116x104x95x99x105x116x121x0x1x97x108x108x0x1x127x255x255x133x255
> with properties {columns=reducesinkkey0,reducesinkkey1,reducesinkkey2,
> serialization.lib=org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe,
> serialization.sort.order=+++, columns.types=string,int,string}
>  at
> org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:222)
> ... 7 more
> Caused by: org.apache.hadoop.hive.serde2.SerDeException:
> java.io.EOFException
>  at
> org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe.deserialize(BinarySortableSerDe.java:189)
> at
> org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:220)
>  ... 7 more
> Caused by: java.io.EOFException
> at
> org.apache.hadoop.hive.serde2.binarysortable.InputByteBuffer.read(InputByteBuffer.java:54)
>  at
> org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe.deserializeText(BinarySortableSerDe.java:550)
> at
> org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe.deserialize(BinarySortableSerDe.java:285)
>  at
> org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe.deserialize(BinarySortableSerDe.java:185)
> ... 8 more
>
FAILED: Execution Error, return code 2 from
> org.apache.hadoop.hive.ql.exec.mr.MapRedTask



But if i create table and run query with hive0.11, everything is OK.
Could somebody help me to figure out what goes wrong?