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

Tra*_*son 57 macos hadoop osx-lion

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

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

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

小智 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"
Run Code Online (Sandbox Code Playgroud)


mda*_*iel 39

作为对此的更新(以及解决David Williams关于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"
Run Code Online (Sandbox Code Playgroud)

  • 这适用于OS X 10.9.1上的Java 1.7.感谢分享. (2认同)

use*_*279 16

我在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`
Run Code Online (Sandbox Code Playgroud)

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


bti*_*nay 13

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

export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="
Run Code Online (Sandbox Code Playgroud)

这在HADOOP-7489中也有提及.

  • 答案曾经适合我,但不再适用于java 1.7和hadoop 1.2.1.有更新的解决方案吗? (5认同)

Vla*_*roz 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`
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助