0

登录集群环境时,我在 zookeeper 中收到以下错误。我正在使用与 hbase 一起提供的默认 zookeeper。

HBase is able to connect to ZooKeeper but the connection closes immediately. 
This could be a sign that the server has too many connections (30 is the default)
Consider inspecting your ZK server logs for that error and then make sure you  
are reusing HBase Configuration as often as you can. See HTable's javadoc for
more information.
4

3 回答 3

1

对我来说,这似乎是一个文件句柄问题。HBase 同时使用大量文件。在大多数 *nix 系统上,默认的 ulimit -n - 即用户文件限制 1024 是不够的。将文件句柄的最大数量增加到更高的值(例如 10,000 或更多)可能会有所帮助。请注意,为运行 HBase 进程的用户增加文件句柄是操作系统配置,而不是 HBase 配置。

如果您使用的是 Ubuntu,则需要进行以下更改:

在文件 /etc/security/limits.conf 中添加以下行

hadoop  -       nofile  32768

将 hadoop 替换为运行 Hadoop 和 HBase 的任何用户。如果您有单独的用户,则需要 2 个条目,每个用户一个。在同一个文件中设置 nproc 硬限制和软限制。例如:

hadoop soft/hard nproc 32000

在文件 /etc/pam.d/common-session 添加为文件的最后一行:

session required  pam_limits.so

否则 /etc/security/limits.conf 中的更改将不会应用。

不要忘记注销并重新登录以使更改生效。

参考:http ://hbase.apache.org/book.html#basic.prerequisites

高温高压

于 2013-05-30T09:55:11.210 回答
0

可能有很多原因。

  1. 我会说,先试试这个
  2. 验证 /etc/hosts 文件是否设置正确
  3. 检查您的 hbase 配置。您是否配置了 hbase-env.sh 来管理 Zookeeper 本身?您是否在 hbase-site.xml 中配置了 zookeeper quorums?
  4. 尝试在整个集群的 hadoop conf 目录(实际上在类路径上)复制 zoo.cfg。(来源
  5. 如果这不起作用,请检查您的代码并查看您是否正在创建多个 HBaseConfiguration 对象。如此处所述,该方法创建一个单一的 HBaseConfiguration 对象,然后在所有代码中重用它。
于 2013-05-30T07:54:27.457 回答
0

您还可以查看 hbase.regionserver.handler.count

http://hbase.apache.org/configuration.html#recommended_configurations

于 2013-06-19T08:06:08.093 回答