【问题标题】:Replace ZooKeeper servers替换 ZooKeeper 服务器
【发布时间】:2016-04-01 13:23:00
【问题描述】:

我想用 3 个新的 ZooKeeper 服务器替换当前的 3 个 ZooKeeper 服务器。我已添加:

  • Ambari 的新动物园,
  • 将新 Zoo 添加到变量中:

    hbase.zookeeper.quorum ha.zookeeper.quorum zookeeper.connect hadoop.registry.zk.quorum yarn.resourcemanager.zk-address

重新启动服务,重新启动 RM,当我关闭所有旧 Zoo 服务器时,我仍然无法连接到任何新 Zoo。

zookeeper-client-server zoo-new1 我收到以下错误:

“无法从服务器 sessionid 0x0 读取附加数据,可能服务器已关闭套接字”

在日志中的新 Zoo 服务器上 (zookeeper.out):

“由于 java.io.IOException 导致会话 0x0 关闭的异常:ZooKeeperServer 未运行”

当我运行一个旧的 ZooKeeper 时,一切正常,我也可以连接到新的 ZooKeeper 服务器。

【问题讨论】:

    标签: hadoop apache-zookeeper hortonworks-data-platform ambari bigdata


    【解决方案1】:

    我最好的猜测是,这与 zookeeper 中最重要的属性之一有关,即领导选举。如果你从一个有 3 个服务器的 zookeeper quorum 开始,然后再添加 3 个服务器。您必须至少运行 4 台服务器才能访问仲裁。当 Zookeeper 节点无法选举领导者时,它看起来好像已经关闭。

    这也是当您启动其中一个旧的 zookeepers 时您的设置有效的原因,因为它们现在有 4 个活着,有 6 个可能。如果您希望新设置正常工作,您需要从配置中删除旧服务器,以便仲裁只知道三个新服务器。简单地关闭 Zookeeper 服务器不会将其从仲裁中删除。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 2020-12-02
      • 1970-01-01
      • 2015-08-15
      • 2020-05-13
      • 1970-01-01
      • 2013-03-15
      • 2017-02-20
      相关资源
      最近更新 更多