У меня установлен хауп 1.0.4. Я изменил файл /usr/bin/hadoop, добавив следующее:
HADOOP_DEBUG="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5000"
Элиф [ "$ КОМАНДА" = "баночка" ] ; тогда
КЛАСС = org.apache.hadoop.util.RunJar
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
elif [ "$ COMMAND" = "jar-debug" ] ; тогда
КЛАСС = org.apache.hadoop.util.RunJar
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS $HADOOP_DEBUG"
КОМАНДА="банка"
Таким образом, я могу запустить «hadoop jar SomeJar.jar SomeClass» для нормального запуска или запустить «hadoop jar-debug SomeJar.jar SomeClass» для запуска в режиме отладки. Это работает, за исключением случаев, когда я хочу передать аргументы командной строки в свой класс (например, в примере с WordCount). Например, запуск:
"hadoop jar-debug WordCount.jar WordCount InputDir OutputDir"
с точкой останова в первой строке в основном классе показывает, что String[] args является пустой строкой (что, очевидно, позже приведет к сбою программы). Если я запускаю его с помощью обычной команды jar, он работает нормально (поэтому очевидно, что аргументы командной строки передаются просто отлично, используя обычный jar).
Кто-нибудь знает, что здесь происходит? Я серьезно застрял. Заранее спасибо.