Inhaltsverzeichnis
现象
猜测原因
重现
分析日志
继续搜索
结果
Heim Datenbank MySQL-Tutorial hadoop重启Namenode时,appTokens报FileNotFoundException

hadoop重启Namenode时,appTokens报FileNotFoundException

Jun 07, 2016 pm 04:37 PM
f hadoop 重启

现象 报错如下 Application application_1405852606905_0014 failed 3 times due to AM Container for appattempt_1405852606905_0014_000003 exited with exitCode: -1000 due to: RemoteTrace: java.io.FileNotFoundException: File does not exist: hdfs:

现象

报错如下

Application application_1405852606905_0014 failed 3 times due to AM Container for appattempt_1405852606905_0014_000003 exited with exitCode: -1000 due to: RemoteTrace: java.io.FileNotFoundException: File does not exist: hdfs://mycluster:8020/user/kpi/.staging/job_1405852606905_0014/appTokens at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:809)
Nach dem Login kopieren

同时注意到是因为每次重启nodemanager才发生。
首先用关键词“apptokens FileNotFoundException”在google和issue搜索没找到相关的问题。

猜测原因

可能找不到的原因:1.客户端没上传成功 2.上传成功了,但后面不知道给谁删了

重现

既然在网上找不到,尝试在测试环境重现这个问题,运行一个sleep job

cd /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce;
hadoop jar hadoop-mapreduce-client-*-tests.jar sleep -Dmapred.job.queue.name=sleep -m5 -r5 -mt 60000 -rt 30000 -recordt 1000
Nach dem Login kopieren

重启nodemanage后会发现报错。

分析日志

但发现找不到AM的日志,哪里去了?我们的hadoop环境都配置了“日志聚集”(yarn.log-aggregation-enable),失败的任务就把日志删了(可能是bug),尝试关掉后,从crontainer日志找到AM日志。
同时还可以看ResourceManager,NameNode,HDFS审计日志(hdfs-audit.log)
从AM日志可以看到第一次尝试好像是成功的,从HDFS审计日志发现了删除staging的目录

cmd=delete  src="http://fatkun.com/user/kpi/.staging/job_1405852606905_0013
Nach dem Login kopieren
">

到此可以确认目录是被删除了,导致后面的job失败,但谁删了这个目录?

继续搜索

代码很多,需要定位一下那里操作.staging这个目录,确定谁删了这个目录。在issue搜索“staging delete”,看有没有相关的操作代码。 同时阅读代码发现了org.apache.hadoop.mapreduce.v2.app.MRAppMaster.cleanupStagingDir()方法,对照日志,可以确定是这个方法删除了staging目录。

    public synchronized void stop() {
...
//这里判断了是不是AM的最后一次尝试,如果是才清理
        if(isLastAMRetry) {
          cleanupStagingDir();
        } 
...
  }
Nach dem Login kopieren

这个逻辑还算正常, 继续找isLastAMRetry是怎么来的

  public void shutDownJob() {
...
      //We are finishing cleanly so this is the last retry
      isLastAMRetry = true;
      // Stop all services
      // This will also send the final report to the ResourceManager
      LOG.info("Calling stop for all the services");
      MRAppMaster.this.stop();
...
  }
Nach dem Login kopieren

发现调用了shutDownJob,会把isLastAMRetry设置为true,调用shutDownJob是因为接收到JobFinishEvent事件。
我们多了一些信息,偷懒在issue继续搜索一下,看有没有人解决了。
这次找到issue了,https://issues.apache.org/jira/browse/MAPREDUCE-5086

阅读patch,发现之前忽略了RM报的一个错误。

org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl: Application doesn't exist in cache appattempt_1405852606905_0014_000001
Nach dem Login kopieren

结果

重启nodemanager导致RM的appattempt cache数组删除,JobImpl返回了InternalError,AM认为出错了就没必要重试了,直接置isLastRetry=true。
修改方式是加了一个状态,表明这是“RM重启”了(注意这里不是nodemanager重启,有一些关联),还可以继续重试。具体修改阅读patch https://issues.apache.org/jira/browse/MAPREDUCE-5086

最后,由于patch修改的版本和我们用的版本不一致,还得需要用我们使用的版本依照它的思路改一遍。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie starte ich das Samsung s24Ultra-Telefon neu? Wie starte ich das Samsung s24Ultra-Telefon neu? Feb 09, 2024 pm 09:54 PM

