Ответ 1
Предложение Мэтью Букетта в HADOOP-7489 работало для меня. Добавьте в файл hadoop-env.sh следующее:
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
Я получаю эту ошибку при запуске Hadoop на OSX 10.7:
Невозможно загрузить информацию о царстве из SCDynamicStore put: org.apache.hadoop.hdfs.server.namenode.SafeModeException: не удается создать каталог/пользователь/travis/input/conf. Имя node находится в безопасном режиме.
Он не вызывает проблем с функциональностью Hadoop.
Предложение Мэтью Букетта в HADOOP-7489 работало для меня. Добавьте в файл hadoop-env.sh следующее:
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
В качестве обновления к этому (и для адреса Дэвида Уильямса о Java 1.7), я испытал, что только настройка свойств .realm
и .kdc
недостаточно, чтобы остановить сообщение о нарушении.
Однако, изучив исходный файл , который опускает сообщение, я смог определить, что настройка свойства .krb5.conf
равна /dev/null
было достаточно, чтобы подавить сообщение. Очевидно, что если у вас действительно есть конфигурация krb5, лучше указать фактический путь к ней.
В целом, мой фрагмент hadoop-env.sh
выглядит следующим образом:
HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.conf=/dev/null"
У меня такая же проблема для OS X 10.8.2, Java версии 1.7.0_21. К сожалению, вышеупомянутое решение не устраняет проблему с этой версией: (
Изменить: Я нашел решение этого, основываясь на подсказке, которую я видел здесь. В файле hadoop-env.sh
измените параметр JAVA_HOME
на:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
(Обратите внимание на цитаты могилы здесь.)
FYI, вы можете упростить это, указав только следующее:
export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="
Это также упоминается в HADOOP-7489.
У меня была аналогичная проблема на MacOS, и после попытки использования разных комбинаций это то, что работало для меня повсеместно (оба Hadoop 1.2 и 2.2):
в $HADOOP_HOME/conf/hadoop-env.sh
установите следующие строки:
# Set Hadoop-specific environment variables here.
export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="
# The java implementation to use.
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
Надеюсь, это поможет
а также добавьте
YARN_OPTS="$YARN_OPTS -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
перед запуском start-yarn.sh(или start-all.sh) на cdh4.1.3
У меня была эта ошибка при отладке MapReduce из Eclipse, но это была красная селедка. Реальная проблема заключалась в том, что я должен был удаленно отлаживать, добавляя параметры отладки в JAVA_OPTS
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044
И затем создайте новый профиль удаленного приложения Java в конфигурации отладки, указывающей на порт 1044.
В этой статье содержится более подробная информация об отладочной стороне вещей. Он говорит о Солре, но работает так же с Hadoop. Если у вас есть проблемы, напишите сообщение ниже, и я постараюсь помочь.