Разница в потоке данных в автономном и псевдораспределенном режимах Hadoop? - PullRequest
1 голос
/ 12 января 2012

Может кто-нибудь подсказать, в чем разница между потоками данных в автономном и псевдораспределенном режимах Hadoop. Фактически я пытаюсь запустить пример умножения матриц, представленный Джоном Норстадом. Он работает нормально в автономном режиме hadoop, но не работает должным образом в псевдораспределенном режиме. Я не могу решить проблему, поэтому, пожалуйста, скажите мне принципиальное различие между автономным и псевдораспределенным режимами hadoop, которое может помочь в устранении указанной проблемы. Спасибо

Reagrds

WL

1 Ответ

4 голосов
/ 12 января 2012

В автономном режиме все (namenode, datanode, tasktracker, jobtracker) работает в одной JVM на одной машине. В псевдораспределенном режиме все работает каждый в своей собственной JVM, но все еще на одной машине. С точки зрения клиентского интерфейса не должно быть никакой разницы, но я не удивлюсь, если требования к сериализации будут более строгими в псевдораспределенном режиме.

Мое объяснение вышеизложенного состоит в том, что в псевдораспределенном режиме все должно быть сериализовано для передачи данных между JVM. В автономном режиме не обязательно, чтобы все было сериализуемо (так как все в одной JVM, у вас есть общая память), но я не помню, написан ли код для использования этого факта, так как это не так нормальный вариант использования Hadoop.

РЕДАКТИРОВАТЬ: Учитывая, что вы не видите ошибку, я думаю, это похоже на проблему в том, как кодируется задание MapReduce. Возможно, он полагается на что-то вроде общей памяти среди редукторов? Если это так, это будет работать в автономном режиме, но не в псевдораспределенном режиме (или действительно распределенном режиме, в этом отношении).

...