OSX 10.7でHadoopを起動すると、次のエラーが表示されます。
SCDynamicStore putからレルム情報をロードできません:org.Apache.hadoop.hdfs.server.namenode.SafeModeException:ディレクトリー/ user/travis/input/confを作成できません。名前ノードはセーフモードです。
Hadoopの機能に問題を引き起こしていないようです。
HADOOP-7489でのMatthew Buckettの提案は、私にとってはうまくいきました。以下を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
はメッセージを抑制するのに十分でした。明らかに、実際に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で同じ問題が発生しています。残念ながら、上記の解決策はこのバージョンの問題を解決しません:(
編集:私が見たヒントに基づいて、これに対する解決策を見つけました here 。の中に 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)を実行する前
EclipseからMapReduceをデバッグするときにこのエラーが発生しましたが、それはニシンです。本当の問題は、デバッグパラメータをJava_OPTSに追加して、リモートデバッグを行うべきだったことです。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044
そして、ポート1044を指すデバッグ構成で新しい「Remote Java Application」プロファイルを作成します。
この記事 には、デバッグの側面に関する詳細な情報があります。 Solrについて話していますが、Hadoopでもほぼ同じように機能します。問題がある場合は、下にメッセージを貼り付けてください。