web-dev-qa-db-ja.com

Namenodeが開始されていません

私はHadoopを疑似分散モードで使用していましたが、すべて正常に機能していました。しかし、何らかの理由でコンピューターを再起動する必要がありました。そして今、NamenodeとDatanodeを起動しようとすると、実行中のDatanodeしか見つかりません。この問題の考えられる理由を誰か教えてもらえますか?それとも私は何か間違ったことをしていますか?

両方試してみましたbin/start-all.shおよびbin/start-dfs.sh

52
user886908

Namenodeが起動しないという問題に直面していました。私は次を使用して解決策を見つけました:

  1. 最初にすべてのコンテンツを一時フォルダーから削除します:rm -Rf <tmp dir>(/ usr/local/hadoop/tmpでした)
  2. namenodeのフォーマット:bin/hadoop namenode -format
  3. すべてのプロセスを再び開始します:bin/start-all.sh

チェックポイントを使用してロールバックを検討することもできます(有効にした場合)。

97
Ketan

hadoop.tmp.dirは、core-site.xmlの デフォルト to /tmp/hadoop-${user.name}これは、再起動のたびにクリーニングされます。これを、再起動時にクリーンアップされない他のディレクトリに変更します。

36
Praveen Sripati

[〜#〜] steps [〜#〜]に従って、Hadoop 2.2.0で動作しました。

ステップ1 hadoopを停止する

hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh

ステップ2 tmpフォルダーを削除する

hduser@prayagupd$ Sudo rm -rf /app/hadoop/tmp/

ステップ create/app/hadoop/tmp /

hduser@prayagupd$ Sudo mkdir -p /app/hadoop/tmp
hduser@prayagupd$ Sudo chown hduser:hadoop /app/hadoop/tmp
hduser@prayagupd$ Sudo chmod 750 /app/hadoop/tmp

ステップ4フォーマットnamenode

hduser@prayagupd$ hdfs namenode -format

ステップ5 dfを開始

hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh

ステップ6 jpsをチェック

hduser@prayagupd$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
25
prayagupd

Conf/hdfs-site.xmlには、次のようなプロパティが必要です。

<property>
    <name>dfs.name.dir</name>
    <value>/home/user/hadoop/name/data</value>
</property>

プロパティ「dfs.name.dir」を使用すると、HadoopがNameNodeメタデータを書き込む場所を制御できます。また、/ tmpではなく別のディレクトリを指定すると、再起動時にNameNodeデータが削除されないようになります。

4
aldrich

新しいターミナルを開き、次を使用してネームノードを起動します hadoop-install/bin/hadoop namenodeへのパス

チェックを使用して jps そしてnamenodeが実行されている必要があります

3
tutor

ここでほとんどの回答が、すべてのデータを削除して再フォーマットし、Hadoopを再起動する必要があると仮定しているのはなぜですか? namenodeが進行していないが、多くの時間がかかっていることをどのように知ることができますかHDFSに大量のデータがある場合、これを行います。何かがハングまたはスタックしていると想定する前に、ログの進行状況を確認してください。

$ [kadmin@hadoop-node-0 logs]$ tail hadoop-kadmin-namenode-hadoop-node-0.log

...
016-05-13 18:16:44,405 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 117/141 transactions completed. (83%)
2016-05-13 18:16:56,968 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 121/141 transactions completed. (86%)
2016-05-13 18:17:06,122 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 122/141 transactions completed. (87%)
2016-05-13 18:17:38,321 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 123/141 transactions completed. (87%)
2016-05-13 18:17:56,562 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 124/141 transactions completed. (88%)
2016-05-13 18:17:57,690 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 127/141 transactions completed. (90%)

これは、特定のシステムで1時間近く待機した後です。私はそれを見るたびにまだ進行中です。システムを立ち上げるときにHadoopに忍耐を持ち、何かがハングしたり進行していないと想定する前にログを確認してください。

2
zman58

Hadoop1.2.1バージョンを使用していて、namenodeを実行できない場合は、core-site.xmlに移動し、dfs.default.namefs.default.nameに変更します。

そして、$hadoop namenode -formatを使用してネームノードをフォーマットします。

最後にstart-dfs.shを使用してhdfsを実行し、jpsを使用してサービスを確認します。

1
Nagarjuna

Core-site.xmlで:

    <configuration>
       <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
       </property>
       <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/yourusername/hadoop/tmp/hadoop-${user.name}
         </value>
  </property>
</configuration>

およびnamenodeの形式:

hdfs namenode -format

hadoop 2.8.1で働いた

I got the solution just share with you that will work who got the errors:

1. First check the /home/hadoop/etc/hadoop path, hdfs-site.xml and

 check the path of namenode and datanode 

<property>
  <name>dfs.name.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>

<property>
  <name>dfs.data.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>

2.Check the permission,group and user of namenode and datanode of the particular path(/home/hadoop/hadoopdata/hdfs/datanode), and check if there are any problems in all of them and if there are any mismatch then correct it. ex .chown -R hadoop:hadoop in_use.lock, change user and group

chmod -R 755 <file_name> for change the permission
0
Shyam Gupta

Core-site.xmlにhadoop.tmp.dirプロパティを追加

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/yourname/hadoop/tmp/hadoop-${user.name}</value>
  </property>
</configuration>

hdfs(hadoop 2.7.1)をフォーマットします:

$ hdfs namenode -format

core-default.xml のデフォルト値は/tmp/hadoop-${user.name}であり、再起動後に削除されます。

0
linbojin

変更しましたかconf/hdfs-site.xmldfs.name.dir

変更後、namenodeをフォーマットします。

$ bin/hadoop namenode -format
$ bin/hadoop start-all.sh
0
Chenxu Wang

$hadoop namenodeフォアグラウンドで手動でnamenodeを開始します。

ログから、50070が占有されていることがわかりました。これは、デフォルトでdfs.namenode.http-addressによって使用されていました。 hdfs-site.xmlでdfs.namenode.http-addressを構成した後、すべてがうまくいきました。

0
Juiceyang

ネームノードをフォーマットする代わりに、以下のコマンドを使用してネームノードを再起動できます。それは私のために働いた:

Sudoサービスhadoop-masterの再起動

  1. hadoop dfsadmin -safemode leave
0
Raghu

同じ問題に直面した。

(1).xmlファイル、特にxmlタグの構成時に入力ミスがないか常に確認してください。

(2)bin dirに移動します。 ./start-all.shと入力します

(3)次にjpsと入力して、プロセスが動作しているかどうかを確認します

0
Amit-dat

私にとっては、hdfs-site.xmlのネームノードとデータノードのディレクトリを変更した後、次のように動作しました

-次の手順を実行する前に、すべてのサービスをstop-all.shで停止するか、私の場合はstop-dfs.shを使用してdfを停止します

  1. 新しい構成されたディレクトリで、すべてのノード(namenodeおよびdatanode)について、その中のすべてのフォルダ/ファイル(私の場合は「現在の」ディレクトリ)を削除します。
  2. hadoop一時ディレクトリを削除します:$rm -rf /tmp/haddop-$USER
  3. namenodeのフォーマット:hadoop/bin/hdfs namenode -format
  4. start-dfs.sh

これらの手順を実行した後、新しい構成済みディレクトリを使用して、namenodeとdatanodeが生きていました。

0
airin

Hadoopの実行時にデフォルト構成を維持した場合、namenodeのポートは50070になります。このポートで実行されているプロセスをすべて見つけて、最初にそれらを強制終了する必要があります。

  • 実行中のすべてのhadoopを停止します:bin/stop-all.sh

    ポート50070で実行されているすべてのプロセスを確認します

  • Sudo netstat -tulpn | grep :50070#ポート50070で実行されているプロセスをチェックします。ある場合は、出力のRHSに/が表示されます。

  • Sudo kill -9 <process_id> #kill_the_process

  • Sudo rm -r /app/hadoop/tmp#一時フォルダを削除

  • Sudo mkdir /app/hadoop/tmp#再作成

  • Sudo chmod 777 –R /app/hadoop/tmp(この例では777のみが提供されています)

  • bin/hadoop namenode –format #format hadoop namenode

  • bin/start-all.sh#start-all hadoopサービス

参照 このブログ

0
user1675314

システムの再起動後にこの問題に直面した場合、以下の手順で問題なく動作します

回避策として。

1)namenodeのフォーマット:bin/hadoop namenode -format

