2017-01-25 3 views
0

나는 1 명의 후광, 4 명의 수퍼바이저 및 2 개의 사육사 노드가있는 스톰 클러스터를 가지고 있습니다. 내 Storm.yaml는 다음과 같습니다 :폭풍 - 감독관이 발사되었지만 후광에 연결되지 않았습니다.

storm.zookeeper.servers: 
    - "storage14" 
    - "storage15" 

nimbus.seeds: ["storage01"] 

#storm.local.hostname: "storage05" 
supervisor.supervisors: 
    - "storage02" 
    - "storage03" 
    - "storage04" 
    - "storage05" 

storm.local.dir: "/tmp/storm" 

worker.childopts: "-Xmx%HEAP-MEM%m -XX:+PrintGCDetails -Xloggc:artifacts/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump" 

이 storm.yaml 파일은 후광과 감독 모두 사용됩니다. Nimbus가 시작되면 위에 표시된대로 storm.local.hostname이 주석 처리됩니다.

그러나 각 노드에서 수퍼바이저를 시작할 때 storm.local.hostname의 주석을 제거하고 수퍼바이저가 시작될 노드의 호스트 이름으로 설정합니다.

storm.local.hostname: "storage05" 

문제는 Nimubs가 성공적으로 시작되고, 나는 폭풍에 그것을 볼 수 있지만입니다 : 예를 들어 내가 storage05에 관리자를 실행 한 경우 storm.yaml 파일은 다음과 같은 추가 구성 PARAM있을 것입니다 UI, 일부 감독자 님이 Nimbus에 연결할 수없는 것 같습니다. 예를 들어 감독자을 시작한 4 개의 노드의 경우, 폭풍 UI는 종종 2 개만 연결된 것으로 표시합니다. 그러나이 노드에 ssh을 입력하고 jps을 실행하면 관리자 인 프로세스가 이러한 모든 노드에서 실행되고 있음을 알 수 있습니다.

연결을 끝내는 노드의 수퍼바이저는 항상 같지 않으므로 특정 노드에는 문제가 없습니다.

주의해야 할 또 다른 사항은 연결된 모든 노드에서 토폴로지를 실행하려고하면 클러스터에 등록되지 않고 UI에서 해당 토폴로지를 볼 수 없다는 것입니다.

이 비정상적인 행동의 원인이 무엇이라고 생각하십니까?

는 UPDATE : nimbus.log의 꼬리 끝은

2017-01-25 00:04:25.216 o.a.s.s.o.a.z.ClientCnxn [WARN] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect 
java.net.ConnectException: Connection refused 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
2017-01-25 00:04:25.317 o.a.s.s.o.a.z.ClientCnxn [INFO] Opening socket connection to server storage15/192.168.140.195:2181. Will not attempt to authenticate using SASL (unknown error) 
2017-01-25 00:04:25.317 o.a.s.s.o.a.z.ClientCnxn [WARN] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect 
java.net.ConnectException: Connection refused 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
2017-01-25 00:04:25.686 o.a.s.s.o.a.z.ClientCnxn [INFO] Opening socket connection to server storage15/192.168.140.195:2181. Will not attempt to authenticate using SASL (unknown error) 
2017-01-25 00:04:25.686 o.a.s.s.o.a.z.ClientCnxn [WARN] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect 
java.net.ConnectException: Connection refused 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
2017-01-25 00:04:25.787 o.a.s.s.o.a.z.ClientCnxn [INFO] Opening socket connection to server storage14/192.168.140.194:2181. Will not attempt to authenticate using SASL (unknown error) 
2017-01-25 00:04:25.787 o.a.s.s.o.a.z.ClientCnxn [WARN] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect 
java.net.ConnectException: Connection refused 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) 
    at org.apache.storm.shade.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
+0

1. 어떤 버전을 사용하십니까? 2. 모든 노드에서 "storage05"에 액세스 할 수 있습니까? 3. "storage05"가 UI에서 '리더'로 인식 되었습니까? 4. Nimbus 로그에 오류 메시지가 있습니까? –

+0

1. 나는 Storm 1.0.1에있다. 2. 그렇다. 나는 모든 노드에서 서로 다른 암호를 적어서 storage05를 포함 할 수있다. 3. 아니요,하지만 Storage05에서 Nimbus를 시작하지 않으므로 그렇게 생각하지 않습니다. Storage01은 Nimbus이고 storage02-05는 수퍼바이저입니다. 하지만 예, storage01은 실제로 UI에서 리더로 인식됩니다. –

+0

죄송합니다. "storage01"이 리더로 인식되면 좋을 것입니다. –

답변

0

귀하의 UPDATE (후광 로그) 당신의 후광이 사육사 클러스터를 연결할 수 없음을 나타냅니다 다음 줄을 가지고있다. Zookeeper 클러스터 (storage14/storage15)가 storage01에서 액세스 할 수 있는지 확인하십시오 (노드에 액세스 할 수있을뿐만 아니라 "telnet storage14 (및/또는 storage15) 2181"을 통해 Zookeeper 서버에 텔넷 연결).

ZK 연결 문제가 해결되지 않으면 관리자를 다시 시작하십시오.

+0

클러스터에서 텔넷을 사용할 수 없습니다. 하지만이 [thread] (http://superuser.com/questions/621870/test-if-a-port-on-a-remote-system-is-reachable-without-telnet)을 살펴보면'nc '는'telnet'의 대안으로 사용될 수 있습니다. 'nc -zv storage14 2181'과'nc -zv storage15 2181' 모두'storage14/15 2181 포트 [tcp/eforward]에 연결 성공했습니다!'그래서 ZK가 Nimbus에서 액세스 할 수 있습니다. –

+0

'echo "ruok"를 실행할 수 있습니까? nc storage14 2181' 또는'echo "ruok"| nc storage15 2181'은'imok'을 반환합니까? 'ruok'를'stat'로 대체하여 사육사 클러스터의 상태를 볼 수 있습니다. –

+0

두 명령 모두 imok를 반환하므로 사육사 노드가 제대로 작동하는 것처럼 보입니다. –