CentOS 에서 ZooKeeper 단일 모드,클 러 스 터 모드 설치

8143 단어 zookeepercentos
본 논문 의 환경 은 다음 과 같다.운영 체제:CentOS 6 32 비트 ZooKeeper 버 전:3.4.8
0.환경 수요
Zookeeper 는 JDK 1.6 이상 버 전의 Java 환경 이 필요 합 니 다.참고 할 수 있 습 니 다.CentOS 6 은 rpm 방식 으로 JDK 8 을 설치 합 니 다.
1.패키지 다운로드
ZooKeeper 홈 페이지http://zookeeper.apache.org/에서 패 키 지 를 다운로드 합 니 다.예 를 들 어:
wget "http://apache.opencas.org/zookeeper/stable/zookeeper-3.4.8.tar.gz"
tar -xzvf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /opt

2.단기 모드
2.1 프로필 수정
cd /opt/zookeeper-3.4.8/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg

Zookeeper 는 기본 설정 파일 을 제공 합 니 다.zoo.cfg 로 복사 한 후 데이터 저장 경 로 를 수정 해 야 합 니 다.
dataDir=/opt/zookeeper-3.4.8/data

2.2 Zookeeper 실행
cd /opt/zookeeper-3.4.8/bin/
./zkServer.sh start

실행 중 오류 가 없 으 면 Zookeeper 가 시작 되 었 음 을 설명 합 니 다.앞으로 조작 이 편리 하도록 Zookeeper/bin 을 path 에 추가 할 수 있 습 니 다.
vi /etc/profile

끝 에 추가:
ZOOKEEPER_HOME=/opt/zookeeper-3.4.8
PATH=$PATH:$ZOOKEEPER_HOME/bin

설정 업데이트:
source /etc/profile

3.클 러 스 터 모드
단기 모델 은 매우 편리 하고 장면 을 개발 하고 테스트 하기에 적합 하지만 생산 환경 에서 하나의 클 러 스 터 모델 을 운영 해 야 한다.클 러 스 터 모드 는 적어도 3 개의 노드 가 있어 야 하고 홀수 노드 를 강력 히 권장 하 며 각 노드 는 똑 같은 설정 파일 이 있어 야 합 니 다.
3.1 프로필 수정
cd /opt/zookeeper-3.4.8/conf/
vi zoo.cfg

열기 후 다음 으로 변경:
tickTime=2000
dataDir=/opt/zookeeper-3.4.8/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

server 뒤에 있 는 숫자 는 이 노드 의 레이 블 입 니 다.이 번 호 를myid라 는 파일 에 기록 해 야 합 니 다.이 파일 은 앞에서 설정 한 dataDir 가 가리 키 는 디 렉 터 리 에 저장 해 야 합 니 다.예 를 들 어 위의 slave 1 노드 에 대응 하 는data/myid파일 에 기록 해 야 합 니 다2.
3.2 폴 더 복사
scp -r /opt/zookeeper-3.4.8 root@slave1:/opt/
scp -r /opt/zookeeper-3.4.8 root@slave2:/opt/

복사 가 완료 되면 해당 서버 의myid파일 을 수정 하 는 것 을 기억 하 세 요.
3.3 서비스 시작
각 노드 에 Zookeeper 서 비 스 를 시작 해 야 합 니 다.각 노드 가 시작 되면zkServer.sh status현재 노드 의 시작 상태 와 leader 노드 인지 follower 노드 인지 볼 수 있 습 니 다.
4.이상 분석
실행 로그 파일 은 기본적으로 프로그램 디 렉 터 리 에 있 습 니 다zookeeper.out.
4.1 연결 불가
2016-04-13 05:18:21,531 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@400] - Cannot open channel to 2 at election address slave1/5.2.8.5:3888
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:354)
        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
        at java.lang.Thread.run(Thread.java:745)

이 이상 이 발생 하면 zookeeper 노드 의 방화벽 이 열 린 상태 이 고 해당 포트(2888,3888)를 열지 않 았 을 수도 있 습 니 다.노드 가 시작 되 지 않 거나 끊 겼 을 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기