Git Product home page Git Product logo

Comments (11)

danielm0hr avatar danielm0hr commented on August 21, 2024 5

Hi, I just ran into this very same problem while trying to setup Apache NiFi in cluster mode and would like to share my experience.

What I learned:
For me it seems this issue only exists if using hostnames instead of IP addresses for connecting to your nodes. Zookeeper seems to bind to the external network interface only by default (didn't check this actually) and when using IP addresses, a locally connecting ZK also always goes through the external interface. But when using hostnames, the name resolution comes into play. My hosts where configured (/etc/hosts) to resolve their own hostnames to 127.0.1.1 (the loopback interface). When ZK is only bound to the external interface, this of course doesn't work. Using 0.0.0.0 just tells Zookeeper to bind the local instance to all interfaces, so it doesn't matter if accessed externally or through loopback.

What I did:
Change the /etc/hosts of my hosts to resolve their own hostnames to their own external IP. I.e. change 127.0.1.1 <hostname> to <external IP> <hostname>. Voilà, it works.

from zookeeper-docker.

realcbb avatar realcbb commented on August 21, 2024 3

Sorry, error typing.
If edit "server.x=0.0.0.0:2888:3888 other servers...", it works fine.
Perhaps because of listening on swarm VIP?

from zookeeper-docker.

realcbb avatar realcbb commented on August 21, 2024 2

Yes.

version: '3.2'
services:
  zoo1:
    image: zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
    volumes:
      - /zookeeper/data:/data
      - /zookeeper/datalog:/datalog
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == node1
  zoo2:
    image: zookeeper
    ports:
      - "2182:2181"
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
    volumes:
      - /zookeeper/data:/data
      - /zookeeper/datalog:/datalog
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == node2
  zoo3:
    image: zookeeper
    ports:
      - "2183:2181"
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
    volumes:
      - /zookeeper/data:/data
      - /zookeeper/datalog:/datalog
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.hostname == node3
networks:
  default:
    external:
      name: myoverlay

from zookeeper-docker.

31z4 avatar 31z4 commented on August 21, 2024 1

It was tested using the example docker-compose.yml.

In fact same thing happens in logs while staring the clustier using docker-compose.

$ docker-compose -f docker-compose-zookeeper.yml up
Creating misc_zoo3_1
Creating misc_zoo2_1
Creating misc_zoo1_1
Attaching to misc_zoo1_1, misc_zoo3_1, misc_zoo2_1
zoo1_1  | ZooKeeper JMX enabled by default
zoo3_1  | ZooKeeper JMX enabled by default
zoo1_1  | Using config: /conf/zoo.cfg
zoo3_1  | Using config: /conf/zoo.cfg
zoo2_1  | ZooKeeper JMX enabled by default
zoo2_1  | Using config: /conf/zoo.cfg
zoo3_1  | 2017-05-28 13:22:12,689 [myid:] - INFO  [main:QuorumPeerConfig@134] - Reading configuration from: /conf/zoo.cfg
zoo1_1  | 2017-05-28 13:22:12,689 [myid:] - INFO  [main:QuorumPeerConfig@134] - Reading configuration from: /conf/zoo.cfg
zoo3_1  | 2017-05-28 13:22:12,715 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo3 to address: zoo3/172.18.0.4
zoo3_1  | 2017-05-28 13:22:12,716 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo3_1  | 2017-05-28 13:22:12,717 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo1 to address: zoo1/172.18.0.2
zoo3_1  | 2017-05-28 13:22:12,718 [myid:] - INFO  [main:QuorumPeerConfig@396] - Defaulting to majority quorums
zoo1_1  | 2017-05-28 13:22:12,720 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo3 to address: zoo3/172.18.0.4
zoo1_1  | 2017-05-28 13:22:12,721 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo1_1  | 2017-05-28 13:22:12,724 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo1 to address: zoo1/172.18.0.2
zoo3_1  | 2017-05-28 13:22:12,724 [myid:3] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
zoo1_1  | 2017-05-28 13:22:12,725 [myid:] - INFO  [main:QuorumPeerConfig@396] - Defaulting to majority quorums
zoo3_1  | 2017-05-28 13:22:12,724 [myid:3] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
zoo3_1  | 2017-05-28 13:22:12,725 [myid:3] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.
zoo1_1  | 2017-05-28 13:22:12,732 [myid:1] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
zoo1_1  | 2017-05-28 13:22:12,732 [myid:1] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
zoo1_1  | 2017-05-28 13:22:12,738 [myid:1] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.
zoo3_1  | 2017-05-28 13:22:12,756 [myid:3] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer
zoo1_1  | 2017-05-28 13:22:12,758 [myid:1] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer
zoo3_1  | 2017-05-28 13:22:12,794 [myid:3] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
zoo1_1  | 2017-05-28 13:22:12,797 [myid:1] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
zoo3_1  | 2017-05-28 13:22:12,842 [myid:3] - INFO  [main:QuorumPeer@1134] - minSessionTimeout set to -1
zoo1_1  | 2017-05-28 13:22:12,842 [myid:1] - INFO  [main:QuorumPeer@1134] - minSessionTimeout set to -1
zoo3_1  | 2017-05-28 13:22:12,842 [myid:3] - INFO  [main:QuorumPeer@1145] - maxSessionTimeout set to -1
zoo3_1  | 2017-05-28 13:22:12,845 [myid:3] - INFO  [main:QuorumPeer@1419] - QuorumPeer communication is not secured!
zoo3_1  | 2017-05-28 13:22:12,845 [myid:3] - INFO  [main:QuorumPeer@1448] - quorum.cnxn.threads.size set to 20
zoo1_1  | 2017-05-28 13:22:12,842 [myid:1] - INFO  [main:QuorumPeer@1145] - maxSessionTimeout set to -1
zoo1_1  | 2017-05-28 13:22:12,849 [myid:1] - INFO  [main:QuorumPeer@1419] - QuorumPeer communication is not secured!
zoo1_1  | 2017-05-28 13:22:12,850 [myid:1] - INFO  [main:QuorumPeer@1448] - quorum.cnxn.threads.size set to 20
zoo1_1  | 2017-05-28 13:22:12,857 [myid:1] - INFO  [main:QuorumPeer@624] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo3_1  | 2017-05-28 13:22:12,857 [myid:3] - INFO  [main:QuorumPeer@624] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo3_1  | 2017-05-28 13:22:12,891 [myid:3] - INFO  [main:QuorumPeer@639] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo1_1  | 2017-05-28 13:22:12,916 [myid:1] - INFO  [main:QuorumPeer@639] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo3_1  | 2017-05-28 13:22:12,976 [myid:3] - INFO  [ListenerThread:QuorumCnxManager$Listener@739] - My election bind port: zoo3/172.18.0.4:3888
zoo1_1  | 2017-05-28 13:22:12,981 [myid:1] - INFO  [ListenerThread:QuorumCnxManager$Listener@739] - My election bind port: zoo1/172.18.0.2:3888
zoo3_1  | 2017-05-28 13:22:13,007 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@865] - LOOKING
zoo3_1  | 2017-05-28 13:22:13,013 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@818] - New election. My id =  3, proposed zxid=0x0
zoo1_1  | 2017-05-28 13:22:13,026 [myid:1] - INFO  [zoo1/172.18.0.2:3888:QuorumCnxManager$Listener@746] - Received connection request /172.18.0.4:46640
zoo1_1  | 2017-05-28 13:22:13,046 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer@865] - LOOKING
zoo1_1  | 2017-05-28 13:22:13,050 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo1_1  | 2017-05-28 13:22:13,051 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@818] - New election. My id =  1, proposed zxid=0x0
zoo1_1  | 2017-05-28 13:22:13,053 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@600] - Notification: 1 (message format version), 1 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo3_1  | 2017-05-28 13:22:13,044 [myid:3] - WARN  [WorkerSender[myid=3]:QuorumCnxManager@588] - Cannot open channel to 2 at election address zoo2/172.18.0.3:3888
zoo3_1  | java.net.ConnectException: Connection refused (Connection refused)
zoo3_1  | 	at java.net.PlainSocketImpl.socketConnect(Native Method)
zoo3_1  | 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
zoo3_1  | 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
zoo3_1  | 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
zoo3_1  | 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
zoo3_1  | 	at java.net.Socket.connect(Socket.java:589)
zoo3_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
zoo3_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
zoo3_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
zoo3_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
zoo3_1  | 	at java.lang.Thread.run(Thread.java:745)
zoo3_1  | 2017-05-28 13:22:13,055 [myid:3] - INFO  [WorkerSender[myid=3]:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo3_1  | 2017-05-28 13:22:13,058 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo1_1  | 2017-05-28 13:22:13,063 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@588] - Cannot open channel to 2 at election address zoo2/172.18.0.3:3888
zoo1_1  | java.net.ConnectException: Connection refused (Connection refused)
zoo1_1  | 	at java.net.PlainSocketImpl.socketConnect(Native Method)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
zoo1_1  | 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
zoo1_1  | 	at java.net.Socket.connect(Socket.java:589)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
zoo1_1  | 	at java.lang.Thread.run(Thread.java:745)
zoo1_1  | 2017-05-28 13:22:13,067 [myid:1] - INFO  [WorkerSender[myid=1]:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo1_1  | 2017-05-28 13:22:13,067 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo1_1  | 2017-05-28 13:22:13,068 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@588] - Cannot open channel to 2 at election address zoo2/172.18.0.3:3888
zoo1_1  | java.net.ConnectException: Connection refused (Connection refused)
zoo1_1  | 	at java.net.PlainSocketImpl.socketConnect(Native Method)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
zoo1_1  | 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
zoo1_1  | 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
zoo1_1  | 	at java.net.Socket.connect(Socket.java:589)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
zoo1_1  | 	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
zoo1_1  | 	at java.lang.Thread.run(Thread.java:745)
zoo1_1  | 2017-05-28 13:22:13,068 [myid:1] - INFO  [WorkerSender[myid=1]:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo3_1  | 2017-05-28 13:22:13,069 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@600] - Notification: 1 (message format version), 1 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo3_1  | 2017-05-28 13:22:13,072 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,196 [myid:] - INFO  [main:QuorumPeerConfig@134] - Reading configuration from: /conf/zoo.cfg
zoo2_1  | 2017-05-28 13:22:13,213 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo3 to address: zoo3/172.18.0.4
zoo2_1  | 2017-05-28 13:22:13,214 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo2 to address: zoo2/172.18.0.3
zoo2_1  | 2017-05-28 13:22:13,215 [myid:] - INFO  [main:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo1 to address: zoo1/172.18.0.2
zoo2_1  | 2017-05-28 13:22:13,216 [myid:] - INFO  [main:QuorumPeerConfig@396] - Defaulting to majority quorums
zoo2_1  | 2017-05-28 13:22:13,220 [myid:2] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
zoo2_1  | 2017-05-28 13:22:13,220 [myid:2] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
zoo2_1  | 2017-05-28 13:22:13,220 [myid:2] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.
zoo2_1  | 2017-05-28 13:22:13,233 [myid:2] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer
zoo2_1  | 2017-05-28 13:22:13,249 [myid:2] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
zoo1_1  | 2017-05-28 13:22:13,270 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer@935] - FOLLOWING
zoo3_1  | 2017-05-28 13:22:13,273 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@947] - LEADING
zoo3_1  | 2017-05-28 13:22:13,278 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Leader@62] - TCP NoDelay set to: true
zoo2_1  | 2017-05-28 13:22:13,278 [myid:2] - INFO  [main:QuorumPeer@1134] - minSessionTimeout set to -1
zoo2_1  | 2017-05-28 13:22:13,279 [myid:2] - INFO  [main:QuorumPeer@1145] - maxSessionTimeout set to -1
zoo2_1  | 2017-05-28 13:22:13,279 [myid:2] - INFO  [main:QuorumPeer@1419] - QuorumPeer communication is not secured!
zoo2_1  | 2017-05-28 13:22:13,279 [myid:2] - INFO  [main:QuorumPeer@1448] - quorum.cnxn.threads.size set to 20
zoo1_1  | 2017-05-28 13:22:13,284 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@86] - TCP NoDelay set to: true
zoo2_1  | 2017-05-28 13:22:13,285 [myid:2] - INFO  [main:QuorumPeer@624] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo3_1  | 2017-05-28 13:22:13,321 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zoo3_1  | 2017-05-28 13:22:13,321 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:host.name=5169b6ae4569
zoo2_1  | 2017-05-28 13:22:13,320 [myid:2] - INFO  [main:QuorumPeer@639] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
zoo3_1  | 2017-05-28 13:22:13,321 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.version=1.8.0_121
zoo3_1  | 2017-05-28 13:22:13,322 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.vendor=Oracle Corporation
zoo3_1  | 2017-05-28 13:22:13,323 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.home=/usr/lib/jvm/java-1.8-openjdk/jre
zoo3_1  | 2017-05-28 13:22:13,323 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.class.path=/zookeeper-3.4.10/bin/../build/classes:/zookeeper-3.4.10/bin/../build/lib/*.jar:/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/conf:
zoo3_1  | 2017-05-28 13:22:13,324 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
zoo3_1  | 2017-05-28 13:22:13,324 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.io.tmpdir=/tmp
zoo3_1  | 2017-05-28 13:22:13,324 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.compiler=<NA>
zoo3_1  | 2017-05-28 13:22:13,325 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.name=Linux
zoo3_1  | 2017-05-28 13:22:13,325 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.arch=amd64
zoo3_1  | 2017-05-28 13:22:13,326 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.version=4.9.27-moby
zoo3_1  | 2017-05-28 13:22:13,326 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.name=zookeeper
zoo3_1  | 2017-05-28 13:22:13,327 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.home=/home/zookeeper
zoo3_1  | 2017-05-28 13:22:13,327 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.dir=/zookeeper-3.4.10
zoo1_1  | 2017-05-28 13:22:13,329 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zoo1_1  | 2017-05-28 13:22:13,329 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:host.name=39b2036886bc
zoo1_1  | 2017-05-28 13:22:13,329 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.version=1.8.0_121
zoo1_1  | 2017-05-28 13:22:13,329 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.vendor=Oracle Corporation
zoo1_1  | 2017-05-28 13:22:13,330 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.home=/usr/lib/jvm/java-1.8-openjdk/jre
zoo1_1  | 2017-05-28 13:22:13,330 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.class.path=/zookeeper-3.4.10/bin/../build/classes:/zookeeper-3.4.10/bin/../build/lib/*.jar:/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/conf:
zoo1_1  | 2017-05-28 13:22:13,330 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
zoo1_1  | 2017-05-28 13:22:13,331 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.io.tmpdir=/tmp
zoo1_1  | 2017-05-28 13:22:13,331 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.compiler=<NA>
zoo1_1  | 2017-05-28 13:22:13,332 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.name=Linux
zoo1_1  | 2017-05-28 13:22:13,332 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.arch=amd64
zoo1_1  | 2017-05-28 13:22:13,332 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.version=4.9.27-moby
zoo1_1  | 2017-05-28 13:22:13,333 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.name=zookeeper
zoo1_1  | 2017-05-28 13:22:13,333 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.home=/home/zookeeper
zoo1_1  | 2017-05-28 13:22:13,333 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.dir=/zookeeper-3.4.10
zoo3_1  | 2017-05-28 13:22:13,336 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@173] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /datalog/version-2 snapdir /data/version-2
zoo1_1  | 2017-05-28 13:22:13,338 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@173] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /datalog/version-2 snapdir /data/version-2
zoo1_1  | 2017-05-28 13:22:13,352 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Follower@64] - FOLLOWING - LEADER ELECTION TOOK - 301
zoo3_1  | 2017-05-28 13:22:13,355 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Leader@371] - LEADING - LEADER ELECTION TOOK - 342
zoo1_1  | 2017-05-28 13:22:13,357 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo3 to address: zoo3/172.18.0.4
zoo2_1  | 2017-05-28 13:22:13,360 [myid:2] - INFO  [ListenerThread:QuorumCnxManager$Listener@739] - My election bind port: zoo2/172.18.0.3:3888
zoo3_1  | 2017-05-28 13:22:13,383 [myid:3] - INFO  [LearnerHandler-/172.18.0.2:49628:LearnerHandler@346] - Follower sid: 1 : info : org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer@13f8a8b3
zoo2_1  | 2017-05-28 13:22:13,385 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:QuorumPeer@865] - LOOKING
zoo2_1  | 2017-05-28 13:22:13,386 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@818] - New election. My id =  2, proposed zxid=0x0
zoo1_1  | 2017-05-28 13:22:13,394 [myid:1] - INFO  [zoo1/172.18.0.2:3888:QuorumCnxManager$Listener@746] - Received connection request /172.18.0.3:53380
zoo1_1  | 2017-05-28 13:22:13,400 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@600] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) FOLLOWING (my state)
zoo2_1  | 2017-05-28 13:22:13,403 [myid:2] - INFO  [WorkerSender[myid=2]:QuorumCnxManager@337] - Have smaller server identifier, so dropping the connection: (3, 2)
zoo3_1  | 2017-05-28 13:22:13,403 [myid:3] - INFO  [zoo3/172.18.0.4:3888:QuorumCnxManager$Listener@746] - Received connection request /172.18.0.3:47282
zoo2_1  | 2017-05-28 13:22:13,405 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,406 [myid:2] - INFO  [zoo2/172.18.0.3:3888:QuorumCnxManager$Listener@746] - Received connection request /172.18.0.4:58050
zoo3_1  | 2017-05-28 13:22:13,410 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@600] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LEADING (my state)
zoo3_1  | 2017-05-28 13:22:13,411 [myid:3] - INFO  [WorkerReceiver[myid=3]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LEADING (my state)
zoo1_1  | 2017-05-28 13:22:13,411 [myid:1] - INFO  [WorkerReceiver[myid=1]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) FOLLOWING (my state)
zoo2_1  | 2017-05-28 13:22:13,406 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), FOLLOWING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,416 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,417 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 2 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,417 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,418 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), FOLLOWING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,419 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LEADING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo2_1  | 2017-05-28 13:22:13,420 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@600] - Notification: 1 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LEADING (n.state), 3 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
zoo3_1  | 2017-05-28 13:22:13,438 [myid:3] - INFO  [LearnerHandler-/172.18.0.2:49628:LearnerHandler@401] - Synchronizing with Follower sid: 1 maxCommittedLog=0x0 minCommittedLog=0x0 peerLastZxid=0x0
zoo3_1  | 2017-05-28 13:22:13,438 [myid:3] - INFO  [LearnerHandler-/172.18.0.2:49628:LearnerHandler@410] - leader and follower are in sync, zxid=0x0
zoo3_1  | 2017-05-28 13:22:13,438 [myid:3] - INFO  [LearnerHandler-/172.18.0.2:49628:LearnerHandler@475] - Sending DIFF
zoo1_1  | 2017-05-28 13:22:13,440 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@332] - Getting a diff from the leader 0x0
zoo3_1  | 2017-05-28 13:22:13,494 [myid:3] - INFO  [LearnerHandler-/172.18.0.2:49628:LearnerHandler@535] - Received NEWLEADER-ACK message from 1
zoo3_1  | 2017-05-28 13:22:13,494 [myid:3] - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Leader@961] - Have quorum of supporters, sids: [ 1,3 ]; starting up and setting last processed zxid: 0x100000000
zoo2_1  | 2017-05-28 13:22:13,621 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:QuorumPeer@935] - FOLLOWING
zoo2_1  | 2017-05-28 13:22:13,626 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Learner@86] - TCP NoDelay set to: true
zoo2_1  | 2017-05-28 13:22:13,632 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
zoo2_1  | 2017-05-28 13:22:13,632 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:host.name=c434f7b10ea1
zoo2_1  | 2017-05-28 13:22:13,632 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.version=1.8.0_121
zoo2_1  | 2017-05-28 13:22:13,633 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.vendor=Oracle Corporation
zoo2_1  | 2017-05-28 13:22:13,633 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.home=/usr/lib/jvm/java-1.8-openjdk/jre
zoo2_1  | 2017-05-28 13:22:13,633 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.class.path=/zookeeper-3.4.10/bin/../build/classes:/zookeeper-3.4.10/bin/../build/lib/*.jar:/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/conf:
zoo2_1  | 2017-05-28 13:22:13,634 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
zoo2_1  | 2017-05-28 13:22:13,634 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.io.tmpdir=/tmp
zoo2_1  | 2017-05-28 13:22:13,634 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:java.compiler=<NA>
zoo2_1  | 2017-05-28 13:22:13,635 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.name=Linux
zoo2_1  | 2017-05-28 13:22:13,635 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.arch=amd64
zoo2_1  | 2017-05-28 13:22:13,635 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:os.version=4.9.27-moby
zoo2_1  | 2017-05-28 13:22:13,636 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.name=zookeeper
zoo2_1  | 2017-05-28 13:22:13,636 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.home=/home/zookeeper
zoo2_1  | 2017-05-28 13:22:13,636 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Environment@100] - Server environment:user.dir=/zookeeper-3.4.10
zoo2_1  | 2017-05-28 13:22:13,639 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@173] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /datalog/version-2 snapdir /data/version-2
zoo2_1  | 2017-05-28 13:22:13,640 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Follower@64] - FOLLOWING - LEADER ELECTION TOOK - 254
zoo2_1  | 2017-05-28 13:22:13,642 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@167] - Resolved hostname: zoo3 to address: zoo3/172.18.0.4
zoo3_1  | 2017-05-28 13:22:13,647 [myid:3] - INFO  [LearnerHandler-/172.18.0.3:60050:LearnerHandler@346] - Follower sid: 2 : info : org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer@5195881e
zoo3_1  | 2017-05-28 13:22:13,678 [myid:3] - INFO  [LearnerHandler-/172.18.0.3:60050:LearnerHandler@401] - Synchronizing with Follower sid: 2 maxCommittedLog=0x0 minCommittedLog=0x0 peerLastZxid=0x0
zoo3_1  | 2017-05-28 13:22:13,678 [myid:3] - INFO  [LearnerHandler-/172.18.0.3:60050:LearnerHandler@475] - Sending SNAP
zoo3_1  | 2017-05-28 13:22:13,678 [myid:3] - INFO  [LearnerHandler-/172.18.0.3:60050:LearnerHandler@499] - Sending snapshot last zxid of peer is 0x0  zxid of leader is 0x100000000sent zxid of db as 0x100000000
zoo2_1  | 2017-05-28 13:22:13,679 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Learner@336] - Getting a snapshot from leader
zoo2_1  | 2017-05-28 13:22:13,685 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:FileTxnSnapLog@248] - Snapshotting: 0x100000000 to /data/version-2/snapshot.100000000
zoo3_1  | 2017-05-28 13:22:13,715 [myid:3] - INFO  [LearnerHandler-/172.18.0.3:60050:LearnerHandler@535] - Received NEWLEADER-ACK message from 2

But it retries and then cluster works fine.

@bluepuma77
How exactly are you strating your containers? Is this happens in paraller?
Are you sure the hosts can talk to each other using required ports (2181, 2888, 3888)?

from zookeeper-docker.

realcbb avatar realcbb commented on August 21, 2024

+1

from zookeeper-docker.

warplabsio avatar warplabsio commented on August 21, 2024

Was there any resolution to this? I'm having the same issue starting up using docker swarm (docker stack deploy actually).

from zookeeper-docker.

realcbb avatar realcbb commented on August 21, 2024

I'm having the same issue starting up using docker swarm too. It trys and always trys.
If edit "server.x=zoox:2888:3888 other servers...", it works fine.
Perhaps because of listening on warm VIP?

from zookeeper-docker.

warplabsio avatar warplabsio commented on August 21, 2024

@realcbb do you have a sample docker-compose.yml file you could share? That change didn't seem to help me but i certainly could have some other mistake

from zookeeper-docker.

realcbb avatar realcbb commented on August 21, 2024

@bluepuma77 Why close this issure?
@31z4 please have a look at this. I don't know whether my solution is correct or not.

from zookeeper-docker.

warplabsio avatar warplabsio commented on August 21, 2024

Thanks @realcbb, I misread your original answer and using "0.0.0.0" for the server hostname does indeed work. I'm going to try to dive in and try to understand why it works.

from zookeeper-docker.

holys avatar holys commented on August 21, 2024

@warplabsio Did you figure out why it works with 0.0.0.0 ?

from zookeeper-docker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.