(本文档仅供参考)
问题说明
自助数据集抽取失败,显示 Caused by: smartbix.SmartbiXException: 抽取未完成或抽取失败: 文件监听线程异常 :java.io.IOException: User limit of inotify instances reached or too many open files
解决方案
1、修改SmartbiMPP数据库所在机器的句柄数大小,具体可以参考Wiki文档:解决Too many open files异常 ,相关句柄数设置命令补充说明如下:
ulimit -a 说明:ulimit -a 用来显示当前的各种用户进程限制
ulimit -n 说明:ulimit -n 查看当前用户默认的最大文件句柄数
lsof |wc -l 查看所有进程的文件打开数
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数,注意第一列是句柄数,第二列是进程id ,这样可以通过进程ID确定具体操作系统句柄数效果的进行是哪个,从而进一步分析问题。
2、调整SmartbiMPP所在机器上实例数的大小,因为/proc/sys/fs/inotify/max_user_instances 默认值“128”的话安卓容器只能打开64个,执行命令如下:
echo "fs.inotify.max_user_instances=8192" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
评论
孙鑫 发表:
1、查看当前系统 fs.inotify.max_user_instances参数的数值(默认128):
sudo sysctl fs.inotify.max_user_instances
2、命令的方式设置 fs.inotify.max_user_instances参数的方法:
sudo sysctl fs.inotify.max_user_instances=8192
3、写入文件中方式(重启后生效)
写入 /etc/sysctl.conf 文件中
注:对于docker 容器来说,容器内获取的句柄数和fs.inotify.max_user_instances都来源于宿主主机,这些参数在宿主主机设置后即可。