Hadoop Streaming具有非常大的stdout大小

时间:2011-02-18 06:54:22

标签: hadoop mapreduce

我有两个Hadoop流媒体程序。

  mapper (produces <k, v> pair)
  reducer

当然,<k, v>对会发送到stdout

我的问题是

如果v中的<k, v>非常大,它是否有效地在hadoop上运行?

我猜映射器发出的v将是1G或更多(有时超过4G)。

2 个答案:

答案 0 :(得分:1)

我认为这样的大小值会导致问题,因为在内存中操作它们是有问题的。如果确实需要这么大的值,可以将它们放入HDFS并使V成为文件的名称。在这种情况下您应该考虑的问题是这种方法不再起作用 - 您有副作用,例如来自失败的映射器。

答案 1 :(得分:0)

你是什么意思“当然,对发射到stdout”?

你的意思是说键值对的数量非常大吗?如果是,那么hadoop会有效地处理这个问题。

如果你的意思是坐着,v的大小非常大。因此,对于给定的密钥,发出的值是1到4 GB甚至更多。首先,您运行什么样的应用程序来生成如此大的值。是否可以分解钥匙?

回到主要观点:Hadoop效率不高。取决于用例。 在大多数情况下,这将是非常低效的。