2011-08-20 3 views
57

я получаю эту ошибку при запуске Hadoop на OSX 10.7:Hadoop на OSX «Невозможно загрузить данные из области действия SCDynamicStore»

Невозможно загрузить данные из области действия SCDynamicStore ГОВОРЯ: org.apache.hadoop. hdfs.server.namenode.SafeModeException: не удается создать каталог/пользователь/travis/input/conf. Узел имени находится в безопасном режиме.

Он, похоже, не вызывает проблем с функциональностью Hadoop.

+3

Похоже, что это открытая проблема: https://issues.apache.org/jira/browse/HADOOP-7489 –

ответ

76

Предложение Мэтью Бакетта в 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" 
+4

Это работает на Java 6, но не на Java 7. – unionx

+0

У меня нет hadoop- env.sh, потому что я просто компилирую против hadoop, но я сталкиваюсь с этой проблемой. Могу ли я установить эти флаги на мой сценарий градиента или что-то еще? – tutuca

13

FYI, вы можете упростить это далее, только указав следующее:

export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc=" 

Это упоминается в Hadoop-7489, а также.

+5

Ответ использовался для меня, но больше не работает на java 1.7 и hadoop 1.2.1. Есть ли обновленное решение? –

4

, а также добавить

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

2

У меня была эта ошибка при отладке MapReduce из Eclipse, но это была красная сельдь. Реальная проблема заключалась в том, что я должен был удаленной отладки путем добавления параметров отладки в JAVA_OPTS

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044 

А затем создать новый «Remote Java Application» профиль в отладочной конфигурации, которое указывает на порт 1044.

This article содержит более подробную информацию об отладочной стороне вещей. Речь идет о Solr, но работает с Hadoop одинаково. Если у вас есть проблемы, напишите сообщение ниже, и я постараюсь помочь.

16

У меня такая же проблема на OS X 10.8.2, версия Java 1.7.0_21. К сожалению, указанное решение не решает проблему с этой версией :(

Edit: Я нашел решение этой проблемы, основанную на намеке я видел here В файле hadoop-env.sh измените настройки JAVA_HOME на:.

export JAVA_HOME=`/usr/libexec/java_home -v 1.6` 

(Обратите внимание на серьезные кавычки здесь.)

+0

У меня была такая же проблема, и это было для меня проблемой. – Clay

+0

Я столкнулся с этой проблемой для HBase, добавив эту строку в conf/hbase-env.sh, исправил проблему для меня. –

+0

Более простой пример этой же проблемы можно найти и в этом вопросе: http://stackoverflow.com/questions/14716910/still-getting-unable-to-load-realm-info-from-scdynamicstore-after-bug- fix – TheCatParty

38

в качестве обновления для этого (и для решения David Williams »пункт о Java 1.7), я испытал, что только установка .realm и .kdc Prope было недостаточно, чтобы остановить сообщение о нарушении.

Однако, рассмотрев сообщение source file, которое опускает сообщение, я смог определить, что установка .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" 
+2

Это работает для Java 1.7 на OS X 10.9.1. Спасибо, что поделился. – user300313

+1

Спасибо! Это был единственный ответ, который работал на Java 1.7 на OS X! –

+0

Работает блестяще для меня – davideanastasia

5

У меня была аналогичная проблема на 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` 

Надеется, что это поможет

+0

Это сработало для меня; вероятно, стоит упомянуть, что я работал с Hbase, поэтому мне приходилось менять HADOOP_OPTS на HBASE_OPTS. –

Смежные вопросы