欢迎投稿

今日深度:

hadoop序列化,

hadoop序列化,



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


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

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

   

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

java.io.EOFException at java.io.DataInputStream.readFully(DataInputStream.java:197)

之类的错误。

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

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


  

 

www.htsjk.Com true http://www.htsjk.com/Hadoop/41565.html NewsArticle hadoop序列化,   问题描述:   对某个实现了Writeable 序列化接口的类增加一些传输的参数,,结果发现JT端始终无法获得TT端设置的值,且值始终是构造函数中初始化的值,查到最后,发...
相关文章
    暂无相关文章
评论暂时关闭