2017-11-09 2 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 

私はその後、1つの新しいノードを再設定し、追加する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

何が起こっているかは、新しいオブザーバーには、zookeeperが設定に関する情報を保持するパスが許可されていないということです。最初は、すべてのノードは、静的な設定で自分自身を追加しますが、それはパスへのアクセス権を持っていないので、任意のダイナミックな新しいノードが許可されていません(/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= 

次にルートとして:

$ 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

関連する問題