OSX上的Hadoop“无法从SCDynamicStore加载领域信息”

时间:2011-08-20 21:13:05

标签: macos hadoop osx-lion

我在OSX 10.7上启动Hadoop时遇到此错误:

  

无法从SCDynamicStore加载领域信息   put:org.apache.hadoop.hdfs.server.namenode.SafeModeException:无法创建目录/ user / travis / input / conf。名称节点处于安全模式。

它似乎没有引起Hadoop功能的任何问题。

7 个答案:

答案 0 :(得分:76)

Matthew Buckett在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"

答案 1 :(得分:39)

作为对此的更新(以及针对Java 1.7的David Williams'点),我经历过只设置.realm.kdc属性不足以阻止违规消息。

但是,通过检查忽略该消息的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 :(得分:16)

我在OS X 10.8.2,Java版本1.7.0_21上遇到了同样的问题。不幸的是,上述解决方案无法解决此版本的问题:(

编辑:根据我看到here的提示,我找到了解决方法。在hadoop-env.sh文件中,将JAVA_HOME设置更改为:

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

(请注意这里的严重引用。)

答案 3 :(得分:13)

仅供参考,您可以通过仅指定以下内容来进一步简化:

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

HADOOP-7489也提到了这一点。

答案 4 :(得分: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`

希望这会有所帮助

答案 5 :(得分:4)

并添加

YARN_OPTS="$YARN_OPTS -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

在cdh4.1.3

上执行start-yarn.sh(或start-all.sh)之前

答案 6 :(得分:2)

从Eclipse调试MapReduce时出现此错误,但它是一个红色的鲱鱼。真正的问题是我应该通过向JAVA_OPTS

添加调试参数来进行远程调试
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

然后在调试配置中创建一个指向端口1044的新“远程Java应用程序”配置文件。

This article有一些关于调试方面的更深入的信息。它在谈论Solr,但与Hadoop的工作原理大致相同。如果您遇到问题,请在下方留言,我会尽力帮助您。