溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

could't create native thread的問題跟蹤

發布時間:2020-08-16 16:09:05 來源:網絡 閱讀:2403 作者:zouqingyun 欄目:大數據

一、問題描述

  • 之前因為java.lang.OutOfMemoryError: unable to create new native thread設置了Xss參數,見http://zouqingyun.blog.51cto.com/782246/1879975

  • nodeManager仍然出現該異常,同時map-reduce的任務中也出現該異常

二、一些現象

       跑了一個map-reduce任務,這個任務處理的都是小文件,最后生成了2萬多個map任務。這個job中許多任務出現java.lang.OutOfMemoryError: unable to create new native thread,觀察了這個job的一些任務,發現這個任務的thread stack持續增長,最后有7000多個thread,最后導致java.lang.OutOfMemoryError: unable to create new native thread,因為每個map任務分配的內存為800m,ThreadStackSize是默認值1024k,最后導致內存耗盡。任務的線程棧中持續一下輸出:

"Thread-3689" daemon prio=10 tid=0x00007fb6bf364000 nid=0x2331 in Object.wait() [0x00007fb5b9b94000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:638)
        - locked <0x00000000f89800d0> (a java.util.LinkedList)

"Thread-3688" daemon prio=10 tid=0x00007fb6bf362000 nid=0x10a9 in Object.wait() [0x00007fb5b9c95000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:638)
        - locked <0x00000000f89701c0> (a java.util.LinkedList)

"Thread-3687" daemon prio=10 tid=0x00007fb6bf35a800 nid=0xf23 in Object.wait() [0x00007fb5b9d96000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:638)
        - locked <0x00000000f89681c0> (a java.util.LinkedList)

"Thread-3686" daemon prio=10 tid=0x00007fb6bf358800 nid=0xde9 in Object.wait() [0x00007fb5b9e97000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:638)

三、猜測

1、nodemanager的異??赡芘c這個有關,當該map-reduce所有任務調度到一臺機器(大概40個container),每個container中任務都生成7000個thread(生成很多小文件?)。導致耗盡max user processes(262144)。但nodemanger需要new thread的時候,出現java.lang.OutOfMemoryError: unable to create new native thread。(ps 昨天這個任務確實在定時跑)

2、可能是hadoop/yarn某些地方的內存溢出問題。參見一個類似的問題。https://issues.apache.org/jira/browse/YARN-4581


四、后記

       hadoop處理大量小文件,要使用org.apache.hadoop.mapreduce.lib.input.CombineTextInputFormat,并設置mapreduce.input.fileinputformat.split.maxsize = 5147483648

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女