首页 文章

如何选择zookeeper和regionserver

提问于
浏览
0

设置regionserver和zookeeper仲裁的好方法是什么?

我有一个带有16个节点的小型hadoop集群 . 按照http://hbase.apache.org/book/example_config.html中给出的示例,我选择16个节点作为regionserver,并将这些节点的子集作为zookeeper .

但是当一个节点在一个不在hbase.zookeeper.quorum对应列表中的节点启动时,我收到以下错误:

13/08/23 15:40:05 INFO zookeeper.ClientCnxn:打开到服务器localhost / 0的套接字连接:0:0:0:0:0:0:1:2181 . 不会尝试使用SASL进行身份验证(未知错误)13/08/23 15:40:05 WARN zookeeper.ClientCnxn:服务器空的会话0x0,意外错误,关闭套接字连接并尝试重新连接java.net.ConnectException:连接被拒绝在org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)的sun.nio.ch.SocketChannelImpl.finckConnect(SocketChannelImpl.java:592)的sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) . apache.zookeeper.ClientCnxn $ SendThread.run(ClientCnxn.java:1068)13/08/23 15:40:05 INFO zookeeper.ClientCnxn:打开到服务器localhost / 127.0.0.1的套接字连接:2181 . 将不会尝试使用SASL进行身份验证(未知错误)13/08/23 15:40:05 INFO zookeeper.ClientCnxn: Build 到localhost / 127.0.0.1的套接字连接:2181,启动会话13/08/23 15:40:05 WARN zookeeper.RecoverableZooKeeper:可能是瞬态ZooKeeper异常:org.apache.zookeeper.KeeperException $ ConnectionLossException:KeeperErrorCode = ConnectionLoss for / hbase / hbaseid 13/08/23 15:40:05 INFO util.RetryCounter:在重试#1之前休眠2000ms . ..

所以它试图连续600秒然后返回

任务attempt_xxx无法报告状态60秒 . 杀!

经过几次尝试后,它会更改节点,如果新节点偶然属于zookeeper列表,则作业将以成功完成 .

这是正常的吗?

我最终将所有节点添加到zookeeper列表中,但我想知道它是否是一个好习惯 . 还有区域服务器列表应该与节点列表不同的任何地方吗?

谢谢

1 回答

  • 2

    不,它看起来不像你正在做的是一个好习惯 . 对于16个RS群集,1个ZK节点应该没问题 .

    看看ZK Admin guide

    要使ZooKeeper服务处于活动状态,必须有大多数可以相互通信的非故障机器 . 要创建可以容忍F计算机故障的部署,您应该依赖部署2xF 1计算机 . 因此,由三台机器组成的部署可以处理一个故障,而五台机器的部署可以处理两个故障 . 请注意,由于三台计算机不是多数,因此部署六台计算机只能处理两次故障 . 因此,ZooKeeper部署通常由奇数个计算机组成 .

    虽然它没有说明,但ZK集群应该不超过7个节点 . 鉴于奇数节点的建议,留下了1,3,5和7的选项 . 再次对于像你这样的小集群,1应该足够,但3将为你提供弹性 . 5可能是矫枉过正 . 肯定是7 .

    另外,查看您粘贴的错误:

    java.net.ConnectException: Connection refused
    

    这似乎表明:

    • Hadoop配置错误:您指向错误的服务器/端口,或者服务当前未运行,或者更可能 -

    • 网络配置错误,例如像iptables一样运行的防火墙

相关问题