Zookeeper客户端不能启动问题

在尝试使用zookeeper客户端zkCli.sh连接到SLAVE:2181时遇到连接失败的问题,通过检查zoo.cfg配置文件发现clientPort设置错误,原本设置为4081,应更改为2181。修复配置后,客户端成功连接到localhost:2181。

1, 安装完zookeeper后运行客户端:


root@MASTER opt]# zkCli.sh -server SLAVE:2181
Connecting to SLAVE:2181
2016-11-10 11:15:10,274 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2016-11-10 11:15:10,279 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=MASTER
2016-11-10 11:15:10,279 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_111
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.8.0_111/jre
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/root/cluster/opt/zookeeper-3.4.9/bin/../build/classes:/root/cluster/opt/zookeeper-3.4.9/bin/../build/lib/*.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../conf:/usr/java/jdk1.8.0_111/lib
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/opt/STM/ST40R5.1.0/lib:/usr/java/packages/lib/i386:/lib:/usr/lib
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2016-11-10 11:15:10,282 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2016-11-10 11:15:10,283 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=i386
2016-11-10 11:15:10,283 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.11.10-301.fc20.i686+PAE
2016-11-10 11:15:10,283 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2016-11-10 11:15:10,283 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2016-11-10 11:15:10,283 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/root/cluster/opt
2016-11-10 11:15:10,285 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=SLAVE:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@6cdf90
Welcome to ZooKeeper!
2016-11-10 11:15:10,321 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server SLAVE/10.12.2.224:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-11-10 11:15:10,403 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@876] - Socket connection established to SLAVE/10.12.2.224:2181, initiating session
2016-11-10 11:15:10,412 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1158] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect

[zk: SLAVE:2181(CONNECTING) 0] 2016-11-10 11:15:12,234 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server SLAVE/10.12.2.224:2181. Will not attempt to authenticate using SASL (unknown error)
2016-11-10 11:15:12,236 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@876] - Socket connection established to SLAVE/10.12.2.224:2181, initiating session
2016-11-10 11:15:12,239 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1158] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2016-11-10 11:15:13,969 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server SLAVE/10.12.2.224:2181. Will not attempt to authenticate using SASL (unknown error)
2016-11-10 11:15:13,971 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@876] - Socket connection established to SLAVE/10.12.2.224:2181, initiating session
2016-11-10 11:15:13,974 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1158] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
2016-11-10 11:15:15,758 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server SLAVE/10.12.2.224:2181. Will not attempt to authenticate using SASL (unknown error)
2016-11-10 11:15:15,760 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@876] - Socket connection established to SLAVE/10.12.2.224:2181, initiating session
2016-11-10 11:15:15,762 [myid:] - INFO  [main-SendThread(SLAVE:2181):ClientCnxn$SendThread@1158] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect


2, 分析日志, 查看配置问题zoo.cfg, 发现端口设置有问题:


[root@MASTER opt]# cat zookeeper-3.4.9/conf/zoo.cfg 
tickTime=2000    
initLimit=5    
syncLimit=2    
dataDir=/root/cluster/opt/zookeeper-3.4.9/data    
dataLogDir=/root/cluster/opt/zookeeper-3.4.9/logs    
clientPort=4081 
server.0=SLAVE:2888:3888  
server.1=MASTER:2889:3889   


默认端口是4081, 而要求为2181!!

clientPort=2181 


3,重新运行,ok


root@MASTER opt]# zkCli.sh -server localhost:2181
Connecting to localhost:2181
2016-11-10 14:47:48,842 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2016-11-10 14:47:48,845 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=MASTER
2016-11-10 14:47:48,845 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_111
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.8.0_111/jre
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/root/cluster/opt/zookeeper-3.4.9/bin/../build/classes:/root/cluster/opt/zookeeper-3.4.9/bin/../build/lib/*.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/root/cluster/opt/zookeeper-3.4.9/bin/../conf:/usr/java/jdk1.8.0_111/lib
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/opt/STM/ST40R5.1.0/lib:/usr/java/packages/lib/i386:/lib:/usr/lib
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=i386
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.11.10-301.fc20.i686+PAE
2016-11-10 14:47:48,847 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2016-11-10 14:47:48,848 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2016-11-10 14:47:48,848 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/root/cluster/opt
2016-11-10 14:47:48,849 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@6cdf90
Welcome to ZooKeeper!
2016-11-10 14:47:48,869 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-11-10 14:47:48,923 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session
2016-11-10 14:47:48,935 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x1584ce376210007, negotiated timeout = 30000


WATCHER::


WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 

<think>嗯,用户的问题很明确,就是要知道ZooKeeper客户端的具体启动方法。从引用内容来看,用户已经接触过一些基础操作(比如命令行修改客户端前缀),但可能对完整流程还不熟悉。 用户提供的三个引用其实挺有用的:引用[1]展示了命令行启动后的交互操作,引用[2]提到Windows下启动缓慢问题和连接字符串配置,引用[3]则解释了临时节点的概念。不过用户当前只需要启动方法,这些补充知识可以先收纳起来备用。 考虑到用户可能在不同环境操作,我决定分三部分说明: 1. 基础命令行启动是最通用的方式,引用[1]的示例正好用上 2. Java API启动对开发者更实用,引用[2]的Curator框架配置可以直接借鉴 3. 图形界面工具作为补充选项,虽然引用没提但实际很常用 特别要注意引用[2]里提到的两个技术细节:一是建议用主机名代替IP避免解析问题,二是超时设置对稳定性的影响——这些在实际操作中很容易踩坑,必须包含在回答里。另外临时节点(引用[3])的特性虽然不直接影响启动,但在后续会话管理时会涉及,所以放在注意事项里提示。 用户上次问过客户端前缀修改的问题,这次应该是有实操需求,可能正在搭建环境。回答时要突出"开箱即用"的步骤,技术细节另作说明避免干扰主流程。最后的相关问题设置成阶梯式的,从启动延伸到配置优化和常见问题排查,这样用户后续探索会更顺畅。 </think>以下是ZooKeeper客户端的三种常用启动方法及操作步骤: --- ### 一、命令行启动(基础方式) 1. **进入ZooKeeper安装目录** ```bash cd /path/to/zookeeper/bin ``` 2. **启动客户端连接本地服务** ```bash ./zkCli.sh # 默认连接 localhost:2181 ``` **连接远程服务**(如zookeeper101): ```bash ./zkCli.sh -server zookeeper101:2181 ``` 连接成功后提示符变为:`[zk: zookeeper101:2181(CONNECTED) 0]` [^1] --- ### 二、Java API启动(开发者常用) ```java // 使用Curator框架(推荐) CuratorFramework client = CuratorFrameworkFactory.builder() .connectString("zookeeper101:2181") // 明确主机名避免解析问题 [^2] .retryPolicy(new RetryNTimes(3, 1000)) // 重试策略 .connectionTimeoutMs(2000) // 连接超时设置 .build(); client.start(); // 启动客户端 ``` > **关键参数说明**: > - `connectString`:服务端地址(建议用主机名而非IP) > - `connectionTimeoutMs`:解决Windows启动缓慢问题 [^2] --- ### 三、图形化工具启动 1. **ZooInspector**(官方工具) ```bash java -jar zookeeper-dev-ZooInspector.jar ``` 2. **连接配置**: ```txt Host: zookeeper101 Port: 2181 ``` --- ### ️ 注意事项 1. **临时节点特性**: 客户端创建的临时节点(Ephemeral Node)会在会话结束时自动删除,`ephemeralOwner`字段记录绑定的session ID [^3] 2. **连接稳定性**: Windows环境下建议配置`connectionTimeoutMs`参数避免启动卡顿 [^2] 3. **服务端状态**: 启动客户端前需确保ZooKeeper服务已运行(`zkServer.sh status`检查) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值