OSX上的Hadoop“无法从SCDynamicStore加载领域信息”
我在OSX 10.7上启动Hadoop时出现这个错误:
无法从SCDynamicStore中加载领域信息:org.apache.hadoop.hdfs.server.namenode.SafeModeException:无法创build目录/ user / travis / input / conf。 名称节点处于安全模式。
它似乎没有造成Hadoopfunction的任何问题。
马修Buckett在HADOOP-7489的build议为我工作。 将以下内容添加到您的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"
作为更新(以及解决David Williams关于Java 1.7的观点),我体验到只有设置.realm
和.kdc
属性才能阻止违规消息。
但是,通过检查忽略该消息的源文件 ,我可以确定将.krb5.conf
属性设置为/dev/null
足以抑制消息。 显然,如果你真的有一个krb5configuration,最好指定它的实际path。
总的来说,我的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上遇到同样的问题。 不幸的是,上面的解决scheme没有解决这个版本的问题:(
编辑:我find了这个解决scheme,根据我在这里看到的提示。 在hadoop-env.sh
文件中,将JAVA_HOME
设置更改为:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
(请注意这里的严重报价。)
仅供参考,您只需指定以下内容即可进一步简化此操作:
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"
然后在cdh4.1.3上执行start-yarn.sh(或start-all.sh)
从EclipsedebuggingMapReduce时出现这个错误,但是它是一个红色的鲱鱼。 真正的问题是我应该通过向JAVA_OPTS添加debugging参数进行远程debugging
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044
然后在指向端口1044的debuggingconfiguration中创build一个新的“远程Java应用程序”configuration文件。
这篇文章有更深入的东西的debugging方面的信息。 这是在谈论Solr,但与Hadoop的工作方式大致相同。 如果遇到问题,请在下面留言,我会尽力帮忙。