一、如何配置一个zookeeper机器?
1,安装JDK
2,安装zookeeper
3,配置zookeeper配置文件 :
(1)安装目录路径下conf/zoo.cfg文件配置:
tickTime:zookeeper中的一个时间单元,zookeeper所有时间都是以这个时间单元为单位的。
initTime:当zookeeper集群中follower启动时,需要去同步leader中的数据,leader允许follower在innitTime时间内完成同步。
syncLimit:运行过程中,leader负责跟zk集群进行通讯,leader检测机器是否处于存活状态,发出心跳包在syncLimit秒后仍未收到返回,则认为follower挂掉了。
dataDir:快照目录和事物日志的存储路径。
clientPort:客户端访问服务端的端口号,一般来说设为2181。
集群机器配置:
server1=ip1:2888:3888;
server2=ip2:2888:3888;
server3=ip3:2888:3888;
上述配置标示集群中又三台zookeeper机器,应为集群中每个机器都需要感知其他机器的存在,在dataDir所指目录下有一个myId文件存放一个id,即server1中的1,所有机器的myId中的数值不能重复,且取值范围为1-255。上面配置文件中出现了三个端口分别是2181、2888、3888,2181是客户端访问服务端的端口号,2888是follow连接leader的端口号,3888是选举leader的端口号。
上述基本就完成了zookeeper的安装与部署。
二、zookeeper常用命令
1、启动/停止/zookeeper:sh bin/zkServer.sh (start/stop)
2、进入zookeeper树状环境:sh bin/zkCli.sh
3、创建新文件:create /a b (a为创建文件路径,b为创建文件初始值)
4、设置文件值:set /a b (a为文件路径,b为文件修改value)
5、删除文件:delete /a
6、获取文件值:get /a
7、ls 查看节点所包含的内容 ,ls2查看节点包含内容和更新次数等信息
8、连接:telnet 127.0.0.1 2181 后执行(四字命令)
stat:查看zookeeper状态和客户端连接信息
kill:关闭server
conf:输入zk配置信息
cons:输出连接zookeeper的所有客户端连接信息
envi:输出环境变量,包括系统和Java环境变量。
三、zookeeper集群
zookeeper集群有个重要的特性,即只要集群中超过一半的机器可用,则集群整体对外是可用的。一半来说,集群中配置的机器数量一半为基数个数,当只有两个zookeeper机器时,挂掉一个zookeeper则不满足超过一半机器可用,如果此时有三台机器挂一台的情况下集群还是可用的。
四、zookeeper权限配置
首先zookeeper对权限的配置是节点级别的,且不继承,即子节点不继承父节点的权限。
zookeeper提供了四中权限的认证:
1、world:只有一个单一的id,anyone,标示任何人都可以访问。
2、auth:标示通过验证的用户均可以访问
3、digest:通过使用(用户名:密码)生成md5加密字符串id,权限认真直接通过发送(用户名:密码)形式验证
4、ip:使用客户端主机ip作为ACL标识,只有满足此ip才能查看数据。
一般来说用的比较多的是digest方式;
新建节点例子如下:
admin例子:admin:1234
read例子:guest:1234
访问节点数据例子如下
这样对Zookeeper上的节点数据设置多个用户,用于不同的权限操作。