2017-11-09 5 views
0

Zookeeper 버전 : 3.5.3-beta를 사용 중이며 표준 3 노드 구성으로 구성했습니다. 이제는 문서에 따라 3 개의 노드를 추가하려고합니다.하지만 새 노드는 옵저버로 동적으로 추가되는 것처럼 보이지 않습니다 (https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html#ch_reconfig_dyn 참조).새 3.5 Zookeeper 노드가 내 클러스터에 동적으로 추가되지 않는 것 같습니다.

먼저 다음 설정을 사용하여 첫 번째 노드를 추가하려고 시도했습니다 : "ZOOKEEPER_IP_LIST=10.144.81.81 10.144.81.83 10.144.81.86 10.144.46.54",하지만 클러스터에 가입하지 않습니다. 새 노드를 시작할 때 다음과 같은 메시지가 나타나며 클러스터의 3 개 노드 만 표시합니다. 심지어 새로운 노드를 포함하기 위해 3 개의 초기 노드를 다시 시작하려고했지만 여전히 이전 구성을 반영했습니다.

clientPort=2181 
secureClientPort=-1 
dataDir=/dbpath/data/version-2 
dataDirSize=134254305 
dataLogDir=/dbpath/data/version-2 
dataLogSize=134254305 
tickTime=2000 
maxClientCnxns=30 
minSessionTimeout=4000 
maxSessionTimeout=40000 
serverId=3 
initLimit=60 
syncLimit=5 
electionAlg=3 
electionPort=3888 
quorumPort=2888 
peerType=0 
membership: 
server.0=10.144.81.81:2888:3888:participant 
server.1=10.144.81.83:2888:3888:participant 
server.2=10.144.81.86:2888:3888:participant 

그게 내가 위의 노력 구성이 REST 인터페이스의 결과와 일치하는지 먼저 리더에 zkCli.sh 명령을 사용하기로 결정 작동하지 않았다

, 그것은했다.

$ sudo bin/zkCli.sh -server 10.144.81.83:2181 config 
... 
2017-11-09 12:13:38,172 [myid:10.144.81.83:2181] - INFO [main-SendThread(10.144.81.83:2181):[email protected]] - Session establishment complete on server 10.144.81.83/10.144.81.83:2181, sessionid = 0x100301c01db000a, negotiated timeout = 30000 

WATCHER:: 

WatchedEvent state:SyncConnected type:None path:null 
server.0=10.144.81.81:2888:3888:participant 
server.1=10.144.81.83:2888:3888:participant 
server.2=10.144.81.86:2888:3888:participant 
version=100000000 

나는 다음 다시 구성하고 하나 개의 새로운 노드를 추가 zkCli.sh을 사용하려고하지만, 내가 ACL을 구성하지 않았거나 내가 그 아는 모든 인증이 발생할 수있어 혼란 인 인증 문제를 발생 이 오류.

$ sudo bin/zkCli.sh -server 10.144.81.83:2181 reconfig -file ../newconfig.cfg.dynamic 
/usr/bin/java 
Connecting to 10.144.81.83:2181 
2017-11-09 12:03:32,729 [myid:] - INFO [main:[email protected]] - Client environment:zookeeper.version=3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60, built on 04/03/2017 16:19 GMT 
2017-11-09 12:03:32,735 [myid:] - INFO [main:[email protected]] - Client environment:host.name=DockerNode-master-cloudeng-20170925-1652-Jy1.localdomain 
2017-11-09 12:03:32,739 [myid:] - INFO [main:[email protected]] - Client environment:java.version=1.7.0 
2017-11-09 12:03:32,739 [myid:] - INFO [main:[email protected]] - Client environment:java.vendor=IBM Corporation 
2017-11-09 12:03:32,739 [myid:] - INFO [main:[email protected]] - Client environment:java.home=/opt/ibm/ibm-java-x86_64-70/jre 
2017-11-09 12:03:32,739 [myid:] - INFO [main:[email protected]] - Client environment:java.class.path=/home/ibmadmin/zookeeper-3.5.3-beta/bin/../build/classes:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../build/lib/*.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/slf4j-log4j12-1.7.5.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/slf4j-api-1.7.5.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/netty-3.10.5.Final.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/log4j-1.2.17.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jline-2.11.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-util-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-servlet-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-server-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-security-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-io-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jetty-http-9.2.18.v20160721.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/javax.servlet-api-3.1.0.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jackson-mapper-asl-1.9.11.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/jackson-core-asl-1.9.11.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../lib/commons-cli-1.2.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../zookeeper-3.5.3-beta.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../src/java/lib/*.jar:/home/ibmadmin/zookeeper-3.5.3-beta/bin/../conf: 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:java.library.path=/opt/ibm/ibm-java-x86_64-70/jre/lib/amd64/compressedrefs:/opt/ibm/ibm-java-x86_64-70/jre/lib/amd64:/usr/lib64:/usr/lib 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:java.io.tmpdir=/tmp 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:java.compiler=j9jit26 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:os.name=Linux 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:os.arch=amd64 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:os.version=4.4.0-89-generic 
2017-11-09 12:03:32,740 [myid:] - INFO [main:[email protected]] - Client environment:user.name=root 
2017-11-09 12:03:32,741 [myid:] - INFO [main:[email protected]] - Client environment:user.home=/root 
2017-11-09 12:03:32,741 [myid:] - INFO [main:[email protected]] - Client environment:user.dir=/home/ibmadmin/zookeeper-3.5.3-beta 
2017-11-09 12:03:32,743 [myid:] - INFO [main:[email protected]] - Client environment:os.memory.free=1MB 
2017-11-09 12:03:32,744 [myid:] - INFO [main:[email protected]] - Client environment:os.memory.max=256MB 
2017-11-09 12:03:32,744 [myid:] - INFO [main:[email protected]] - Client environment:os.memory.total=4MB 
2017-11-09 12:03:32,749 [myid:] - INFO [main:[email protected]] - Initiating client connection, connectString=10.144.81.83:2181 sessionTimeout=30000 [email protected] 
2017-11-09 12:03:32,765 [myid:] - INFO [main:[email protected]] - jute.maxbuffer value is 4194304 Bytes 
2017-11-09 12:03:32,785 [myid:10.144.81.83:2181] - INFO [main-SendThread(10.144.81.83:2181):[email protected]] - Opening socket connection to server 10.144.81.83/10.144.81.83:2181. Will not attempt to authenticate using SASL (unknown error) 
2017-11-09 12:03:32,802 [myid:10.144.81.83:2181] - INFO [main-SendThread(10.144.81.83:2181):[email protected]] - Socket connection established, initiating session, client: /10.144.81.83:59114, server: 10.144.81.83/10.144.81.83:2181 
2017-11-09 12:03:32,812 [myid:10.144.81.83:2181] - INFO [main-SendThread(10.144.81.83:2181):[email protected]] - Session establishment complete on server 10.144.81.83/10.144.81.83:2181, sessionid = 0x100301c01db0008, negotiated timeout = 30000 

WATCHER:: 

WatchedEvent state:SyncConnected type:None path:null 
Authentication is not valid : 

$ cat ../newconfig.cfg.dynamic 
server.0=10.144.81.81:2888:3888:participant 
server.1=10.144.81.83:2888:3888:participant 
server.2=10.144.81.86:2888:3888:participant 
server.3=10.144.46.54:2888:3888:observer 

는 난 그냥 특정 노드 구성을 변경하지 않고 새로운 토폴로지 변경을 지정할 수, 하나 바르게 또는 잘못, 문서로 인상했다. 을 선호하지만 zkCli를 사용하지 않기 때문에 배포 프로세스가 복잡해지기 때문에 사용하지 않으면됩니다.

답변

1

새로운 관찰자는 사육사가 설정에 대한 정보를 유지하는 경로가 허용되지 않습니다. 처음에는 모든 노드는 정적 설정에 자신을 추가하지만 경로에 권한이 없기 때문에 동적 새로운 노드가 허용되지 않습니다 (/config)

당신이 JVM 옵션으로 노드를 다시 시도 할 수 있습니다 :

-Dzookeeper.skipACL=true 

또는 당신이 될 수 있습니다 수퍼 유저 :

$ export ZK_CLASSPATH=/etc/zookeeper/conf/:/usr/hdp/current/zookeeper-server/lib/*:/usr/hdp/current/zookeeper-server/* 
$ java -cp $ZK_CLASSPATH org.apache.zookeeper.server.auth.DigestAuthenticationProvider super:super123 

출력 :

super:super123->super:UdxDQl4f9v5oITwcAsO9bmWgHSI= 
,536,

다음 루트로 :

$ export SERVER_JVMFLAGS=-Dzookeeper.DigestAuthenticationProvider.superDigest=super:UdxDQl4f9v5oITwcAsO9bmWgHSI= 
$ bin/zkCli.sh -server 10.144.81.83:2181 reconfig -file ../newconfig.cfg.dynamic 

희망이 도움이 되길 바랍니다. 여기

더 많은 정보는 : https://community.hortonworks.com/articles/29900/zookeeper-using-superdigest-to-gain-full-access-to.html

+0

가 실제로 시도'''-Dzookeeper.skipACL = true''' 플러스뿐만 아니라 사람들을 사용하지 않도록 false로 다른 SASL 설정의 무리를 강요, 아무 일 없습니다. 작동은 새로운 동적 구성 파일을 수동으로 생성 한 다음 메인 "''zoo.cfg'''가이를 가리키고 서비스를 다시 시작하도록 업데이트했습니다. 그러나 IMHO는 이것이 동적 구성의 전체 개념에 완전히 위배되는 것이라고 생각했습니다. 이 시점에서 나는 이것이 모두 어떻게 작동해야하는지 매우 혼란스럽고, 나는 문서화가 그것을 상세하게 설명하기에 충분히 상세하지 않다는 것을 인정해야만한다. –

+0

사육사가 상태 및 정족수를 유지하는 방법과 관련이있을 수 있습니다. 때때로 처음부터 완전히 시작해야합니다. – Rico