HDFS中zookeeper的异常分析

12 篇文章 0 订阅
9 篇文章 0 订阅

1.KeeperException

当和zookeeper已经建立连接,但是要查找的节点信息不存在时,会抛出此异常。

当在查询节点信息的过程中,和zookeeperServer失去连接,此时KeeperException.Code为CONNECTIONLOSS,则,zookeeperClient端会继续查找ZK_CONNECTION_RETRIES*ZK_INIT_RETRIES次数,目前,ZK_CONNECTION_RETRIES为10次,是重试查找节点信息的次数,ZK_INIT_RETRIES为30次,是重新连接zookeeper服务端的尝试次数。

此异常可能出现的地方:

zkCreateRecursively(String zNode, byte[] data, boolean overwrite)方法、

getNodeData(String node, Stat stat, boolean retry)方法、getPrimaryAvatarAddress(String address, Stat stat, boolean retry)方法

getPrimaryAvatarAddr(String address, Stat stat, boolean retry)方法、getPrimaryAvatarAddress(URI address, Stat stat, boolean retry)方法

getNodeStats(String node)方法、

getPrimaryRegistrationTime(URI address)方法、

exists(String address, Watcher watcher, boolean namenode)方法

createEphemeral(String path) 方法、

DeleteNode(String address)方法

此时应检查zookeeper的节点信息。

2.IOException

当和zookeeper建立连接失败时会有此异常抛出,同时会打印出:

java.net.ConnectException: Connection refused: no further information。

此异常可能出现的地方:

clearPrimary(String address)方法、

clearPrimarytmp(String address)方法、

registerPrimary(String address, String realAddress, boolean overwrite)方法、

registerPrimary(String address, String realAddress)方法、

zkCreateRecursively(String zNode, byte[] data,boolean overwrite)方法、

primeConnection()方法、

initZK()方法、

getNodeData(String node, Stat stat, boolean retry)方法、

getPrimaryAvatarAddress(String address, Stat stat, boolean retry)方法、

getPrimaryAvatarAddr(String address, Stat stat, boolean retry)方法、

getPrimaryAvatarAddress(URI address, Stat stat, boolean retry)方法啊、

getNodeStats(String node)方法、

getPrimaryRegistrationTime(URI address)方法

exists(String address, Watcher watcher, boolean namenode)方法

createEphemeral(String path)方法、

DeleteNode(String address)方法

此时应检查zookeeper的服务是否正常,与zookeeper通信的网络是否正常。

3. ConnectException

初始化zookeeperClient的时候,即在initZK方法中,其中的State会是CONNECTING,只有连接成功的时候才会是CONNECTED状态。

如果连接不上,在尝试一定次数之后(界面上会打印相应次数的java.net.ConnectException: Connection refused: no further information)

目前设置的是30次,会退出连接。并抛出IOException,打印“Timed out trying to connect to ZooKeeper”。

此异常也是在连接不上zookeeper的时候会出现。

此时应检查zookeeper的服务是否正常,与zookeeper通信的网络是否正常。

4. InterruptedException

导致此异常出现,是因为zookeeperClient的同步方法在运行的时候被阻塞。

发生此异常的情况比较复杂。

可参见此博客:

http://www.ibm.com/developerworks/cn/java/j-jtp05236.html

http://manming.iteye.com/blog/345595

若zookeeper停止失败,会有InterruptedException抛出。

5.java.lang.IllegalArgumentException

此异常会出现在,当查询zookeeper中的节点时,节点名字的格式输入不正确时。

6.UnsupportedEncodingException

当向zookeeper注册节点和删除节点不成功时会出现。

 

备注:

以上均是针对AvatarZookeeperClient类进行的分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值