130
root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.

hdfsで何も作成できません

やった

root# bin/hadoop fs -safemode leave

しかし、示す

safemode: Unknown command

何が問題ですか?

解決策: http://unmeshasreeveni.blogspot.com/2014/04/name-node-is-in-safe-mode-how-to-leave.html?m=1

4

9 に答える 9

222

namenode をセーフモードから強制的に終了させるには、次のコマンドを実行する必要があります。

 bin/hadoop dfsadmin -safemode leave

のサブUnknown commandコマンドではないため、コマンドのエラーが発生していますが、のです。-safemodehadoop fshadoop dfsadmin

また、上記のコマンドの後、一度実行hadoop fsckして、hdfs に忍び寄った矛盾を整理することをお勧めします。

アップデート:

新しいディストリビューションでは、コマンドのhdfs代わりにコマンドを使用してください。hadoop次のhadoopコマンドは非推奨です。

hdfs dfsadmin -safemode leave

hadoop dfsadminは廃止され、hadoop fsコマンドも廃止されました。hdfs 関連のすべてのタスクは別のコマンドに移動されていhdfsます。

于 2013-04-04T06:04:46.877 に答える
30

これを試してください、うまくいきます

sudo -u hdfs hdfs dfsadmin -safemode leave
于 2015-01-03T10:53:36.757 に答える
21

コマンドは私にとってはうまくいきませんでしたが、以下はうまくいきました

hdfs dfsadmin -safemode leave

hdfsコマンドの代わりにコマンドを使用しましたhadoop

http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe-を確認してください。モードリンクも

于 2014-02-23T11:39:58.150 に答える
8

上記の Hadoop バージョン 2.6.1 を使用している場合、コマンドは機能しますが、減価償却されていると不平を言います。DockerコンテナでHadoopを実行していたため、実際には使用できませんでしたhadoop dfsadmin -safemode leaveが、そのコマンドをコンテナで実行すると魔法のように失敗したため、私がしたことはこれでした。ドキュメントを確認したところ、次のようなdfs.safemode.threshold.pctドキュメントが見つかりました

dfs.replication.min で定義された最小レプリケーション要件を満たすブロックの割合を指定します。0 以下の値は、セーフモードを終了する前に特定の割合のブロックを待機しないことを意味します。1 より大きい値を指定すると、セーフ モードが永続的になります。

だから私は次のように変更しhdfs-site.xmlました(古いHadoopバージョンでは、どうやらでそれを行う必要がありますhdfs-default.xml

<configuration>
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
</configuration>
于 2015-11-19T09:46:21.997 に答える
5

メモリが不足すると、Namenode はセーフモードに入ります。その結果、HDFS は読み取り専用になります。つまり、HDFS に追加のディレクトリやファイルを作成することはできません。セーフモードから抜け出すには、次のコマンドを使用します。

hadoop dfsadmin -safemode leave

Cloudera Manager を使用している場合:

go to >>Actions>>Leave Safemode

しかし、それは常に問題を解決するとは限りません。完全な解決策は、メモリ内にスペースを作ることです。次のコマンドを使用して、メモリ使用量を確認します。

free -m

Cloudera を使用している場合は、HDFS に問題の兆候が見られるかどうかを確認することもできます。おそらく、namenode に関連するメモリの問題を示しているに違いありません。利用可能なオプションに従って、より多くのメモリを割り当てます。Cloudera Manager を使用していない場合、どのコマンドを使用すればよいかわかりませんが、方法はあるはずです。それが役に立てば幸い!:)

于 2014-09-24T06:15:37.947 に答える