Zookeeper 安装及配置(Mac)
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Zookeeper 的安装
|
|
首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录。“bin目录”中存放有运行脚本;“conf目录”中存放有配置文件;“lib目录”中存放有运行所需要第三方库。
解压文件:
|
|
Zookeeper 的配置
伪分布式部署
- 在“conf”目录下,新建一个名为“zoo.cfg”的文件,准备部署3个节点,其中内容如下:
|
|
参数说明:
|
|
- 在dataDir目录下创建myid文件,写入该节点的编号 1 。这样一个节点就配置完成了。
- 复制 zookeeper-3.4.8-1 到 zookeeper-3.4.8-2和 zookeeper-3.4.8-3,要修改的地方是 zoo.cfg里的 dataDir,dataLogDir,clientPort。还有需要在自己的data目录下新建myid文件,写入自己的编号。
myid | Data目录 | Client | Server | Leader | 配置文件 |
---|---|---|---|---|---|
1 | /zookeeper-3.4.8_1/data | 2181 | 2888 | 3888 | z1.cfg |
2 | /zookeeper-3.4.8_2/data | 2182 | 2889 | 3889 | z2.cfg |
3 | /zookeeper-3.4.8_3/data | 2183 | 2890 | 3890 | z3.cfg |
- 启动和测试
分别进入三个节点的bin目录,启动zookeeper,运行./zkServer.sh start。
注:前边节点启动的时候,会抛出一些错误,可忽略。这是因为另外的节点没启动,导致的通信异常。
|
|
可以用自带的基于telnet的客户端测试一下,看看是否启动成功。随便进入一个节点的bin目录,比如节点0
./zkCli.sh -server 127.0.0.1:2180,随便输入一个字符,他会跳出help界面。说明服务端启动成功。
|
|
- Zookeeper常用命令
- ZooKeeper服务端命令:
- 启动ZK服务: bin/zkServer.sh start
- 查看ZK服务状态: bin/zkServer.sh status
- 停止ZK服务: bin/zkServer.sh stop
- 重启ZK服务: bin/zkServer.sh restart
- zk客户端命令
- 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
- 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
- 创建文件,并设置初始内容: create /zk “test” 创建一个新的 znode节点“ zk ”以及与它关联的字符
- 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
- 修改文件内容: set /zk “zkbak” 对 zk 所关联的字符串进行设置
- 删除文件: delete /zk 将刚才创建的 znode 删除
- 退出客户端: quit
- 帮助命令: help
- ZooKeeper服务端命令:
总结
zookeeper仅仅是维护了一个分布式的树形目录。如下图。它通过fast paxos算法保证多个节点上znode的数据一致性。一套zookeeper可以同时给多个应用程序使用,只需要隔离好各自的path~。在生产环境中,多个程序,比如hadoop,hbase,strom共用一套zookeeper也是常事。结构如下图。