为什么mapper值必须是可写的

时间:2013-12-24 07:31:21

标签: hadoop mapreduce

我有一个关于Mapper键/值可写的问题。由于(假设)输入格式在运行Mapper的同一台机器上运行,为什么输入键必须是可写的。

是否因为输入格式在不同的JVM上运行?如果不是值对象可以直接发送到mapper吗?

对于hadoop来说,如果这太基本了,请原谅我

感谢

1 个答案:

答案 0 :(得分:1)

可写类型允许Hadoop以序列化形式读取和写入数据,以便可以通过网络发送。

只要有可能,Hadoop会尝试将映射任务分配给有关数据对该节点是本地的节点。这称为数据位置。

然而,事实并非如此。

如果没有在包含数据的节点上打开插槽,则需要通过网络将数据传输到已分配了映射任务的另一个节点。

编辑: 映射器的键和值是对象,值对象实现Writable。因此,如果没有为您的价值实现Writable接口,我认为您无法逃脱。