博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
could't create native thread的问题跟踪
阅读量:6421 次
发布时间:2019-06-23

本文共 2314 字,大约阅读时间需要 7 分钟。

一、问题描述

  • 之前因为java.lang.OutOfMemoryError: unable to create new native thread设置了Xss参数,见

  • 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,最后导致内存耗尽。任务的线程栈中持续一下输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"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的异常可能与这个有关,当该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某些地方的内存溢出问题。参见一个类似的问题。

四、后记

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

本文转自 zouqingyun 51CTO博客,原文链接:http://blog.51cto.com/zouqingyun/1879976,如需转载请自行联系原作者
你可能感兴趣的文章
张掖百公里,再次折戟
查看>>
SAP QM Batch to Batch的转移过账事务中的Vendor Batch
查看>>
本期最新 9 篇论文,帮你完美解决「读什么」的问题 | PaperDaily #19
查看>>
图解SSIS监视文件夹并自动导入数据
查看>>
Lucene.Net 2.3.1开发介绍 —— 四、搜索(一)
查看>>
人工智能将如何变革视频监控行业?
查看>>
MyBatis Review——开发Dao的方法
查看>>
阿里云容器宣布开放支持Kubernetes托管服务
查看>>
只在UnitTest和WebHost中的出现的关于LogicalCallContext的严重问题
查看>>
Linux_FTP服务器
查看>>
Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
查看>>
技术研发国产化进程加快 看传感器企业如何展示十八般武艺
查看>>
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>
新手指南:在 Ubuntu 和 Fedora 上安装软件包
查看>>
在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
查看>>
《Python高性能编程》——2.2 Julia集合的介绍
查看>>
大型网站的 HTTPS 实践(二):HTTPS 对性能的影响
查看>>
《Swift 权威指南》——第6章,第6.10节嵌套函数
查看>>
《自己动手做交互系统》——1.3 本章小结
查看>>