我有使用 KitSDK DatasetKeyInputFormat 的hadoop map-reduce作业。它被配置为读取镶木地板文件。
Eveery time我运行的工作我得到以下异常:
错误:java.io.EOFException 在java.io.DataInputStream.readFully(DataInputStream.java:197) 在java.io.DataInputStream.readFully(DataInputStream.java:169) 在parquet.hadoop.ParquetInputSplit.readArray(ParquetInputSplit.java:304) 在parquet.hadoop.ParquetInputSplit.readFields(ParquetInputSplit.java:263) at org.apache.hadoop.io.serializer.WritableSerialization $ WritableDeserializer.deserialize(WritableSerialization.java:71) at org.apache.hadoop.io.serializer.WritableSerialization $ WritableDeserializer.deserialize(WritableSerialization.java:42) 在org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:372) 在org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:754) 在org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 在org.apache.hadoop.mapred.YarnChild $ 2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) 在javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) 在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
hive创建的map-reduce作业可以成功读取同一个文件。即我可以成功查询。
为了隔离可能的问题,我已根据KiteSDK example for mapreduce创建了map-reduce作业。但我仍然得到同样的例外。
注意:AVRO和CSV格式运行良好。