gpt4 book ai didi

java - Apache 凤凰java.lang.OutOfMemoryError : unable to create new native thread

转载 作者:可可西里 更新时间:2023-11-01 16:35:26 24 4
gpt4 key购买 nike

我有一个微型 Hadoop 集群,它有 5 个数据节点和 1 个名称节点,所有 4 核/4 线程机器每个都有 4GB 内存,除了一个数据节点有 8GB 内存。

他们都在运行 RHEL 6 x86_64。 HBase版本为1.2,Phoenix版本为4.14

我正在通过 Phoenix 查询服务器和“瘦”JDBC 客户端连接到 Apache Phoenix。 Phoenix 查询服务器在名称节点上运行。

我正在尝试更新插入约 2000 个元组,每 10 分钟约 25 列,该表已经插入了超过 200 万个元组,但有时我会收到以下形式的异常:

Caused by: java.lang.OutOfMemoryError: unable to create new native thread [...] Caused by: AvaticaClientRuntimeException: Remote driver error: RuntimeException: org.apache.phoenix.execute.CommitException: java.lang.RuntimeException: java.lang.OutOfMemoryError: unable to create new native thread -> CommitException: java.lang.RuntimeException: java.lang.OutOfMemoryError: unable to create new native thread -> RuntimeException: java.lang.OutOfMemoryError: unable to create new native thread -> OutOfMemoryError: unable to create new native thread. Error -1 (00000) null

Phoenix 查询服务器正在名称节点上运行,我不确定出了什么问题。

这不是真正的 OutOfMemoryException,而是好像它正在创建许多线程并用完它们?

我已经尝试执行 ps aux,但我看不到 Phoenix 查询服务器进程创建超过 ~50 个线程,据我所知,这远远低于正常 Linux 安装中的线程限制。

也许它真的内存不足并且无法创建 native 线程是一个症状?

最佳答案

原来运行 Hadoop 进程的用户对新进程的限制太低,我编辑了

/etc/security/limits.conf

与:

user - nproc 32768

它奏效了。我没有看到特定的线程数限制,但增加进程数限制可以解决问题。

我还了解到集群也需要增加打开文件数限制:

 user - nofile 32768

我这样设置是为了避免将来出现问题。

关于java - Apache 凤凰java.lang.OutOfMemoryError : unable to create new native thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54464975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com