it-swarm.com.de

Datanode-Prozess wird nicht in Hadoop ausgeführt

Ich habe einen Hadoop-Cluster mit mehreren Knoten mit dieses Tutorial eingerichtet und konfiguriert.

Wenn ich den Befehl start-all.sh eingebe, werden alle Prozesse ordnungsgemäß initialisiert, und zwar wie folgt:

starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-namenode-jawwadtest1.out
jawwadtest1: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest1.out
jawwadtest2: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest2.out
jawwadtest1: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-secondarynamenode-jawwadtest1.out
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-jobtracker-jawwadtest1.out
jawwadtest1: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest1.out
jawwadtest2: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest2.out

Wenn ich jedoch den Befehl jps eingebe, erhalte ich folgende Ausgabe:

31057 NameNode
4001 RunJar
6182 RunJar
31328 SecondaryNameNode
31411 JobTracker
32119 Jps
31560 TaskTracker

Wie Sie sehen, läuft kein Datenknotenprozess. Ich habe versucht, einen Cluster mit einem einzelnen Knoten zu konfigurieren, hatte aber das gleiche Problem. Hat jemand eine Idee, was hier schief gehen könnte? Gibt es Konfigurationsdateien, die nicht im Tutorial erwähnt werden, oder ich habe nachgesehen? Ich bin neu bei Hadoop und bin irgendwie verloren und jede Hilfe wäre sehr dankbar.

EDIT: Hadoop-root-datanode-jawwadtest1.log:

STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.3
STARTUP_MSG:   build = https://svn.Apache.org/repos/asf/hadoop/common/branches/$
************************************************************/
2012-08-09 23:07:30,717 INFO org.Apache.hadoop.metrics2.impl.MetricsConfig: loa$
2012-08-09 23:07:30,734 INFO org.Apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:30,735 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:30,736 INFO org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:31,018 INFO org.Apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:31,024 WARN org.Apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:32,366 INFO org.Apache.hadoop.ipc.Client: Retrying connect to $
2012-08-09 23:07:37,949 ERROR org.Apache.hadoop.hdfs.server.datanode.DataNode: $
        at org.Apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(Data$
        at org.Apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransition$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNo$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.Java$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNod$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode($
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataN$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.$
        at org.Apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.Java:1$

2012-08-09 23:07:37,951 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: S$
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at jawwadtest1/198.101.220.90
************************************************************/
33
Jawwad Zakaria

Sie müssen so etwas tun:

  • bin/stop-all.sh (oder stop-dfs.sh und stop-yarn.sh in der 2.x-Serie)
  • rm -Rf /app/tmp/hadoop-your-username/*
  • bin/hadoop namenode -format (oder hdfs in der 2.x-Serie)

die Lösung wurde entnommen aus: http://pages.cs.brandeis.edu/~cs147a/lab/hadoop-troblem/ . Grundsätzlich besteht der Neustart von Grund auf neu. Stellen Sie also sicher, dass Sie keine Daten verlieren, indem Sie die HDFS-Dateien formatieren.

63
giltsl

Ich bin auf die gleiche Ausgabe gestoßen. Ich habe einen HDFS-Ordner '/ home/username/hdfs' mit den Unterverzeichnissen name, data und tmp erstellt, auf die in config-XML-Dateien von hadoop/conf verwiesen wurde. 

Als ich hadoop mit jps startete, konnte ich datanode nicht finden, also versuchte ich datanode manuell mit bin/hadoop datanode zu starten. Dann wurde mir aus der Fehlermeldung klar, dass es Berechtigungsprobleme beim Zugriff auf die Datei dfs.data.dir =/home/Benutzername/hdfs/data/gibt, auf die in einer der hadoop-Konfigurationsdateien verwiesen wurde. Alles, was ich tun musste, war, hadoop zu stoppen, den Inhalt des Verzeichnisses/home/Benutzername/hdfs/tmp/* zu löschen, dann den Befehl chmod -R 755 /home/username/hdfs/ auszuprobieren und dann hadoop zu starten. Ich könnte den Datanode finden!

15
sunskin

Ich hatte das gleiche Problem bei der Ausführung einer pseudo-verteilten Instanz mit einem einzelnen Knoten. Konnte nicht herausfinden, wie das Problem gelöst werden kann. Eine schnelle Problemumgehung besteht darin, einen DataNode manuell mit zu starten
hadoop-x.x.x/bin/hadoop datanode

6
HypnoticSheep

Beim Ausführen des Datenknotens war ich mit einem ähnlichen Problem konfrontiert. Die folgenden Schritte waren hilfreich.

  1. Im Verzeichnis [hadoop_directory]/sbin können Sie mit ./stop-all.sh alle laufenden Dienste beenden.
  2. Entferne das tmp-Verzeichnis mit rm -r [hadoop_directory]/tmp (Der in [hadoop_directory] /etc/hadoop/core-site.xml konfigurierte Pfad)
  3. Sudo mkdir [hadoop_directory]/tmp (Ein neues tmp-Verzeichnis erstellen)
  4. Wechseln Sie in das Verzeichnis */hadoop_store/hdfs, in dem Sie namenode und datanode als Unterverzeichnisse erstellt haben. (Die in [hadoop_directory] /etc/hadoop/hdfs-site.xml konfigurierten Pfade). Benutzen 

    rm -r namenode
    
    rm -r datanode
    
  5. Im */hadoop_store/hdfs-Verzeichnis verwenden

    Sudo mkdir namenode
    
    Sudo mkdir datanode
    

Bei Erlaubnisausgabe verwenden

   chmod -R 755 namenode 

   chmod -R 755 datanode
  1. In [hadoop_directory]/bin verwenden 

     hadoop namenode -format (To format your namenode)
    
  2. Verwenden Sie im Verzeichnis [hadoop_directory]/sbin die Optionen ./start-all.sh oder ./start-dfs.sh, um die Dienste zu starten.
  3. Verwenden Sie jps, um die laufenden Dienste zu überprüfen.
5
Anirban

Führen Sie die folgenden Befehle in Zeile aus: -

  1. stop-all.sh (Run Stop All, um den gesamten hadoop-Prozess zu stoppen)
  2. rm -r/usr/local/hadoop/tmp/(Ihr Hadoop-tmp-Verzeichnis, das Sie in hadoop/conf/core-site.xml konfiguriert haben)
  3. Sudo mkdir/usr/local/hadoop/tmp (Erstellen Sie dasselbe Verzeichnis erneut)
  4. hadoop namenode -format (Formatiere deinen namenode)
  5. start-all.sh (Start All starten, um den gesamten hadoop-Prozess zu starten)
  6. JPS (es werden die laufenden Prozesse angezeigt)
1

Schritt 1: - Stop-all.sh

Schritt 2: - Auf diesen Weg gekommen 

cd /usr/local/hadoop/bin

Schritt 3: - Führen Sie diesen Befehl aus

Jetzt funktioniert DataNode 

1
Sunil Suthar

Bitte kontrollieren Sie, ob die Verzeichnisseigenschaft tmp auf ein gültiges Verzeichnis in core-site.xml verweist

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

Wenn das Verzeichnis falsch konfiguriert ist, wird der Datenanordnungsprozess nicht ordnungsgemäß gestartet.

1
natbusa

Befolgen Sie diese Schritte, und Ihr Datenkanal wird erneut gestartet.

  1. Stoppen Sie dfs.
  2. Öffnen Sie hdfs-site.xml
  3. Entfernen Sie die Eigenschaften data.dir und name.dir erneut aus hdfs-site.xml und -format namenode.
  4. Entfernen Sie dann das Verzeichnis hadoopdata, fügen Sie die Datei data.dir und name.dir in hdfs-site.xml hinzu und formatieren Sie erneut namenode.
  5. Dann starten Sie dfs erneut.
1
Harish Pathak

Stoppen Sie alle Dienste - ./stop-all.shFormatieren Sie das gesamte hdfs-Verzeichnis tmp vom gesamten Master und Slave. Vergessen Sie nicht, vom Slave zu formatieren.

Formatieren Sie den Namenode (hadoop namenode -format)

Starten Sie nun die Dienste unter namenode ../bin/start-all.sh 

Dies machte für mich einen Unterschied, den Datanode-Dienst zu starten.

1
Sneha Priya Ale

Prüfen Sie, ob die hadoop.tmp.dir-Eigenschaft in core-site.xml richtig festgelegt ist . Wenn Sie sie festlegen, navigieren Sie zu diesem Verzeichnis und entfernen oder leeren Sie dieses Verzeichnis . Wenn Sie es nicht festgelegt haben, navigieren Sie zu seinem Standardordner /tmp/hadoop-${user.name}. Entfernen oder leeren Sie dieses Verzeichnis ebenfalls. 

1
Yang Chen
  1. Stoppen Sie zuerst die DFS und das Garn.
  2. Entfernen Sie die Datanode- und Namenode-Verzeichnisse wie in der Datei core-site.xml angegeben. 
  3. Erstellen Sie die Verzeichnisse neu. 
  4. Starten Sie dann die DFS und das Garn erneut wie folgt.

    start-dfs.sh

    start-yarn.sh

    mr-jobhistory-daemon.sh Start Historyserver

    Hoffe das funktioniert gut.

1
KayV

Anstatt alles unter dem "hadoop tmp dir" zu löschen, können Sie ein anderes einstellen. Wenn Ihre core-site.xml beispielsweise über diese Eigenschaft verfügt:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp</value>
</property>

Sie können dies ändern in:

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hduser/data/tmp2</value>
</property>

und dann scp core-site.xml zu jedem Knoten und dann "hadoop namenode -format" und dann hadoop neu.

0
JackeyXu

Löschen Sie den Datanode unter Ihrem hadoop-Ordner und führen Sie dann start-all.sh erneut aus

0
Gajendra K S

wenn das tmp-Verzeichnis nicht formatiert werden kann, versuchen Sie Folgendes:

  1. stoppen Sie zunächst alle Entitäten wie namenode, datanode usw. (Sie werden haben ein Skript oder einen Befehl dazu)
  2. Tmp-Verzeichnis formatieren
  3. Gehen Sie zu/var/cache/hadoop-hdfs/hdfs/dfs/und löschen Sie den gesamten Inhaltim Verzeichnis manuell
  4. Formatieren Sie jetzt erneut Ihren Namen
  5. starten Sie alle Entitäten und verwenden Sie dann den Befehl jps, um zu bestätigen, dass der datanode gestartet wurde
  6. Führen Sie nun Ihre Anwendung aus

Hoffe das hilft.

0
The joker

Selbst nach dem Entfernen der Remaking-Verzeichnisse wurde der Datanode nicht gestartet .. __ Ich habe ihn manuell mit bin/hadoop datanode.__ gestartet. Er kam zu keinem Ergebnis. Ich habe ein anderes Terminal mit demselben Benutzernamen geöffnet und jps verwendet, und es zeigte mir den laufenden Datanode-Prozess an Es funktioniert, aber ich muss das unfertige Terminal an der Seite offen lassen.

0
Argha Nandan

Befolgen Sie diese Schritte, und Ihr Datenkanal wird erneut gestartet.

1) Stoppen Sie dfs . 2) Öffnen Sie hdfs-site.xml 3) Entfernen Sie die Eigenschaften data.dir und name.dir erneut aus hdfs-site.xml und -format namenode.

