千家信息网

could't create native thread的问题跟踪

发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,一、问题描述之前因为java.lang.OutOfMemoryError: unable to create new native thread设置了Xss参数,见http://zouqingyun.
千家信息网最后更新 2025年02月09日could't create native thread的问题跟踪

一、问题描述

  • 之前因为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的异常可能与这个有关,当该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

任务 问题 内存 文件 生成 多个 处理 参数 同时 后记 地方 时候 机器 现象 线程 分配 增长 有关 猜测 观察 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安徽网络技术职业学院 本地会话管理服务器登陆失败 武邑县委网络安全委员会 浪潮集团8年软件开发 计算机与网络安全教案 hadoop集群服务器配置 前端与后端及软件开发 合肥完美世界网络技术怎么样 太原叠威网络技术有限公司 我的世界服务器星斗森林 组态软件开发版兼做运行版 chart 数据库 网络安全片心得体会 理化实验数据库管理系统 网络安全素质教育二级 关于企业网络安全培训的计划 关于大学生网络安全发声亮剑 网络安全方面有什么 定西租房网络安全 评估美团软件开发工作量 惠普服务器安徽分公司虚拟主机 学习通服务器连接超时怎么解决 浏览器对网络安全有什么影响 建立专业技术人才数据库 金蝶kis在服务器哪里看安装包 网络安全风险分析资产信息收集 通信网络安全简介 北京开源软件开发设计crm 软件开发功能报价清单 数据库主体是什么形状
0