我有一个关于Mapper键/值可写的问题。由于(假设)输入格式在运行Mapper的同一台机器上运行,为什么输入键必须是可写的。
是否因为输入格式在不同的JVM上运行?如果不是值对象可以直接发送到mapper吗?
对于hadoop来说,如果这太基本了,请原谅我
感谢
答案 0 :(得分:1)
可写类型允许Hadoop以序列化形式读取和写入数据,以便可以通过网络发送。
只要有可能,Hadoop会尝试将映射任务分配给有关数据对该节点是本地的节点。这称为数据位置。
然而,事实并非如此。
如果没有在包含数据的节点上打开插槽,则需要通过网络将数据传输到已分配了映射任务的另一个节点。
编辑: 映射器的键和值是对象,值对象实现Writable。因此,如果没有为您的价值实现Writable接口,我认为您无法逃脱。