INFO mapreduce.Job: Task Id : attempt_1610003035850_0014_r_000002_2, Status : FAILED

在运行Hadoop MapReduce作业时遇到了任务失败,具体表现为Task Id : attempt_1610003035850_0014_r_000002_2状态为FAILED。错误信息为java.io.EOFException,根源在于自定义的Writable接口实现中write方法使用错误,应将DataOutput.write()更正为DataOutput.writeInt()。

运行hadoop报错

INFO mapreduce.Job: Task Id : attempt_1610003035850_0014_r_000002_2, Status : FAILED
Error: java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at java.io.DataInputStream.readUTF(DataInputStream.java:589)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at ynet.partscore.test.FlowScore.readFields(FlowScore.java:58)
at org.apache.hadoop.io.serializer.WritableSerializationWritableDeserializer.deserialize(WritableSerialization.java:71)atorg.apache.hadoop.io.serializer.WritableSerializationWritableDeserializer.deserialize(WritableSerialization.java:71) at org.apache.hadoop.io.serializer.WritableSerializationWritableDeserializer.deserialize(WritableSerialization.java:71)atorg.apache.hadoop.io.serializer.WritableSerializationWritableDeserializer.deserialize(WritableSerialization.java:42)
at org.apache.hadoop.mapreduce.task.ReduceContextImpl.nextKeyValue(ReduceContextImpl.java:146)
at org.apache.hadoop.mapreduce.task.ReduceContextImpl.nextKey(ReduceContextImpl.java:121)
at org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer$Context.nextKey(WrappedReducer.java:302)
at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:170)
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:627)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:389)
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:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

原因

实现Writable接口 重写write方法编写错误用了 DataOutput.write(参数),改为DataOutput.writeInt(参数)。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值