本文共 1099 字,大约阅读时间需要 3 分钟。
本节书摘来异步社区《HBase管理指南》一书中的第1章,第1.6节,作者: 蒋燚峰 译者: 苏南,更多章节内容可以访问云栖社区“异步社区”公众号查看。
HBase是运行在Hadoop上的数据库,和其他数据库一样,它也要同时打开很多个文件。Linux对于一个进程可打开文件描述符的个数有所限制。默认的限制是每个进程可打开1024个文件。为了使HBase能够顺畅运行,你需要调高启动HBase的那个用户允许打开的文件描述符的最大个数。在本书中,就是hadoop用户。
你还要调高Hadoop的nproc设置。nproc设置指定了用户可以同时启动的最大进程数量。如果nproc过低,就会遇到OutOfMemoryError这种错误。
本节将描述如何显示和更改这些内核参数。
请确保你在所有服务器上都有root权限。
你需要对集群中的所有服务器进行如下的内核参数设置修改。
1.以hadoop用户的身份登录并执行以下命令,以确认可打开文件数的当前限制。
hadoop$ ulimit -n1024
2.使用-u选项的ulimit命令来查看最大进程数的当前设置。
hadoop$ ulimit -uunlimited
3.以root用户身份进行登录并调高可打开文件数和nproc的限制。在limits.conf文件中添加下列设置。
root# vi /etc/security/limits.confhadoop soft nofile 65535hadoop hard nofile 65535hadoop soft nproc 32000hadoop 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 -n65535hadoop$ ulimit -u32000
上述的内核参数修改将hadoop用户的可打开文件数限制调高到了65535,同时将hadoop用户的最大进程数限制调高到了32000。经过这种内核参数的修改,HBase就可以同时打开足够多的文件,因此也就可以顺畅运行了。
1.6.4 参考章节
第8章“基本性能调整”转载地址:http://rvlvo.baihongyu.com/