向HBASE传输数据时出现:java.io.IOException: 远程主机强迫关闭了一个现有的连接 错误

在尝试向HBase传输大量数据时,遇到ZooKeeper连接异常问题,表现为远程主机强制关闭现有连接。通过排查,发现是由于ZooKeeper默认最大连接数限制为60,导致客户端连接过多而被断开。本文详细介绍了问题原因及两种解决方案:一是调整客户端连接数,二是修改ZooKeeper配置文件zoo.cfg增加最大连接数。
18/11/21 22:31:01 INFO ClientCnxn: Opening socket connection to server 192.168.85.133/192.168.85.133:2181. Will not attempt to authenticate using SASL (unknown error)
18/11/21 22:31:01 INFO ClientCnxn: Socket connection established to 192.168.85.133/192.168.85.133:2181, initiating session
18/11/21 22:31:01 WARN ClientCnxn: Session 0x0 for server 192.168.85.133/192.168.85.133:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: 远程主机强迫关闭了一个现有的连接。
	at sun.nio.ch.SocketDispatcher.read0(Native Method)
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:68)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
18/11/21 22:31:01 WARN RecoverableZooKeeper: Possibly transient ZooKeeper, quorum=192.168.85.133:2181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

在将数据传输至hbase时出现了该问题,终止进程,发现hbase中已经被传入了6300多行数据,所以,代码并没有问题,在调试环节中,尝试了多种解决方案,
查看zookeeper启动状态
查看防火墙
查看hbase.site.xml和hbase.env.sh的配置信息
最终发现,出现这个的原因是zookeeper客户端连接数太多,默认最大连接数是60
解决办法:
一、修改客户端连接数。
二、修改zookeeper的配置文件zoo.cfg,添加参数:maxClientCnxns=100

HBase是一种分布式的非关系型数据库,它基于Hadoop的HDFS文件系统进行存储,并且提供了高可靠性、高扩展性和高性能的特性。当在使用HBase,有可能会遇到一些报错信息。 对于报错信息:java.io.IOException: could not locate executable null\bin\win,这是由于系统环境变量配置不正确导致的。在Windows系统中,HBase需要依赖一些可执行文件来执行不同的操作。然而,这个错误消息告诉我们系统找不到指定位置的可执行文件。 解决这个问题,我们可以按照以下步骤操作: 1. 首先,确认你已经正确安装了HBase并且设置好了系统环境变量。确保HBase的安装目录被正确添加到 PATH 环境变量中。 2. 确保在 HBase 的 conf 目录下,有一个名为 hbase-site.xml 的配置文件。在这个文件中,你需要设置 HBase 的主要配置属性,例如 HBase 的根目录。 3. 确认 Hadoop 的 bin 目录也被正确添加到 PATH 环境变量中。这是因为HBase依赖于Hadoop的一些可执行文件。 4. 确认 Hadoop 的配置文件也存在于其 conf 目录中,并且 Hadoop 的根目录也被正确设置。 5. 最后,尝试重新启动 HBase,看看是否仍然报错。 如果以上步骤都正确进行,并且环境配置也正确,你应该能够避免这个错误。如果问题仍然存在,请仔细检查上述步骤,并确保每一步都按照正确的方式进行操作。 希望以上解答能够帮助你解决HBase链接报错的问题。如果仍然有疑问,请提供更多的详细信息,以便我们能更准确地定位问题并给出进一步的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值