it-swarm.com.de

Namenode fängt nicht an

Ich verwendete Hadoop in einem pseudo-verteilten Modus und alles funktionierte gut. Aber dann musste ich meinen Computer aus irgendeinem Grund neu starten. Und jetzt, wenn ich versuche, Namenode und Datanode zu starten, kann ich nur Datanode finden. Könnte mir jemand den möglichen Grund für dieses Problem nennen? Oder mache ich etwas falsch?

Ich habe sowohl bin/start-all.sh als auch bin/start-dfs.sh ausprobiert.

51
user886908

Ich stand vor dem Problem, dass namenode nicht gestartet wurde. Ich habe eine Lösung mit folgendem gefunden:

  1. löschen Sie zuerst den gesamten Inhalt aus dem temporären Ordner: rm -Rf <tmp dir> (mein war/usr/local/hadoop/tmp)
  2. formatieren Sie den Namenscode: bin/hadoop namenode -format
  3. starten Sie alle Prozesse erneut: bin/start-all.sh

Sie können auch ein Rollback mit Checkpoint in Betracht ziehen (sofern Sie dies aktiviert haben).

96
Ketan

hadoop.tmp.dir in der core-site.xml enthält defaulted zu /tmp/hadoop-${user.name}, das nach jedem Neustart gelöscht wird. Ändern Sie dies in ein anderes Verzeichnis, das beim Neustart nicht bereinigt wird.

36
Praveen Sripati

FolgendeSCHRITTEarbeitete bei mir mit hadoop 2.2.0, 

SCHRITT 1 stop hadoop

[email protected]$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh

SCHRITT 2 tmp Ordner entfernen

[email protected]$ Sudo rm -rf /app/hadoop/tmp/

SCHRITT 3 create/app/hadoop/tmp /

[email protected]$ Sudo mkdir -p /app/hadoop/tmp
[email protected]$ Sudo chown hduser:hadoop /app/hadoop/tmp
[email protected]$ Sudo chmod 750 /app/hadoop/tmp

SCHRITT 4 Benennungscode formatieren

[email protected]$ hdfs namenode -format

SCHRITT 5 dfs starten

[email protected]$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh

SCHRITT 6 jps überprüfen

[email protected]$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
25
prayagupd

In conf/hdfs-site.xml sollten Sie eine Eigenschaft wie haben

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

Mit der Eigenschaft "dfs.name.dir" können Sie steuern, wo Hadoop NameNode-Metadaten schreibt. Wenn Sie ein anderes Verzeichnis anstelle von/tmp angeben, wird sichergestellt, dass die NameNode-Daten beim Neustart nicht gelöscht werden.

4
aldrich

Öffnen Sie ein neues Terminal und starten Sie den Namen mit pfad-zu-dir-hadoop-install/bin/hadoop namenode

Die Überprüfung mit jps und namenode sollte laufen

3
tutor

Warum gehen die meisten Antworten hier davon aus, dass alle Daten gelöscht, neu formatiert und dann Hadoop neu gestartet werden müssen? Wie wissen wir, dass namenode nicht weiterentwickelt wird, aber viel Zeit in Anspruch nimmt ...? große Datenmenge in HDFS . Überprüfen Sie den Fortschritt in den Protokollen, bevor Sie annehmen, dass irgendetwas hängen bleibt oder hängen bleibt.

$ [[email protected] 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%)

Dies war nach fast einer Stunde des Wartens auf ein bestimmtes System der Fall, und es macht immer noch Fortschritte, wenn ich es mir anschaue. Hatten Sie Geduld mit Hadoop, wenn Sie das System hochfahren, und prüfen Sie die Protokolle, bevor Sie annehmen, dass etwas aufgehängt ist oder nicht .

2
zman58

Wenn jemand die hadoop1.2.1-Version verwendet und namenode nicht ausführen kann, wechseln Sie zu core-site.xml und ändern Sie dfs.default.name in fs.default.name

Und dann formatieren Sie den Namen mit $hadoop namenode -format.

Führen Sie schließlich die HDFS mit start-dfs.sh aus und überprüfen Sie den Dienst mit jps.

1
Nagarjuna

In 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>

und format von namenode mit:

hdfs namenode -format

arbeitete für 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

Fügen Sie die Eigenschaft hadoop.tmp.dir in core-site.xml hinzu

<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>

und formatieren Sie hdfs (hadoop 2.7.1):

$ hdfs namenode -format

Der Standardwert in core-default.xml lautet /tmp/hadoop-${user.name}. Dieser Wert wird nach dem Neustart gelöscht.

0
linbojin

Haben Sie conf/hdfs-site.xmldfs.name.dir geändert?

Formatieren Sie namenode, nachdem Sie es geändert haben.

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

