一、单机模式的配置
1.1、下载地址: http://www.apache.org/dyn/closer.cgi/zookeeper/
他会根据你的ip来推荐一个具体的站点: 我这边推荐的是 http://mirrors.noc.im/apache/zookeeper/
1.2、 下载后上传到服务器的指定目录下:
我这边是在app的目录下新建的zookeeper,下载的zookeeper-3.5.1-alpha.tar.gz
1.3、解压:tar -zxvf zookeeper-3.5.1.tar.gz
1.4、配置文件:在conf目录下 cp zoo_sample.cfg zoo.cfg,创建配置文件zoo.cfg。 修改dir log的配置在这个目录下的log4j.properties
tickTime=2000 dataDir=/app/zookeeper/zooData/tmpData 数据的持久化到这个目录下,以及集群的配置也是需要的 clientPort=2181 initLimit=10 tickTime=2000 |
export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH |
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
最后显示connected表示OK了, 就可以在里面敲命令了 比如 ls / 查看根目录下的文件结构
二 集群模式配置:
集群下的:成员一般建议是2N+1的形式,1为leader,N个再跑,N个备份,后续在探讨
2.1 在之前的单机模式下修改:
选取了三台服务器来配置 ,主要是下面加入的server的列表,一定要注意server的序号,这个序号要和dataDir的
clientPort=2181 dataDir=/app/was7/zookeeper/server1/data/zookeeper syncLimit=5 initLimit=10 tickTime=2000 server.1=10.182.211.250:2888:3888 server.2=10.182.161.214:2888:3888 server.3=10.182.243.110:2888:3888 |
可以vi myid 打开文件输入 1 然后点esc键,再输入:wq 来退出,也可以 touch myid 然后echo >> 1 myid
这是要保证你的server后跟的后缀 1 2 3 对应的ip要和对应的myid里面的数字对应,
比如: 250的是server1 所以他下面的myid 里面的内容是 1 如果是214的服务器那就是 2 就这样
2.3
配置其他两台服务器
注意一点: 10.182.243.110:2888:3888 这个配置的时候后面一定要没有空格等字符,否则会启动报错
2.4 分别启动服务,第一台启动的时候会报错,因为他找不到集群下的服务,等到所有的都起来了,就不报错了
然后启动后,conf的配置会发生变化:
他把集群的配置单独放到了一个文件中,这可能是3.5以后的吧,但是只是配置完生效后变成这样子的,配置还是在zoo.cnf中写的
三 遇到的问题:
Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: 10.182.243.110:3888
at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.<init>(QuorumPeer.java:221)
at org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(QuorumMaj.java:89)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.createQuorumVerifier(QuorumPeerConfig.java:498)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseDynamicConfig(QuorumPeerConfig.java:531)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:504)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:157)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:110)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)
这个就是当时copy的时候10.182.243.110:3888 后面带了空格,所以他找不到这个端口,so 一定要注意linux下的空格
只要把空格去掉就OK了
export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH |
来源:CSDN
作者:bwy8003
链接:https://blog.csdn.net/bwy8003/article/details/50722513