本节书摘来异步社区《HBase管理指南》一书中的第1章,第1.6节,作者: 蒋燚峰 译者: 苏南,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.6 修改内核参数设置
HBase是运行在Hadoop上的数据库,和其他数据库一样,它也要同时打开很多个文件。Linux对于一个进程可打开文件描述符的个数有所限制。默认的限制是每个进程可打开1024个文件。为了使HBase能够顺畅运行,你需要调高启动HBase的那个用户允许打开的文件描述符的最大个数。在本书中,就是hadoop用户。
你还要调高Hadoop的nproc设置。nproc设置指定了用户可以同时启动的最大进程数量。如果nproc过低,就会遇到OutOfMemoryError这种错误。
本节将描述如何显示和更改这些内核参数。
1.6.1 准备
请确保你在所有服务器上都有root权限。
1.6.2 操作步骤
你需要对集群中的所有服务器进行如下的内核参数设置修改。
1.以hadoop用户的身份登录并执行以下命令,以确认可打开文件数的当前限制。
hadoop$ ulimit -n
1024
2.使用-u选项的ulimit命令来查看最大进程数的当前设置。
hadoop$ ulimit -u
unlimited
3.以root用户身份进行登录并调高可打开文件数和nproc的限制。在limits.conf文件中添加下列设置。
root# vi /etc/security/limits.conf
hadoop soft nofile 65535
hadoop hard nofile 65535
hadoop soft nproc 32000
hadoop hard nproc 32000
4.为使上述修改生效,使用如下命令在/etc/pam.d/common-session文件中增加一行内容。
root# echo "session required pam_limits.so" >> /etc/pam.d/common-session
5.注销登录,再以hadoop用户的身份重新进行登录,然后再次确认这些设置的当前值,你应该能够看到前面的修改已经生效了。
hadoop$ ulimit -n
65535
hadoop$ ulimit -u
32000
1.6.3 运行原理
上述的内核参数修改将hadoop用户的可打开文件数限制调高到了65535,同时将hadoop用户的最大进程数限制调高到了32000。经过这种内核参数的修改,HBase就可以同时打开足够多的文件,因此也就可以顺畅运行了。
1.6.4 参考章节
第8章“基本性能调整”