Ich habe $hadoop namenode ausgeführt, um namenode manuell im Vordergrund zu starten.

Aus den Protokollen habe ich herausgefunden, dass 50070 belegt ist, was standardmäßig von dfs.namenode.http-address verwendet wurde. Nachdem Sie dfs.namenode.http-address in hdfs-site.xml konfiguriert haben, ist alles gut gelaufen.

0
Juiceyang

Anstelle der Formatierung des Namensnamens können Sie möglicherweise auch den folgenden Befehl verwenden, um den Namensnamen neu zu starten. Es hat für mich funktioniert:

Sudo-Service hatte einen Neustart des Master-Masters

  1. hadoop dfsadmin -safemode verlassen
0
Raghu

Das gleiche Problem konfrontiert.

(1) Prüfen Sie immer nach Tippfehlern bei der Konfiguration der .xml-Dateien, insbesondere den XML-Tags.

(2) gehe zu bin dir. und Typ ./start-all.sh

(3) Geben Sie dann jps ein, um zu überprüfen, ob Prozesse funktionieren

0
Amit-dat

Für mich funktionierte das Folgende, nachdem ich das Verzeichnis des Namensnamens .__ und des Datenknotens in hdfs-site.xml geändert hatte.

- Bevor Sie die folgenden Schritte ausführen, stoppen Sie alle Dienste mit stop-all.sh oder in meinem Fall habe ich den stop-dfs.sh verwendet, um die DFS zu stoppen

  1. Löschen Sie im neu konfigurierten Verzeichnis für jeden Knoten (namenode und datanode) alle darin enthaltenen Ordner/Dateien (in meinem Fall ein 'aktuelles' Verzeichnis).
  2. löschen Sie das temporäre Verzeichnis von Hadoop: $rm -rf /tmp/haddop-$USER 
  3. formatieren Sie den Namenode: hadoop/bin/hdfs namenode -format
  4. start-dfs.sh

Nachdem ich diesen Schritten gefolgt war, lebten mein Name und meine Datanodes mit dem neu konfigurierten Verzeichnis.

0
airin

Wenn Sie die Standardkonfigurationen bei der Ausführung von hadoop beibehalten haben, lautet der Port für den Namensnamen 50070. Sie müssen alle Prozesse finden, die auf diesem Port ausgeführt werden, und sie zuerst beenden.

  • Stoppen Sie alle laufenden hadoop mit: bin/stop-all.sh

    Alle Prozesse überprüfen, die in Port 50070 ausgeführt werden.

  • Sudo netstat -tulpn | grep :50070 #check alle Prozesse, die im Port 50070 ausgeführt werden, falls/will auf der RHS der Ausgabe angezeigt wird.

  • Sudo kill -9 <process_id> #kill_the_process.

  • Sudo rm -r /app/hadoop/tmp # löscht den temporären Ordner

  • Sudo mkdir /app/hadoop/tmp #neue es neu

  • Sudo chmod 777 –R /app/hadoop/tmp (777 wird nur zu diesem Beispiel verwendet)

  • bin/hadoop namenode –format #format hadoop namenode

  • bin/start-all.sh # start-all hadoop-Dienste

Verweisen Sie dieses Blog

0
user1675314

Wenn Sie nach dem Neustart des Systems mit diesem Problem konfrontiert sind, funktionieren die folgenden Schritte gut 

Zur Problemumgehung.

1) Formatieren Sie den Namenscode: bin/hadoop namenode -format

2) Starten Sie alle Prozesse erneut: bin/start-all.sh

Für Dauerfix: -

1) Gehen Sie zu /conf/core-site.xml und ändern Sie fs.default.name in Ihren benutzerdefinierten Namen.

2) Formatieren Sie den Namenscode: bin/hadoop namenode -format

3) Starten Sie alle Prozesse erneut: bin/start-all.sh

0
prashant thakre

Nach einem Neustart bin ich auf dasselbe gestoßen.

für hadoop-2.7.3 musste ich nur den namenode formatieren:

<HadoopRootDir>/bin/hdfs namenode -format

Dann zeigt ein JPS-Befehl

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

Wenn Ihr Namennode im Safemode stecken bleibt, können Sie ssh an namenode, su hdfs user und den folgenden Befehl ausführen, um Safemode zu deaktivieren: 

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

Nachdem Sie den Datenordner eines Ressourcenmanagers gelöscht haben, ist das Problem behoben.
Auch wenn Sie Formatierungen haben, kann dieses Problem nicht gelöst werden.

0
HbnKing

Versuche dies,

1) Stoppen Sie alle hadoop-Prozesse: stop-all.sh

2) Entfernen Sie den Ordner tmp manuell

3) Formatname: hadoop namenode -format

4) Alle Prozesse starten: start-all.sh

0
Rengasamy