Hadoop Windows (работает нормально) Linux куча пространства Java - PullRequest
0 голосов
/ 01 ноября 2010

Привет всем Вот моя проблема: во-первых, я работаю с Hadoop и конфигурацией с одним узлом. Я разрабатываю приложение и создаю только одну функцию карты, в этой функции карты я вызываю 10 функций, приложениечитает из csv-файла и обрабатывает определенный столбец, я уже создал jar-файл и все, поэтому, когда я запускаю это приложение с csv с 4000 строками в windows (windows 7) (используя cygwin) на машине с 4 ГБ ОЗУ, приложениеработает нормально, но когда я запускаю его на linux-ubuntu на машине с 2 ГБ ОЗУ, он обрабатывает некоторые строки, но затем выдает ошибку «Java heap space», или иногда поток прерывается.

ДляLinux: я уже пытался изменить экспорт HEADOP HEAP_SIZE, а также параметры Xmx и Xms в приложении, и это имело некоторое значение, но не слишком много, ошибка все еще происходит ...

Знаете ли вы, почему этопроисходит?это потому, что 4 ГБ и 2 ГБ разницы в оперативной памяти между машинами?

Спасибо

1 Ответ

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

Одна вещь, с которой я столкнулся с картографом, это то, что если вы вызываете / используете функции / объекты, которые запускают свои собственные потоки из функции map, это может легко создать достаточно потоков, чтобы использовать все пространство кучи для этой JVM. Каждый маппер будет вызывать функции setup и cleanup один раз. В моей ситуации я смог обработать и поместить в ArrayList все мои данные, а затем выполнить необходимую дополнительную обработку в функции cleanup.

...