4) Starten Sie dann dfs erneut.

0

Ich habe Details zu dem Problem in der Protokolldatei wie folgt: "Ungültiges Verzeichnis in dfs.data.dir: Falsche Berechtigung für/home/hdfs/dnman1, erwartet: rwxr-xr-x , während actual: rwxrwxr-x " und von dort aus habe ich festgestellt, dass die Dateanote-Dateiberechtigung für meinen Ordner 777 war. Ich korrigierte auf 755 und es fing an zu arbeiten. 

0
user1431921
  1. Ich habe hadoop.tmp.dir in conf/core-site.xml konfiguriert 
  2. Ich habe dfs.data.dir in conf/hdfs-site.xml konfiguriert
  3. Ich habe dfs.name.dir in conf/hdfs-site.xml konfiguriert 
  4. Alles im Verzeichnis "/ tmp/hadoop- /" gelöscht 
  5. Dateiberechtigungen von 777 in 755 für Verzeichnis geändert, das unter dfs.data.dir aufgeführt ist

    Und der Datenknoten begann zu arbeiten.

0
Bhaskar

Ich habe den gleichen Fehler. Es wurde mehrmals versucht, dfs zu starten und zu stoppen, alle in den vorherigen Antworten genannten Verzeichnisse wurden gelöscht, aber es half nichts.

Das Problem wurde erst behoben, nachdem das Betriebssystem neu gestartet und Hadoop von Grund auf konfiguriert wurde. (Das Konfigurieren von Hadoop ohne Neustart hat nicht funktioniert)

0
Pavel Lopatin

