Hadoop Streaming с очень большим размером стандартного вывода - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть две программы для потоковой передачи Hadoop.

  mapper (produces <k, v> pair)
  reducer

Конечно, <k, v> пары отправляются на stdout.

Мой вопрос

еслиv в <k, v> очень большой, эффективно ли он работает на hadoop?

Я думаю, v, испускаемое картографом, будет 1G или больше (иногда больше 4G).

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Я думаю, что такой размер значения вызовет проблемы, потому что проблематично манипулировать ими в памяти.Если вам действительно нужны такие огромные значения, вы можете поместить их в HDFS и сделать V именем файла.Проблема, которую вы должны рассмотреть в этом случае, заключается в том, что этот подход больше не функционирует - у вас есть побочный эффект, например, из-за сбойного маппера.

0 голосов
/ 18 февраля 2011

Что вы подразумеваете под "Конечно, пара выбрасывается на стандартный вывод"?

Вы хотите сказать, что количество пар ключ-значение очень велико, как в? Если да, то hadoop справится с этим эффективно.

Если вы хотите сесть, то размер v очень большой. Таким образом, для данного ключа значение составляет от 1 до 4 ГБ или даже больше. Прежде всего, какое приложение вы используете для генерации таких больших значений. Можно ли сломать ключи?

Возвращаясь к главному: Hadoop не будет очень эффективным или нет. Зависит от варианта использования. В большинстве случаев это было бы крайне неэффективно.

...