在Hadoop MapReduce中为Java类型提供可写包装器类的原因是什么?



在我看来,可以编写一个org.apache.hadoop.io.serializer.Serialization来直接序列化java类型,格式与包装器类序列化类型的格式相同。这样,映射器和还原器就不必处理包装器类了。

没有什么可以阻止你改变序列化使用不同的机制,如java Serializable接口或类似节俭,协议缓冲区等。

事实上,Hadoop为Java Serializable对象提供了一个(实验性的)序列化实现——只需配置序列化工厂来使用它。默认的序列化机制是WritableSerialization,但是可以通过设置以下配置属性来更改:

io.serializations=org.apache.hadoop.io.serializer.JavaSerialization

请记住,任何期望可写的(输入/输出格式,分区器,比较器)等都需要替换为可以传递Serializable实例而不是Writable实例的版本。

为好奇的读者提供更多链接:

  • http://www.tom-e-white.com/2008/07/rpc-and-serialization-with-hadoop.html
  • Hadoop Writable和java.io.serialization有什么联系和区别?-这似乎是一个类似的问题,你问什么,和塔里克有一个很好的链接到一个线程,其中道格切割解释背后的理由使用可写的序列化

相关内容

  • 没有找到相关文章

最新更新