名前ノードはセーフモードです。出られない


122
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

何が問題ですか?

解決



2
私の場合、リソースが少ない(
Dockerで

@BrendenBrown、これがHadoop 3.2.0の現在機能しているリンクです。hadoop.apache.org
Eugene Gr。Philippov

:そして、ここでのHadoop«安定»(現在は2.9.x)のために、現在の作業のリンクですhadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/...
ユージンGrが。Philippov

回答:


211

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

 bin/hadoop dfsadmin -safemode leave

あなたは取得しているUnknown commandとして、あなたのコマンドにエラーを-safemodeするためのサブコマンドではありませんhadoop fsが、それはですhadoop dfsadmin

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

更新:

新しいディストリビューションhdfsでは、commandではなくhadoopcommandを使用してください。hadoopコマンドは廃止されています。

hdfs dfsadmin -safemode leave

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


2
実際にこれが「namenode is safemode」を表示する理由
Unmesha SreeVeni

1
基本的にnamenodeは、起動フェーズにおいても、ディスクがいっぱいのときなど、異常な状況でセーフモードに入ります。詳細はこちら。hadoop.apache.org/docs/stable/hdfs_user_guide.html#Safemode
アマール

2
私はHadoop 2.0.0-cdh4.1.1を使用しています。hadoop dfsadminコマンドを実行すると、次のような結果が得られました。______... ______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF まだ実行されました。以下の@ user3316017による提案は、推奨される構文のようです。
CJBS 2014

新しいディストリビューションに従って私の回答を更新しました。Apachehadoopの正確なバージョンを確立するために誰かが私たちを助けてくれれば、これらの非推奨が明らかになったときは素晴らしいことです。
アマール

1
hdfs dfsadmin -safemode leaveクラスタがいっぱいであるためにコマンドが実行されるとすぐにHDFSがセーフモードに戻る場合、たとえば、何かをクリーンアップするためのコマンドをすぐにチェーンすることにより、状況から抜け出すことができます。例hdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
Shadocko

27

これを試してみてください

sudo -u hdfs hdfs dfsadmin -safemode leave

このコマンドは、スーパーユーザーの特権を必要とする可能性があるため、うまくいきました。.thanks@wesam
NikhilP

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-をモード-リンクも


Hadoopセーフモードのドキュメントリンク:hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/…– CJBS '27
02/27

7

上記のHadoopバージョン2.6.1を使用している場合、コマンドは機能しますが、コマンドの価値が低下したことを報告します。hadoop dfsadmin -safemode leaveDockerコンテナーでHadoopを実行していて、コンテナーで実行するとそのコマンドが魔法のように失敗したため、実際には使用できませんでした。私はドキュメントをチェックし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>

5

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

hadoop dfsadmin -safemode leave

cloudera managerを使用している場合:

go to >>Actions>>Leave Safemode

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

free -m

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


5

これを試して

sudo -u hdfs hdfs dfsadmin -safemode leave

セーフモードのステータスを確認する

sudo -u hdfs hdfs dfsadmin -safemode get

それがまだsafemodeの場合、ノードのスペースが不足している理由の1つは、次のコマンドを使用してノードのディスク使用量を確認できます。

df -h

ルートパーティションがいっぱいの場合は、ファイルを削除するか、ルートパーティションにスペースを追加して、最初の手順を再試行してください。


4

セーフモードオンは、HDFSが
読み取り専用モードになっていることを意味します。セーフモードオフは、HDFSが書き込み可能および読み取り可能モードになっていることを意味します。

ではHadoop 2.6.0、次のコマンドを使用して名前ノードのステータスを確認できます。

名前ノードのステータスを確認するには

$ hdfs dfsadmin -safemode get

安全モードに入るには:

$ hdfs dfsadmin -safemode enter

安全モードを終了するには

~$ hdfs dfsadmin -safemode leave

1
セーフモードを強制的に解除するには:〜$ hdfs dfsadmin -safemode forceExit
ammills01 19/01/30

1

HDFS OSユーザーを使用して以下のコマンドを実行し、セーフモードを無効にします。

sudo -u hdfs hadoop dfsadmin -safemode leave

0

以下のコマンドを使用してセーフモードをオフにします

$> hdfs dfsadmin -safemode leave

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.