关于hadoop中的序列化:序列化的优点是什么?

bogh5gae  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(421)

我对hadoop数据流中的序列化有点困惑。假设我有一个java对象,定义如下(该对象可能比我显示的要复杂得多):

public void MyObject {

  private int Field1;
  private String Field2;

  public void method1() {

  }

  ...

}

要在Map器和还原器之间传输此对象的示例,有两种方法:
第一种方法-我可以在mapper中逐个序列化int字段和string字段并将它们写入输出,然后在reducer中读取它们并创建 MyObject 使用这些值。假设新创建的示例与原始示例没有区别。
第二种方法-我可以重写 MyObject 实施 Writable 接口,并在Map器中序列化整个示例。然后在reducers中,我只需要反序列化对象,就可以使用它了。
这两种方法有什么区别?在传输对象之前序列化对象有什么好处。

atmip9wb

atmip9wb1#

hadoop软件 Writable 与java可序列化文件相比,它更紧凑,需要更少的空间。hadoopmapper和reducer处理扩展hadoops属性的对象 Writable 接口。有关详细信息,请参阅https://stackoverflow.com/a/16839597/1150329

相关问题