在hadoop mapreduce中为java类型设置可写 Package 器类的原因是什么?

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

在我看来 org.apache.hadoop.io.serializer.Serialization 可以编写为直接序列化java类型,格式与 Package 类将类型序列化为的格式相同。这样Map器和还原器就不必处理 Package 器类。

uinbv5nw

uinbv5nw1#

没有什么能阻止您更改序列化以使用不同的机制,如java可序列化接口或类似节俭、协议缓冲区等。
事实上,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可写和java.io.serialization之间有什么联系和区别这似乎是一个类似的问题,你所问的,塔里克有一个很好的链接到一个线程,道格切割解释背后的理由使用可写超过序列化

相关问题