2013-06-20 52 views

回答

5

没有什么能阻止你改变序列使用不同的机制,比如Java Serializable接口或类似的东西节俭,协议缓冲器等

事实上,Hadoop的附带了Java Serializable对象的(实验)序列化的实现 - 只需配置序列化工厂即可使用它。默认序列化机制是WritableSerialization,但可以通过设置以下配置属性进行更改:但是,任何的期望一个可写(输入/输出格式,partitioners,比较器)等需要

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

请牢记替换为可以通过Serializable实例而不是Writable实例的版本。

为好奇的读者一些更多的链接:

+0

是的,我知道我可以更改序列化实现,并且可写序列化格式更优。它仍然没有解释包装类的要求。哦,我认为这是我直接询问Hadoop创建者之一所能得到的最佳答案。 – user533020

+0

我想我不明白你要求什么,当你说'包装类的要求' - 可写不是包装,它的接口表示对象符合一些'契约',并且对象知道如何序列化自己 –

+0

我在说的是,每种Java类型都有Writable包装类(int - IntWritable,string - TextWritable等)。他们装饰Java类型以说明如何序列化它们。在编写映射器或简化器时,您必须提取/解包/调用'get'方法来获取输入Java类型,然后包装输出Java类型。所有这些似乎都没有必要。 – user533020

相关问题