12

ローカル ディスクから にファイルをコピーしようとしましたhdfs。最初は を与えましSafeModeExceptionた。解決策を探しているときに、同じコマンドを再度実行しても問題が発生しないことを読みました。だから私はもう一度試してみましたが、例外はありませんでした。

hduser@saket:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hduser/gutenberg. Name node is in safe mode.
hduser@saket:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg

なぜこうなった?。このコードを使用してセーフモードをオフにしておく必要がありますか?

hadoop dfs -safemode leave
4

2 に答える 2

18

NameNodeは、構成された割合のブロックがデータ ノードによってオンラインであると報告されるまで、セーフモードになります。dfs.namenode.safemode.threshold-pctのパラメータで設定できます。hdfs-site.xml

ブロックが非常に少ない小規模/開発クラスターの場合、このパラメーターをデフォルト値よりも低くすることは理にかなってい0.9999fます。そうしないと、ブロックが 1 つ欠けていると、システムがセーフモードでハングアップする可能性があります。

于 2012-12-06T07:54:48.733 に答える
15

(私のシステムで)へのhadoopパスに移動し、bin/usr/local/hadoop/bin/

cd /usr/local/hadoop/bin/

ファイルがあることを確認しhadoop

hadoopuser@arul-PC:/usr/local/hadoop/bin$ ls

o/p は、

hadoop            hadoop-daemons.sh  start-all.sh       start-jobhistoryserver.sh  stop-balancer.sh          stop-mapred.sh
hadoop-config.sh  rcc                start-balancer.sh  start-mapred.sh            stop-dfs.sh               task-controller
hadoop-daemon.sh  slaves.sh          start-dfs.sh       stop-all.sh                stop-jobhistoryserver.sh

./hadoop dfsadmin -safemode leave次に、コマンドを使用してセーフモードをオフにする必要があります。

hadoopuser@arul-PC:/usr/local/hadoop/bin$ ./hadoop dfsadmin -safemode leave

次のような応答が得られます。

Safe mode is OFF

注: という名前の Hadoop ユーザーを作成しましたhadoopuser

于 2014-07-09T08:49:59.280 に答える