【问题标题】:WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnectWARN Session 0x0 for server null,意外错误,关闭套接字连接并尝试重新连接
【发布时间】:2019-03-25 14:45:11
【问题描述】:

我有两个节点,每个节点上都安装了带有 Mesos 的 docker、marathon 和 zookeeper。这是我在主节点上的 docker compose 文件:

version: '3.7'
 services:
  zookeeper:
   image: ubuntu_mesos_home_marzieh
   command: /home/zookeeper-3.4.8/bin/zkServer.sh restart
  environment:
    ZOOKEEPER_SERVER_ID: 1
    ZOOKEEPER_CLIENT_PORT: 2190
    ZOOKEEPER_TICK_TIME: 2000
    ZOOKEEPER_INIT_LIMIT: 10
    ZOOKEEPER_SYNC_LIMIT: 5
    ZOOKEEPER_SERVERS: 150.20.11.133:2888:3888;150.20.11.136:2888:3888
  network_mode: host
  expose:
    - 2190
    - 2888
    - 3888
  ports:
    - 2190:2190
    - 2888:2888
    - 3888:3888

 master-mesos:
  image: ubuntu_mesos_home_marzieh
  command: bash -c "sleep 30; /home/mesos-1.7.0/build/bin/mesos- 
    master.sh --ip=150.20.11.133 --work_dir=/var/run/mesos 
    --hostname=150.20.11.133" 
  privileged: true
  restart: always
  network_mode: host
  depends_on:
    - zookeeper
  environment:
    - LIBPROCESS_IP=150.20.11.133
    - MESOS_HOSTNAME="150.20.11.133"
    - MESOS_QUORUM=1
    - MESOS_LOG_DIR=/var/log/mesos
    - MESOS_WORK_DIR=/var/run/mesos
  expose:
    - 5050
    - 4040
    - 7077
    - 8080
  ports:
    - 5050:5050
    - 4040:4040
    - 7077:7077
    - 8080:8080

 marathon:
  image: ubuntu_mesos_home_marzieh
  command: bash -c "sleep 60; /usr/share/marathon/bin/marathon"
  privileged: true
  network_mode: host
  depends_on:
    - zookeeper
    - master-mesos
  environment:
    - HOSTNAME="150.20.11.133"
    - MARATHON_ZK=zk://150.20.11.133:2190/marathon
    - MARATHON_MASTER=zk://150.20.11.133:2190/mesos
    - MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
    - MARATHON_HTTP_PORT=8080
  expose:
    - 8080
    - 2190
  ports:
    - 8080:8080
    - 2190:2190

这是用于从节点的 docker compose:

 version: '3.7'
  services:
   zookeeper:
     image: ubuntu_mesos_home_marzieh
     command: /home/zookeeper-3.4.8/bin/zkServer.sh start
     environment:
       ZOOKEEPER_SERVER_ID: 2
       ZOOKEEPER_CLIENT_PORT: 2190
       ZOOKEEPER_TICK_TIME: 2000
       ZOOKEEPER_INIT_LIMIT: 10
       ZOOKEEPER_SYNC_LIMIT: 5
       ZOOKEEPER_SERVERS: 
       150.20.11.133:2888:3888;150.20.11.136:2888:3888
    network_mode: host
    expose:
     - 2190
     - 2888
     - 3888
    ports:
     - 2190:2190
     - 2888:2888
     - 3888:3888

  slave-mesos:
     image: ubuntu_mesos_home_marzieh
     command: bash -c "sleep 40; /home/mesos-1.7.0/build/bin/mesos- 
     slave.sh --master=150.20.11.133:5050 --work_dir=/var/run/mesos
     --systemd_enable_support=false"
     privileged: true
     restart: always
     privileged: true
     network_mode: host
     depends_on:
      - zookeeper
     environment:
       - MESOS_RESOURCES=ports(*):[11000-11999]
       - LIBPROCESS_IP=150.20.11.136
       - MESOS_HOSTNAME="150.20.11.136"
       - MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins 
       - MESOS_LOG_DIR=/var/log/mesos
       - MESOS_WORK_DIR=/var/run/mesos
       - MESOS_LOGGING_LEVEL=INFO
     expose:
       - 5051
     ports:
       - 5051:5051

   marathon:
    image: ubuntu_mesos_home_marzieh
    command: bash -c "sleep 60; /usr/share/marathon/bin/marathon"
    privileged: true
    network_mode: host
    depends_on:
      - zookeeper
      - slave-mesos
    environment:
      - MARATHON_ZK=zk://150.20.11.133:2190/marathon
      - MARATHON_MASTER=zk://150.20.11.133:2190/mesos
      - MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
      - MARATHON_HTTP_PORT=8080
    expose:
      - 8080
      - 2190
    ports:
      - 8080:8080
      - 2190:2190

我在“zoo.cfg”上配置了 Zookeeper,并为每个节点创建了“myid”文件。我还配置了 Mesos 和 Marathon。但是当我在主节点(150.20.11.133)上运行 docker compose 时,我得到了这个错误:

马拉松_1 | java.net.ConnectException:连接被拒绝 马拉松_1 |在 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

马拉松_1 |在 sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) 马拉松_1 |在 org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

马拉松_1 |在 org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1144) 马拉松_1 | [2019-02-16 13:38:14,087] 信息打开与服务器 172.28.10.133/172.28.10.133:2190 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)(org.apache.zookeeper.ClientCnxn:main-SendThread(172.28.10.133:2190))

马拉松_1 | [2019-02-16 13:38:14,087] WARN Session 0x0 for server null,意外错误,关闭套接字连接并尝试重新连接(org.apache.zookeeper.ClientCnxn:main-SendThread(172.28.10.133:2190))

马拉松_1 | java.net.ConnectException:连接被拒绝 马拉松_1 |在 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

马拉松_1 |在 sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

马拉松_1 |在 org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

马拉松_1 |在 org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1144) 马拉松_1 | [2019-02-16 13:38:14,173] 错误无法连接到 ZK。马拉松现在将退出。 (mesosphere.marathon.core.storage.store.impl.zk.RichCuratorFramework:main)

我不知道会发生什么。我尝试使用 ufw 打开每个端口或禁用防火墙,但错误并没有消失。你能告诉我docker compose文件有什么问题吗?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: java docker apache-zookeeper mesos marathon


    【解决方案1】:

    我刚刚重新启动了“zookeeper”,一切正常。

    ./ZOOKEEPER_HOME/bin/zkServer.sh restart
    

    【讨论】:

    • 感谢您的回答。但是,如果像我这样的人在这里并在 docker 容器中运行。 docker-compose restart 将解决此问题。至少对我有用。
    • @ssi-anik 我使用了你的命令的变体。 docker restart 并且成功了
    【解决方案2】:

    “server null” 表示在运行 ZK CLI 时未收到服务器参数的值。
    查看是否可以通过命令行传递配置文件中指定的内容来覆盖 Zookeeper 服务器和端口。
    ./zkCli.sh -server 主机名:端口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2022-06-16
      • 1970-01-01
      • 2016-01-10
      • 2017-02-08
      • 1970-01-01
      相关资源
      最近更新 更多