Bei der Verwendung des Mobiltelefons Samsung S24 Ultra kann es gelegentlich zu Problemen kommen oder Sie müssen das Gerät zurücksetzen. In diesem Fall ist ein Neustart des Telefons eine gängige Lösung. Es kann jedoch verwirrend sein, wenn Sie nicht viel über die Schritte wissen. Aber keine Sorge, ich zeige Ihnen, wie Sie Ihr Samsung S24 Ultra-Telefon richtig neu starten. So starten Sie das Samsung s24 Ultra neu: 1. Rufen Sie das Steuerungsmenü auf, um es herunterzufahren: Wischen Sie vom oberen Rand des Samsung-Bildschirms nach unten, um das Shortcut-Tools-Menü aufzurufen, und klicken Sie zum Aufrufen auf das Energiesymbol (eine Kombination aus Bogen und vertikaler Linie). Öffnen Sie die Auswahloberfläche zum Herunterfahren und Neustarten und klicken Sie auf „Einfach neu starten“. 2. Verwenden Sie die Tastenkombination zum Herunterfahren: Drücken Sie lange die Lautstärketaste und die Ein-/Aus-Taste, um das Auswahlmenü zum Herunterfahren und Neustarten aufzurufen. Klicken Sie, um „Herunterfahren“ auszuwählen. Durch Drücken und Halten

Die F5-Aktualisierungstaste funktioniert unter Windows 11 nicht Die F5-Aktualisierungstaste funktioniert unter Windows 11 nicht Mar 14, 2024 pm 01:01 PM

Funktioniert die F5-Taste auf Ihrem Windows 11/10-PC nicht richtig? Die F5-Taste wird normalerweise verwendet, um den Desktop oder Explorer zu aktualisieren oder eine Webseite neu zu laden. Einige unserer Leser haben jedoch berichtet, dass die F5-Taste ihre Computer aktualisiert und nicht richtig funktioniert. Wie aktiviere ich die F5-Aktualisierung in Windows 11? Um Ihren Windows-PC zu aktualisieren, drücken Sie einfach die Taste F5. Auf einigen Laptops oder Desktops müssen Sie möglicherweise die Tastenkombination Fn+F5 drücken, um den Aktualisierungsvorgang abzuschließen. Warum funktioniert die F5-Aktualisierung nicht? Wenn das Drücken der F5-Taste Ihren Computer nicht aktualisiert oder Probleme unter Windows 11/10 auftreten, kann dies daran liegen, dass die Funktionstasten gesperrt sind. Weitere mögliche Ursachen sind die Tastatur oder die F5-Taste

So lösen Sie die Computeraufforderung „Neustarten und richtiges Startgerät auswählen' So lösen Sie die Computeraufforderung „Neustarten und richtiges Startgerät auswählen' Jan 15, 2024 pm 02:00 PM

Eine Neuinstallation des Systems ist vielleicht keine narrensichere Lösung, aber nach der Neuinstallation habe ich festgestellt, dass beim Einschalten des Computers weißer Text auf schwarzem Hintergrund angezeigt wird und dann eine Eingabeaufforderung angezeigt wird: rebootandselectproperbootdevice, was ist los? Eine solche Eingabeaufforderung wird normalerweise durch einen Startfehler verursacht. Um allen zu helfen, hat der Herausgeber eine Lösung für Sie zusammengestellt. Die Verwendung von Computern wird immer beliebter und Computerausfälle treten immer häufiger auf. Nein, in letzter Zeit stellten einige Benutzer beim Einschalten des Computers einen schwarzen Bildschirm fest und forderten einen Neustart und die Auswahl des richtigen Startgeräts auf, und das Computersystem konnte nicht gestartet werden normalerweise. Was ist los? Wie man es löst? Der Benutzer ist verwirrt. Als nächstes wird der Herausgeber folgen

So starten Sie Nginx neu So starten Sie Nginx neu Jul 27, 2023 pm 05:21 PM

So starten Sie Nginx neu: 1. Starten Sie Nginx unter Linux neu und verwalten Sie den Nginx-Dienst. Es startet Nginx neu und liest alle neuen Konfigurationsänderungen. 2. Starten Sie Nginx neu und alle Konfigurationsänderungen werden übernommen. , ohne den Server vollständig stoppen und starten zu müssen; 3. Starten Sie Nginx auf Ihrem Mac neu, wodurch Nginx neu gestartet wird und alle neuen Konfigurationsänderungen usw. übernommen werden.

Python-Skript zum Neustarten des Computers Python-Skript zum Neustarten des Computers Sep 08, 2023 pm 05:21 PM

Das Neustarten Ihres Computers ist eine häufige Aufgabe, die wir häufig durchführen, um Probleme zu beheben, Updates zu installieren oder Systemänderungen vorzunehmen. Obwohl es viele Möglichkeiten gibt, Ihren Computer neu zu starten, bietet die Verwendung eines Python-Skripts Automatisierung und Komfort. In diesem Artikel erfahren Sie, wie Sie ein Python-Skript erstellen, das Ihren Computer durch eine einfache Ausführung neu starten kann. Wir besprechen zunächst, wie wichtig ein Neustart Ihres Computers ist und welche Vorteile er mit sich bringt. Anschließend werden wir uns mit den Implementierungsdetails des Python-Skripts befassen und die erforderlichen Module und Funktionen erläutern. In diesem Artikel stellen wir ausführliche Erklärungen und Codeausschnitte bereit, um ein klares Verständnis zu gewährleisten. Die Bedeutung eines Neustarts Ihres Computers Der Neustart Ihres Computers ist ein grundlegender Schritt zur Fehlerbehebung

Java-Fehler: Hadoop-Fehler, wie man damit umgeht und sie vermeidet Java-Fehler: Hadoop-Fehler, wie man damit umgeht und sie vermeidet Jun 24, 2023 pm 01:06 PM

Java-Fehler: Hadoop-Fehler, wie man damit umgeht und sie vermeidet Wenn Sie Hadoop zur Verarbeitung großer Datenmengen verwenden, stoßen Sie häufig auf einige Java-Ausnahmefehler, die sich auf die Ausführung von Aufgaben auswirken und zum Scheitern der Datenverarbeitung führen können. In diesem Artikel werden einige häufige Hadoop-Fehler vorgestellt und Möglichkeiten aufgezeigt, mit ihnen umzugehen und sie zu vermeiden. Java.lang.OutOfMemoryErrorOutOfMemoryError ist ein Fehler, der durch unzureichenden Speicher der Java Virtual Machine verursacht wird. Wenn Hadoop ist

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Mar 15, 2024 am 09:09 AM

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Wenn wir ein Linux-System verwenden, stoßen wir häufig auf Situationen, in denen wir einen bestimmten Dienst neu starten müssen, aber manchmal können beim Neustart des Dienstes Probleme auftreten, z. B. wenn der Dienst nicht tatsächlich gestoppt oder gestartet wird. Daher ist es sehr wichtig, die richtige Methode zum Neustarten von Diensten zu beherrschen. Unter Linux können Sie normalerweise den Befehl systemctl verwenden, um Systemdienste zu verwalten. Der Befehl systemctl ist Teil des systemd-Systemmanagers

Lösen Sie das Problem des Neustarts in einer Schleife nach der Eingabe des Passworts in Win10 Lösen Sie das Problem des Neustarts in einer Schleife nach der Eingabe des Passworts in Win10 Dec 29, 2023 pm 09:53 PM

Wenn wir versehentlich einige falsche Vorgänge ausführen oder bestimmte Fehler im System selbst auftreten, können wir nach Eingabe des Kennworts möglicherweise nicht auf den Desktop zugreifen und den Neustart fortsetzen. Zu diesem Zeitpunkt können wir es im abgesicherten Modus reparieren. Schauen wir uns die folgenden spezifischen Methoden an. Win10 kann nach Eingabe eines Passworts nicht auf den Desktop zugreifen und startet immer wieder neu. Lösung 1. Halten Sie zunächst die Umschalttaste auf der Tastatur gedrückt und klicken Sie auf den Netzschalter in der unteren rechten Ecke. Starten Sie dann den Computer neu, bis die Reparaturoberfläche angezeigt wird Lassen Sie dann die Umschalttaste los. 2. Wenn sich in der unteren rechten Ecke kein Netzschalter befindet, können Sie auch den Netzschalter des Computerhosts verwenden, müssen ihn jedoch mindestens dreimal hintereinander neu starten. 3. Nachdem die Reparaturoberfläche erscheint, klicken wir auf „Erweiterte Reparaturoptionen anzeigen“. 4. Wählen Sie „Fehlerbehebung“. 5

See all articles