hbase zookeeper客户端连接问题

时间:2013-05-30 07:03:18

标签: hadoop hbase apache-zookeeper

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

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.

3 个答案:

答案 0 :(得分:1)

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

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

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

hadoop  -       nofile  32768

用任何正在运行Hadoop和HBase的用户替换hadoop。如果您有单独的用户,则需要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

HTH

答案 1 :(得分:0)

可能有很多原因。

  1. 我会说,先试试this
  2. 验证/ etc / hosts文件是否设置为correctly
  3. Check你的hbase配置。你有没有配置hbase-env.sh来管理Zookeeper本身?您是否在hbase-site.xml中配置了zookeeper仲裁?
  4. 尝试复制整个hadoop conf目录中的zoo.cfg(真正在classpath上) 簇。 (Source
  5. 如果不能解决问题,请查看代码,看看是否正在创建多个HBaseConfiguration对象。如前所述[{3}},方法是创建一个单独的HBaseConfiguration对象,然后在所有代码中重用它。

答案 2 :(得分:0)

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

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