`
cloudeagle_bupt
  • 浏览: 529772 次
文章分类
社区版块
存档分类
最新评论

hadoop序列化

 
阅读更多


问题描述: 对某个实现了Writeable 序列化接口的类增加一些传输的参数,,结果发现JT端始终无法获得TT端设置的值,且值始终是构造函数中初始化的值,查到最后,发现是序列化问题。


每个实现了Writeable 接口的类,都要实现write函数和readFields,一个是将该对象中的参数序列化入发送参数构造的Call对象,一个是从Call对象中将参数读取。

新增参数没有在这两个函数中加入序列化的过程的话,就会发现读取的值始终不对,因为缺少以上两个函数,所以无法正确的序列化写入和在JT端读取并构造新的对象。

此外,还需注意,write函数和readFields对象属性时,顺序要一致,比如write时先写一个int,再写一个double ,读的时候应按照同样顺序读进来,先读int,再读double ,否则会报

java.io.EOFException
at java.io.DataInputStream.<wbr>readFully(DataInputStream.<wbr>java:197)</wbr></wbr>

之类的错误。

Blaaaaaaa............

以前遇到过这个问题,当时解决了,今天又忘了,白白折腾了一个小时!


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics