Jadual Kandungan
现象
猜测原因
重现
分析日志
继续搜索
结果
Rumah pangkalan data tutorial mysql hadoop重启Namenode时,appTokens报FileNotFoundException

hadoop重启Namenode时,appTokens报FileNotFoundException

Jun 07, 2016 pm 04:37 PM
f hadoop Mulakan semula

现象 报错如下 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)
Salin selepas log masuk

同时注意到是因为每次重启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
Salin selepas log masuk

重启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
Salin selepas log masuk
">

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

继续搜索

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

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

这个逻辑还算正常, 继续找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();
...
  }
Salin selepas log masuk

发现调用了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
Salin selepas log masuk

结果

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

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memulakan semula telefon Samsung s24Ultra? Bagaimana untuk memulakan semula telefon Samsung s24Ultra? Feb 09, 2024 pm 09:54 PM

Apabila menggunakan telefon mudah alih Samsung S24 Ultra, kadangkala anda mungkin menghadapi beberapa masalah atau perlu menetapkan semula peranti. Dalam kes ini, memulakan semula telefon adalah penyelesaian biasa. Walau bagaimanapun, ia mungkin mengelirukan jika anda tidak tahu banyak tentang langkah-langkahnya. Walau bagaimanapun, jangan risau, saya akan menunjukkan kepada anda cara untuk memulakan semula telefon Samsung S24 Ultra anda dengan betul. Bagaimana untuk memulakan semula telefon Samsung s24Ultra 1. Buka menu kawalan untuk menutup: Leret ke bawah dari bahagian atas skrin Samsung untuk memaparkan menu alat pintasan, klik ikon kuasa (gabungan lengkok dan garis menegak) untuk membawa sehingga penutupan dan mulakan semula antara muka pemilihan, klik Hanya mulakan semula 2. Gunakan kombinasi kekunci untuk menutup: tekan lama kekunci kelantangan ditambah kekunci kuasa untuk membuka penutupan dan mulakan semula menu pemilihan, klik untuk memilih penutupan. Dengan menekan dan menahan

Kunci muat semula F5 tidak berfungsi dalam Windows 11 Kunci muat semula F5 tidak berfungsi dalam Windows 11 Mar 14, 2024 pm 01:01 PM

Adakah kunci F5 tidak berfungsi dengan betul pada PC Windows 11/10 anda? Kekunci F5 biasanya digunakan untuk menyegarkan desktop atau penjelajah atau memuat semula halaman web. Walau bagaimanapun, sesetengah pembaca kami telah melaporkan bahawa kekunci F5 sedang menyegarkan komputer mereka dan tidak berfungsi dengan betul. Bagaimana untuk mendayakan penyegaran F5 dalam Windows 11? Untuk menyegarkan semula PC Windows anda, hanya tekan kekunci F5. Pada sesetengah komputer riba atau desktop, anda mungkin perlu menekan kombinasi kekunci Fn+F5 untuk menyelesaikan operasi muat semula. Mengapa penyegaran F5 tidak berfungsi? Jika menekan kekunci F5 gagal menyegarkan semula komputer anda atau anda mengalami masalah pada Windows 11/10, ia mungkin disebabkan oleh kekunci fungsi yang dikunci. Punca lain yang berpotensi termasuk papan kekunci atau kekunci F5

Bagaimana untuk menyelesaikan gesaan komputer 'but semula dan pilih peranti but yang betul' Bagaimana untuk menyelesaikan gesaan komputer 'but semula dan pilih peranti but yang betul' Jan 15, 2024 pm 02:00 PM

Memasang semula sistem mungkin bukan penyelesaian yang mudah, tetapi selepas memasang semula, saya mendapati bahawa apabila komputer dihidupkan, ia akan memaparkan teks putih pada latar belakang hitam, dan kemudian memberikan gesaan: rebootandselectproperbootdevice, apa yang sedang berlaku? Gesaan sedemikian biasanya disebabkan oleh ralat but. Untuk membantu semua orang, editor telah membawakan anda penyelesaian. Penggunaan komputer menjadi semakin popular, dan kegagalan komputer menjadi semakin biasa Tidak, baru-baru ini beberapa pengguna menghadapi skrin hitam apabila menghidupkan komputer, dan menggesa Reboot dan Pilih peranti But Betul, dan sistem komputer tidak dapat dimulakan. biasalah. Apa yang berlaku? Bagaimana untuk menyelesaikannya? Pengguna keliru Seterusnya, editor akan mengikuti

Bagaimana untuk memulakan semula nginx Bagaimana untuk memulakan semula nginx Jul 27, 2023 pm 05:21 PM

Cara memulakan semula nginx: 1. Mulakan semula Nginx pada Linux dan gunakan systemd untuk menguruskan perkhidmatan Nginx Ia akan memulakan semula Nginx dan membaca sebarang perubahan konfigurasi baharu 2. Mulakan semula Nginx pada Windows akan dimuatkan semula. , tanpa perlu berhenti sepenuhnya dan memulakan pelayan 3. Mulakan semula Nginx pada Mac anda, yang akan memulakan semula Nginx dan menggunakan sebarang perubahan konfigurasi baharu, dsb.

Skrip Python untuk memulakan semula komputer Skrip Python untuk memulakan semula komputer Sep 08, 2023 pm 05:21 PM

Memulakan semula komputer anda ialah tugas biasa yang sering kami lakukan untuk menyelesaikan masalah, memasang kemas kini atau menggunakan perubahan sistem. Walaupun terdapat banyak cara untuk memulakan semula komputer anda, menggunakan skrip Python menyediakan automasi dan kemudahan. Dalam artikel ini, kami akan meneroka cara membuat skrip Python yang boleh memulakan semula komputer anda dengan pelaksanaan yang mudah. Mula-mula kami akan membincangkan kepentingan memulakan semula komputer anda dan faedah yang dibawanya. Kami kemudiannya akan menyelidiki butiran pelaksanaan skrip Python, menerangkan modul dan fungsi yang diperlukan yang terlibat. Sepanjang artikel ini, kami akan memberikan penjelasan terperinci dan coretan kod untuk memastikan pemahaman yang jelas. Kepentingan Memulakan Semula Komputer Anda Memulakan semula komputer anda ialah langkah penyelesaian masalah asas yang boleh

Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Jun 24, 2023 pm 01:06 PM

Ralat Java: Ralat Hadoop, Cara Mengendalikan dan Mengelak Apabila menggunakan Hadoop untuk memproses data besar, anda sering menghadapi beberapa ralat pengecualian Java, yang mungkin menjejaskan pelaksanaan tugas dan menyebabkan pemprosesan data gagal. Artikel ini akan memperkenalkan beberapa ralat Hadoop biasa dan menyediakan cara untuk menangani dan mengelakkannya. Java.lang.OutOfMemoryErrorOutOfMemoryError ialah ralat yang disebabkan oleh memori mesin maya Java yang tidak mencukupi. Apabila Hadoop adalah

Apakah cara yang betul untuk memulakan semula perkhidmatan dalam Linux? Apakah cara yang betul untuk memulakan semula perkhidmatan dalam Linux? Mar 15, 2024 am 09:09 AM

Apakah cara yang betul untuk memulakan semula perkhidmatan dalam Linux? Apabila menggunakan sistem Linux, kami sering menghadapi situasi di mana kami perlu memulakan semula perkhidmatan tertentu, tetapi kadangkala kami mungkin menghadapi beberapa masalah semasa memulakan semula perkhidmatan, seperti perkhidmatan tidak benar-benar berhenti atau bermula. Oleh itu, adalah sangat penting untuk menguasai cara yang betul untuk memulakan semula perkhidmatan. Di Linux, anda biasanya boleh menggunakan perintah systemctl untuk mengurus perkhidmatan sistem. Perintah systemctl adalah sebahagian daripada pengurus sistem systemd

Selesaikan masalah memulakan semula dalam gelung selepas memasukkan kata laluan dalam win10 Selesaikan masalah memulakan semula dalam gelung selepas memasukkan kata laluan dalam win10 Dec 29, 2023 pm 09:53 PM

Apabila kami secara tidak sengaja melakukan beberapa operasi yang salah, atau terdapat ralat tertentu dalam sistem itu sendiri, kami mungkin tidak dapat memasuki desktop selepas memasukkan kata laluan dan terus memulakan semula. Pada masa ini kita boleh membaikinya dalam mod selamat Mari kita lihat kaedah khusus di bawah. Win10 tidak boleh memasuki desktop selepas memasukkan kata laluan dan terus memulakan semula Penyelesaian 1. Pertama, tekan dan tahan "shift" pada papan kekunci dan klik butang kuasa di sudut kanan bawah, kemudian pilih untuk memulakan semula komputer sehingga antara muka pembaikan muncul dan. kemudian lepaskan kekunci "shift". 2. Jika tiada butang kuasa di penjuru kanan sebelah bawah, anda juga boleh menggunakan butang kuasa hos komputer, tetapi anda perlu memulakannya semula tiga kali atau lebih berturut-turut. 3. Selepas antara muka pembaikan muncul, kami klik "Lihat pilihan pembaikan lanjutan". 4. Pilih "Selesaikan masalah". 5

See all articles