Ich habe eine gemischte Konfiguration angewendet und es hat bei mir funktioniert.
Zuerst >>
Beenden Sie Hadoop mit ${HADOOP_HOME}/sbin/stop-all.sh

Zweitens >>
Überprüfen Sie die Datei mapred-site.xml in Ihrem ${HADOOP_HOME}/etc/hadoop/mapred-site.xml und ändere das localhost in master.

Drittens >>
Entfernen Sie den von hadoop erstellten temporären Ordner
rm -rf //path//to//your//hadoop//temp//folder

Viertens >>
Fügen Sie die rekursive Berechtigung für temp hinzu.
Sudo chmod -R 777 //path//to//your//hadoop//temp//folder

Fünfte >>
Starten Sie nun alle Dienste erneut. Überprüfen Sie zunächst, ob der gesamte Dienst einschließlich des Datenknotens ausgeführt wird. Bildbeschreibung hier eingeben

0
Sunrays

Sie müssen überprüfen:

/ app/hadoop/tmp/dfs/data/aktuelle/VERSION und/app/hadoop/tmp/dfs/name/aktuelle/VERSION ---

in diesen beiden Dateien und der Namespace-ID des Namensknotens und des Datenknotens.

Wenn und nur wenn die NamespaceID des Datenknotens mit der NamespaceID des Namensknotens übereinstimmt, wird Ihr Datenknoten ausgeführt.

Wenn dies nicht der Fall ist, kopieren Sie die NamespaceID des Namensnamens mit vi-Editor oder gedit in die NamespaceID Ihres Datanodes und speichern und führen Sie die Deamons erneut aus.

0
sindhu Y

Versuche dies

  1. stop-all.sh
  2. vi hdfs-site.xml
  3. den für die Eigenschaft dfs.data.dir angegebenen Wert ändern
  4. formatieren namenode
  5. start-all.sh
0
Neha Milak

Sie müssen 3 Schritte ausführen.

(1) Sie müssen zu den Protokollen gehen und das neueste Protokoll überprüfen (In hadoop - 2.6.0/logs/hadoop-user-datanode-ubuntu.log)

Wenn der Fehler so ist 

Java.io.IOException: Inkompatible clusterIDs in/home/kutty/work/hadoop2data/dfs/data: namenode clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089 ; DatenknotenclusterID = CID-a5f4ba24-3a56-4125-9137-fa77c5bb07b1

das heißt, die Namen-Cluster-ID und die Daten-Cluster-ID sind nicht identisch.

(2) Kopieren Sie nun die namenode clusterID, die den obigen Fehler CID-c41df580-e197-4db6-a02a-a62b71463089 enthält 

(3) Ersetzen Sie die Datanode-Cluster-ID durch die Namenode-Cluster-ID in hadoopdata/dfs/data/current/version

clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089

Starten Sie Hadoop neu. Führt DataNode aus

0
Chandra Mouli

Bei Mac OS (Pseudo-Distributed-Modus):

Terminal öffnen

  1. Stoppen Sie dfs. 'sbin/stop-all.sh'.
  2. cd /tmp
  3. rm -rf hadoop*
  4. Navigieren Sie zum hadoop-Verzeichnis. Formatieren Sie die HDFS. bin/hdfs namenode -format
  5. sbin/start-dfs.sh
0
Anand Prakash

Nachdem ich in hadoop keine Datenknoten mit jps finden konnte, löschte ich den aktuellen Ordner ____ im hadoop-Installationsverzeichnis (/opt/hadoop-2.7.0/hadoop_data/dfs/data) und startete hadoop mit start-all.sh und jps neu.

Diesmal konnte ich den Datenknoten finden und der aktuelle Ordner wurde erneut erstellt.

0
Kajal Sharma

Dies ist für die neuere Version von Hadoop (ich habe 2.4.0)

  • Stoppen Sie in diesem Fall den Cluster sbin/stop-all.sh
  • Dann gehen Sie nach/etc/hadoop für die Konfigurationsdateien.

In der Datei: hdfs-site.xml Suchen Sie nach Verzeichnispfaden, die Dfs.namenode.dir Dfs.namenode.data.dir entsprechen

  • Löschen Sie beide Verzeichnisse rekursiv (rm -r).
  • Formatieren Sie nun den Namenode mit bin/hadoop namenode -format
  • Und schließlich sbin/start-all.sh

Hoffe das hilft.

0
apurva.nandan