
# 设置HBase和HDFS的句柄数限制
#### 操作场景
当打开一个HDFS文件时，句柄数限制导出，出现如下错误：
```
IOException (Too many open files)
```
此时可以参考该章节设置HBase和HDFS的句柄数。
#### 设置HBase和HDFS的句柄数限制
联系集群管理员增加各用户的句柄数。该配置为操作系统的配置，并非HBase或者HDFS的配置。建议集群管理员根据HBase和HDFS的业务量及各操作系统用户的权限进行句柄数设置。如果某一个用户需对业务量很大的HDFS进行很频繁且很多的操作，则为此用户设置较大的句柄数，避免出现以上错误。
1. 使用**root**用户登录集群所有节点机器或者客户端机器的操作系统，并进入"/etc/security"目录。
2. 执行如下命令编辑"limits.conf"文件。 
   **vi limits.conf**
   新增如下内容：
   ```
   hdfs  -       nofile  32768 
   hbase -       nofile  32768
   ```
   其中"hdfs"和"hbase"表示业务中用到的操作系统用户名称。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 只有**root**用户有权限编辑"limits.conf"文件。
   
   - 如果修改的配置不生效，请确认"/etc/security/limits.d"目录下是否有针对操作系统用户的其他nofile值。这样的值可能会覆盖"/etc/security/limits.conf"中配置的值。
   
   - 如果用户需要对HBase进行操作，建议将该用户的句柄数设置为"10000"以上。如果用户需要对HDFS进行操作，建议根据业务量大小设置对应的句柄数，建议不要给太小的值。如果用户需要对HBase和HDFS操作，建议设置较大的值，例如"32768"。
    
   
   
3. 使用如下命令查看某一用户的句柄数限制。 
   **su -** *user_name*
   **ulimit -n**
   界面会返回此用户的句柄数限制值。如下所示：
   ```
   8194
   ```
   
   
 
