You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04下Hadoop JMX服务器文件描述符显示异常求助

解决Hadoop JMX显示MaxFileDescriptorCount为4096的问题

咱们先把问题核心理清楚:你已经在系统层面把文件描述符上限调到了128000,命令行验证也没问题,但Hadoop进程里的JMX属性还是显示默认的4096——这说明Hadoop进程根本没继承到你设置的资源限制,大概率是启动方式或者配置加载的问题,下面给你一步步排查解决:

1. 先确认Hadoop进程的实际限制

别光看全局设置,直接查Hadoop进程的真实资源上限:

  • 用jps命令找到NameNode/DataNode等Hadoop进程的PID
  • 执行cat /proc/<PID>/limits,查看Max open files这一行的数值
    如果显示4096,那实锤是进程没拿到128000的设置,接下来针对性解决。

2. 修正limits.conf的配置问题

你提到的配置里有个明显的拼写错误:start soft nproc 128000应该是笔误吧?正确的配置应该针对Hadoop运行的用户(比如hadoop用户)或者所有用户(用*),比如:

# 针对hadoop用户设置
hadoop soft nofile 128000
hadoop hard nofile 128000
hadoop soft nproc 128000
hadoop hard nproc 128000

如果用*表示所有用户,要注意它对root用户不生效,但Hadoop一般用普通用户运行,所以没问题。修改后记得重新登录Hadoop用户,或者直接重启系统让配置生效。

3. 确保PAM模块加载limits配置

Ubuntu 16.04需要PAM模块来读取limits.conf的设置,检查这两个文件:

  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive
    确保里面都有这一行:
session required pam_limits.so

如果没有就加上,然后重启系统或者重新登录。

4. 针对systemd启动的Hadoop服务

如果你的Hadoop是用systemd管理的(比如systemctl start hadoop-namenode),默认会忽略limits.conf的设置,必须在systemd服务文件里手动指定:

  • 找到Hadoop的systemd服务文件(比如/etc/systemd/system/hadoop-namenode.service)
  • 在[Service]段落里添加:
LimitNOFILE=128000
LimitNPROC=128000

然后执行以下命令生效:

systemctl daemon-reload
systemctl restart hadoop-namenode.service

5. 针对init.d脚本启动的Hadoop

如果是用传统init.d脚本启动(比如service hadoop start),需要在启动脚本里直接设置ulimit:

  • 打开Hadoop的init.d脚本(比如/etc/init.d/hadoop)
  • 在启动Hadoop进程的代码前,加上:
ulimit -n 128000
ulimit -u 128000

然后重启服务:service hadoop restart

6. 解决/proc/sys/fs/file-max被覆盖的问题

这个是系统级的全局文件描述符上限,建议设置得比用户级更高(比如200000),并写入/etc/sysctl.conf保证重启后不丢失:

fs.file-max = 200000

执行sysctl -p让配置立即生效。

验证修复效果

做完以上步骤后,重启Hadoop服务,再做两个验证:

  1. 再次执行cat /proc/<HADOOP_PID>/limits,确认Max open files是128000
  2. 查看Hadoop JMX的OS属性"MaxFileDescriptorCount",应该已经显示128000了

内容的提问来源于stack exchange,提问作者Soheil Pourbafrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:38:23