hadoop
Debuggen von Hadoop MR Java-Code in der lokalen Eclipse-Entwicklerumgebung.
Suche…
Einführung
Grundsätzlich sollten Sie sich daran erinnern, dass das Debuggen eines Hadoop-MR-Jobs vergleichbar ist mit allen ferngesteuerten Anwendungen in Eclipse.
Ein Debugger oder ein Debugging-Tool ist ein Computerprogramm, mit dem andere Programme (das „Ziel“ -Programm) getestet und debuggt werden. Dies ist besonders für eine Hadoop-Umgebung von großem Nutzen, in der wenig Platz für Fehler besteht und ein kleiner Fehler zu großen Verlusten führen kann.
Bemerkungen
Das ist alles was Sie tun müssen.
Schritte zur Konfiguration
Wie Sie wissen, kann Hadoop in drei verschiedenen Modi in der lokalen Umgebung ausgeführt werden:
- Lokalbetrieb
- Pseudo-verteilter Modus
- Voll verteilter Modus (Cluster)
Normalerweise führen Sie Ihr lokales Hadoop-Setup im verteilten Pseudo-Modus aus, um HDFS und Map Reduce (MR) zu nutzen. Sie können MR-Programme in diesem Modus jedoch nicht debuggen, da jede Map / Reduce-Aufgabe in einem separaten JVM-Prozess ausgeführt wird. Sie müssen also in den lokalen Modus wechseln, in dem Sie Ihre MR-Programme in einem einzigen JVM-Prozess ausführen können.
Hier sind die schnellen und einfachen Schritte zum Debuggen in Ihrer lokalen Umgebung:
Führen Sie hadoop im lokalen Modus zum Debuggen aus, sodass Mapper- und Reduction-Aufgaben in einer einzigen JVM statt in separaten JVMs ausgeführt werden. Folgende Schritte helfen Ihnen dabei.
Konfigurieren Sie HADOOP_OPTS so, dass das Debugging aktiviert ist. Wenn Sie Ihren Hadoop-Job ausführen, wartet er darauf, dass der Debugger eine Verbindung herstellt. Nachfolgend finden Sie den Befehl zum Debuggen derselben an Port 8080.
(Export HADOOP_OPTS = ”- agentlib: jdwp = transport = dt_socket, server = y, suspend = y, Adresse = 8008“)
Konfigurieren Sie den Wert von fs.default.name in core-site.xml in file: /// aus hdfs: //. Sie werden keine HDFS im lokalen Modus verwenden.
Konfigurieren Sie den mapred.job.tracker-Wert in mapred-site.xml auf local. Dadurch wird Hadoop angewiesen, MR-Aufgaben in einer einzigen JVM auszuführen.
Erstellen Sie eine Debug-Konfiguration für Eclipse und setzen Sie den Port auf 8008 - typisch. Gehen Sie dazu zu den Debugger-Konfigurationen, erstellen Sie einen neuen Konfigurationstyp für die Remote-Java-Anwendung und setzen Sie den Port in den Einstellungen auf 8080.
Führen Sie Ihren hadoop-Job aus (er wartet darauf, dass sich der Debugger verbindet), und starten Sie Eclipse mit der obigen Konfiguration im Debug-Modus. Stellen Sie sicher, dass Sie zuerst einen Haltepunkt setzen.