2)すべてのプロセスを再度開始します:bin/start-all.sh

パーマ修正の場合:-

1)/conf/core-site.xmlに移動し、fs.default.nameをカスタムの名前に変更します。

2)namenodeのフォーマット:bin/hadoop namenode -format

3)すべてのプロセスを再び開始します:bin/start-all.sh

0
prashant thakre

再起動後、私は同じことを見つけました。

hadoop-2.7.3の場合、namenodeをフォーマットするだけでした:

<HadoopRootDir>/bin/hdfs namenode -format

次に、jpsコマンドが表示されます

6097 DataNode
755 RemoteMavenServer
5925 NameNode
6293 SecondaryNameNode
6361 Jps
0
soheildb

ネームノードがセーフモードでスタックしている場合は、ネームノードにsshできます。su hdfsユーザーおよび次のコマンドを実行してセーフモードをオフにします。

hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave
0

リソースマネージャーのデータフォルダーを削除すると、問題はなくなりました。
フォーマットを設定してもこの問題を解決できません。

0
HbnKing

これを試して、

1)すべてのhadoopプロセスを停止します:stop-all.sh

2)tmpフォルダーを手動で削除します

3)namenodeのフォーマット:hadoop namenode -format

4)すべてのプロセスを開始します:start-all.sh

0
Rengasamy