Увеличьте пространство кучи Java для подключаемого модуля идентификатора языка - PullRequest
1 голос
/ 18 августа 2011

Я пытаюсь добавить новый язык к инструменту автоматического определения языка Apache's tika. Необходимо добавить языковой профиль для добавления нового языка. Поэтому я использую плагин Nutch Language-Identifier для создания этого профиля.

Команда следующая:

bin/nutch plugin language-identifier org.apache.nutch.analysis.lang.NGramProfile -create ./language-detection-profile/jp ./language-detection-profile/japanese4ngram-1.txt utf-8

Где ./language-detection-profile/japanese4ngram-1.txt - это новый корпус языка.

Я тестировал корпус небольшого размера (1 МБ), и все в порядке, профиль создан, как я и ожидал.

Тем не менее, когда корпус большой (> 1 ГБ). У меня проблема нехватки памяти (пространства кучи), например

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.nutch.plugin.PluginRepository.main(PluginRepository.java:421)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2882)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
    at java.lang.StringBuilder.append(StringBuilder.java:119)
    at org.apache.nutch.analysis.lang.NGramProfile.create(NGramProfile.java:374)
    at org.apache.nutch.analysis.lang.NGramProfile.main(NGramProfile.java:484)
    ... 5 more

Кто-нибудь знает, как указать размер пространства кучи для плагина Nutch? Спасибо.

Edit: С помощью Микавели. В Ubuntu: набор

if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
  NUTCH_OPTS="$NUTCH_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH -Xmx2048m"
fi

1 Ответ

1 голос
/ 18 августа 2011

Предполагая, что вы разрабатываете для Windows, отредактируйте nutch.bat и добавьте следующее после строки rem NUTCH_OPTS:

set NUTCH_OPTS=%NUTCH_OPTS% -Xmx1024m

Очевидно, установите объем оперативной памяти в пределах физического ограничения вашей машины - обратите внимание, что Nutch может легко потребовать 4 г, в зависимости от того, что вы делаете с ним.

...