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

2023-12-14

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


没有什么可以阻止您更改序列化以使用不同的机制,例如 java Serialized 接口或 thrift、protocol buffers 等。

事实上,Hadoop 附带了一个(实验性)序列化实现Java可序列化对象 - 只需配置序列化工厂即可使用它。默认的序列化机制是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 之间有什么联系和区别?- 这似乎与您所问的问题类似,Tariq 有一个很好的链接,其中 Doug Cutting 解释了使用背后的基本原理可写性优于可序列化
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop MapReduce 中为 Java 类型提供可写包装类的原因是什么? 的相关文章

随机推荐