Apache HBase 是一个数据库。它需要能够一次打开大量的文件。许多 Linux 发行版限制了允许单个用户打开的文件数量1024
(或者256
,在旧版本的 OS X 上)。当以运行 HBase 的用户身份登录时,您可以通过在服务器上运行ulimit -n
命令来检查服务器上的限制。限制太低会产生一些 故障
您也可能会注意到以下错误:
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901
方法
在文件/etc/security/limits.conf下添加
* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800
* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
2. 调优
ulimit -a 用来显示当前的各种用户进程限制。
ulimit -u 200 某linux用户的最大进程数为200
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
数段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited