zookeeper 군집 을 만 드 는 데 발생 하 는 문 제 를 기억 하 세 요.

6566 단어 빅 데이터
zookeeper 군집 을 만 드 는 과정 은 여기 서 말 하지 않 겠 습 니 다. 주로 구축 후 시작 하 는 문제 에 대해 이야기 합 니 다.
여기 에는 네 대의 기계 가 있 습 니 다. 세 대 를 가지 고 zookeeper 군집 을 만 들 려 고 합 니 다. 왜 세 대 만 가 져 가 는 지 에 대해 서 는 zookeeper 가 단수 (구체 적 인 원인 은 스스로 자 료 를 찾 으 세 요) 를 더 좋아 하기 때 문 입 니 다.
세 대의 ip 와 hostname 은:
10.131.14.138 slave1

10.131.14.139 slave2

10.131.14.140 slave3

zookeeper 프로필:
zookeeper/conf/zoo.cfg

zoo. cfg 는 처음에 zoosample. cfg, copy 1 부 필요:
cp zoo_sample.cfg zoo.cfg

zoo. cfg 내용 은:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.0=slave1:2888:3888
server.1=slave2:2888:3888
server.2=slave3:2888:3888

문제점 을 발견 하 다
시작 후 프로 세 스 보기:
[root@slave1 data]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@slave1 data]# jps
14692 ResourceManager
20221 Jps
14399 NameNode

zookeeper 프로 세 스 가 없습니다. 로그 파일 zookeeper. out 을 보고 표시 합 니 다. 
ERROR [main:QuorumPeerMain@88] - Invalid config, exiting abnormally

....

Caused by: java.lang.IllegalArgumentException: /user/local/zookeeper/data/myid file is missing

해결 방법:
각 노드 의 / user / local / zookeeper / data / 디 렉 터 리 에 my id 파일 을 만 듭 니 다.
시작 후에 도 마찬가지 입 니 다. 프로 세 스 가 없습니다. 로그 파일 표시 보기:
ERROR [main:QuorumPeerMain@88] - Invalid config, exiting abnormally
...

Caused by: java.lang.IllegalArgumentException: serverid null is not a number

해결 방법:
각 노드 의 my id 파일 에 숫자 를 임의로 추가 합 니 다:
slave 1 추가 1
slave 2 추가 2
slave 3 추가 3
결국 slave 1 과 slave 2 가 시작 되 었 습 니 다. slave 3 가 시작 되 지 않 았 습 니 다. 로 그 를 보 세 요.
2019-03-08 18:09:35,596 [myid:] - INFO  [main:QuorumPeerConfig@136] - Reading configuration from: /usr/local/zookeeper/bin/../conf/zoo.cfg
2019-03-08 18:09:35,609 [myid:] - INFO  [main:QuorumPeer$QuorumServer@184] - Resolved hostname: slave2 to address: slave2/10.131.14.139
2019-03-08 18:09:35,609 [myid:] - INFO  [main:QuorumPeer$QuorumServer@184] - Resolved hostname: slave1 to address: slave1/10.131.14.138
2019-03-08 18:09:35,610 [myid:] - INFO  [main:QuorumPeer$QuorumServer@184] - Resolved hostname: slave3 to address: slave3/10.131.14.140
2019-03-08 18:09:35,610 [myid:] - INFO  [main:QuorumPeerConfig@398] - Defaulting to majority quorums
2019-03-08 18:09:35,612 [myid:3] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2019-03-08 18:09:35,612 [myid:3] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2019-03-08 18:09:35,613 [myid:3] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2019-03-08 18:09:35,620 [myid:3] - INFO  [main:QuorumPeerMain@130] - Starting quorum peer
2019-03-08 18:09:35,626 [myid:3] - INFO  [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2019-03-08 18:09:35,631 [myid:3] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2019-03-08 18:09:35,638 [myid:3] - INFO  [main:QuorumPeer@1158] - tickTime set to 2000
2019-03-08 18:09:35,638 [myid:3] - INFO  [main:QuorumPeer@1204] - initLimit set to 10
2019-03-08 18:09:35,638 [myid:3] - INFO  [main:QuorumPeer@1178] - minSessionTimeout set to -1
2019-03-08 18:09:35,639 [myid:3] - INFO  [main:QuorumPeer@1189] - maxSessionTimeout set to -1
2019-03-08 18:09:35,644 [myid:3] - ERROR [main:QuorumPeer@293] - Setting LearnerType to PARTICIPANT but 3 not in QuorumPeers.
2019-03-08 18:09:35,645 [myid:3] - INFO  [main:QuorumPeer@1467] - QuorumPeer communication is not secured!
2019-03-08 18:09:35,645 [myid:3] - INFO  [main:QuorumPeer@1496] - quorum.cnxn.threads.size set to 20
2019-03-08 18:09:35,647 [myid:3] - INFO  [main:QuorumPeer@668] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2019-03-08 18:09:35,677 [myid:3] - INFO  [main:QuorumPeer@683] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2019-03-08 18:09:35,703 [myid:3] - ERROR [main:QuorumPeerMain@92] - Unexpected exception, exiting abnormally
java.lang.RuntimeException: My id 3 not in the peer list
        at org.apache.zookeeper.server.quorum.QuorumPeer.startLeaderElection(QuorumPeer.java:718)
        at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:637)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:170)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:114)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)

제시 하 다. My id 3 not in the peer list
해결 방법
my id 는 마지막 으로 zoo. cfg 에 있 는 서버 뒤의 숫자 에 따라 추가 합 니 다. 그렇지 않 으 면 시작 에 성공 하지 못 합 니 다. 물론 slave 3 의 my id 를 0 으로 바 꿔 도 시작 에 성공 할 수 있 지만 관리 하기 가 쉽 지 않 습 니 다.
그래서 여기 서 slave 1, slave 2, slave 3 의 my id 를 바 꿉 니 다.
slave 1 추가 0
slave 2 추가 1
slave 3 추가 2
시작 후 jps 로 프로 세 스 보기:
slave1
[root@slave1 data]# jps
20236 QuorumPeerMain
20317 Jps

slave2
[root@slave2 data]# jps
20202 QuorumPeerMain
20256 Jps

slave3
[root@slave3 data]# jps
18302 QuorumPeerMain
18348 Jps

시동 걸 었 어.
마지막 으로 클 러 스 터 의 일부 기계 가 zookeeper 를 성공 적 으로 작 동 하지 못 하 는 이 유 는 시간 이 일치 하지 않 기 때 문 일 수 있 습 니 다. 많은 방법 을 찾 아 보 았 을 때 시간 을 동기 화 해 보 세 요.center os 7 은 yum install ntp 설치 시간 동기 화 도 구 를 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기