(cc [email protected])

Hey Shushant,

This kind of error can be tricky to debug. Could you please provide the following information:

- The tool used to write those Parquet files (possibly Hive 0.13 since you mentioned hive-exec 0.13?) - The tool used to read those Parquet files (should be Hive according to the stack trace, but what version?)
- What is the "complex" query?
- Schema of those Parquet files (can be checked using parquet-tools), as well as corresponding schema of the user application (table schema for Hive)
- If possible, code snippet you used to write the files
- Are there files of different schemata mixed up? Some tools, like Hive, don't handle schema evolution well.

I saw the file name in the stack trace consists of a timestamp. This isn't the naming convention used by Hive. Did you move files written somewhere else to the target directory?

Cheng

On 4/22/16 10:56 AM, Shushant Arora wrote:
Hi

I am writing to a parquet table using parquet.hadoop.ParquetOutputFormat(from hive-exec 0.13). Data is being written correctly and when I do count(1) or select * with limit I get proper result.

But when I do some complex query on table it throws below excpetion :

Diagnostic Messages for this Task:
Error: java.io.IOException: java.io.IOException: parquet.io.ParquetDecodingException: Can not read value at 18 in block 0 in file hdfs://nameservice1/user/hive/warehouse/dbname.db/tablename/partitionname/20160421032223.parquet at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121) at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77) at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:255) at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.next(HadoopShimsSecure.java:170) at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.moveToNext(MapTask.java:199) at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.next(MapTask.java:185)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:52)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
        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:1642)
 at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
Caused by: java.io.IOException: parquet.io.ParquetDecodingException: Can not read value at 18 in block 0 in file
hdfs://nameservice1/user/hive/warehouse/dbname.db/tablename/partitionname/20160421032223.parquet
at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121) at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77) at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:344) at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:101) at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:41) at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.next(HiveContextAwareRecordReader.java:122) at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:253)
        ... 11 more
Caused by: parquet.io.ParquetDecodingException: Can not read value at 18 in block 0 in file
hdfs://nameservice1/user/hive/warehouse/dbname.db/tablename/partitionname/20160421032223.parquet
at parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:216) at parquet.hadoop.ParquetRecordReader.nextKeyValue(ParquetRecordReader.java:144) at org.apache.hadoop.hive.ql.io.parquet.read.ParquetRecordReaderWrapper.next(ParquetRecordReaderWrapper.java:159) at org.apache.hadoop.hive.ql.io.parquet.read.ParquetRecordReaderWrapper.next(ParquetRecordReaderWrapper.java:48) at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:339)
        ... 15 more
Caused by: parquet.io.ParquetDecodingException: Can't read value in column [sessionid] BINARY at value 18 out of 18, 18 out of 18 in currentPage. repetition level: 0, definition level: 1 at parquet.column.impl.ColumnReaderImpl.readValue(ColumnReaderImpl.java:450) at parquet.column.impl.ColumnReaderImpl.writeCurrentValueToConverter(ColumnReaderImpl.java:352) at parquet.io.RecordReaderImplementation.read(RecordReaderImplementation.java:402) at parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:197)
        ... 19 more
Caused by: parquet.io.ParquetDecodingException: could not read bytes at offset 726 at parquet.column.values.plain.BinaryPlainValuesReader.readBytes(BinaryPlainValuesReader.java:43) at parquet.column.impl.ColumnReaderImpl$2$6.read(ColumnReaderImpl.java:295) at parquet.column.impl.ColumnReaderImpl.readValue(ColumnReaderImpl.java:446)
        ... 22 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 726
at parquet.bytes.BytesUtils.readIntLittleEndian(BytesUtils.java:54) at parquet.column.values.plain.BinaryPlainValuesReader.readBytes(BinaryPlainValuesReader.java:36)
        ... 24 more


FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask





Whats the reason of this error ? Why data is being getting corrupted while reading.

Thanks

Reply via email to