⑴ Zookeeper在windows下建立伪集群,myid存在,并且内容我设置为1.还是一直报myid is missing
windows 下的路径这么写:D:\Zookeeper\zookeeper-3.3.6-server1\bin\xxx 或者
D:/Zookeeper/zookeeper-3.3.6-server1/bin/xxx
(斜线) 楼主的路径应该是拷贝来的吧,顺便啰嗦一句,不建议在windows下搭建环境…
⑵ zookeeper 四字命令怎么用
zookeeper安装和使用zookeeper的安装基本上可以按照 zookeeperStarted.html 这个页面上的步骤完成安装,这里主要介绍下部署一个集群的步骤,因为这个官方页面似乎讲得并不是非常详细(Running Replicated Zookeeper)。由于手头机器不足,所以在一台机器上部署了3个server,如果你手头也比较紧,也可以这么做。那么我建了3个文件夹,如下server1 server2 server3然后每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下,最后那个是下载过来压缩包的解压文件data dataLog logs zookeeper-3.3.2那么首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3然后进入zookeeper-3.3.2/conf目录,那么如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,这3个文件我们首先要做的就是在这个目录创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示: tickTime=2000initLimit=5syncLimit=2dataDir=xxxx/zookeeper/server1/datadataLogDir=xxx/zookeeper/server1/dataLogclientPort=2181server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2889:3889server.3=127.0.0.1:2890:3890标红的几个配置应该官网讲得很清楚了,只是需要注意的是clientPort这个端口如果你是在1台机器上部署多个server,那么每台机器都要不同的clientPort,比如我server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要区分下。 最后几行唯一需要注意的地方就是 server.X 这个数字就是对应 data/myid中的数字。你在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3就OK了。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。进入zookeeper-3.3.2/bin 目录中,./zkServer.sh start启动一个server,这时会报大量错误看其实没什么关系,因为现在集群只起了1台server,zookeeper服务器端起来会根据zoo.cfg的服务器列表发起选举leader的请求,因为连不上其他机器而报错,那么当我们起第二个zookeeper实例后,leader将会被选出,从而一致性服务开始可以使用,这是因为3台机器只要有2台可用就可以选出leader并且对外提供服务(2n+1台机器,可以容n台机器挂掉)。接下来就可以使用了,我们可以先通过 zookeeper自带的客户端交互程序来简单感受下zookeeper到底做一些什么事情。进入zookeeper-3.3.2/bin(3个server中任意一个)下,./zkCli.sh –server 127.0.0.1:2182,我连的是开着2182端口的机器。那么,首先我们随便打个命令,因为zookeeper不认识,他会给出命令的help,如下图 ls(查看当前节点数据),ls2(查看当前节点数据并能看到更新次数等数据) ,create(创建一个节点) ,get(得到一个节点,包含数据和更新次数等数据),set(修改节点)delete(删除一个节点)通过上述命令实践,我们可以发现,zookeeper使用了一个类似文件系统的树结构,数据可以挂在某个节点上,可以对这个节点进行删改。另外我们还发现,当改动一个节点的时候,集群中活着的机器都会更新到一致的数据。
⑶ 如何使用Zookeeper集群Tomcat
(1)解压为zookeepertar -xf -C /home/myuser/zookeeper/复制zookeeper文件夹3份,分别重名名为zookeeperA,zookeeperB,zookeeperC。 并且创建数据快照以及日志存放文件夹,命名为zooA,zooB,zooC。 (2)编辑对应的zookeeper配置文件,复制zookeeperconf下zoo_sample.cfg为zoo.cfgcd /home/myuser/zookeeperA/confcp zoo_sample.cfg zoo.cfg (3)修改zoo.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/home/myuser/zooA/data# the port at which the clients will connectclientPort=2181# ZooKeeper server and its port no. # ZooKeeper ensemble should know about every other machine in the ensemble # specify server id by creating 'myid' file in the dataDir # use hostname instead of IP address for convenient maintenance server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2988:3988 server.3=127.0.0.1:2088:3088## Be sure to read the maintenance section of the # administrator guide before turning>tickTime:心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值clientPort:服务的监听端口dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。(4)创建myid文件cd /home/myuser/zooA/datasudo sh -c 'echo "1" >> myid' 其他文件夹类似创建myid文件,zookeeperB为2,zookeeperC为3(5)启动zookeepercd /home/myuser/zookeeperA/binsudo sh zkServer.sh start查看zookeeper状态[[email protected] bin]# sh zkServer.sh statusJMX enabled by defaultUsing config: /home/weibo/zookeeperA/bin/../conf/zoo.cfgMode: follower启动OK,依次启动另外两台zookeeper,启动第一台zookeeper后,你可以观察bin下的zookeeper.out可以看到报错,connection refused,没有关系,zookeeper需要等待其他另个节点的加入,全部启动之后就正常了。(6)客户端连接zookeeper[[email protected] bin]# sh zkCli.sh Connecting to localhost:21812013-05-10 15:00:25,363 [myid:] – INFO [main:[email protected]] – Client environment:zookeeper.version=3.4.5-1392090, built>configs:保存上传的配置文件信息clusterstate.json:集群状态jsonaliases:别名jsonlive_node:当solr服务器启动的时候,会注册到这里overseer:保存shard信息overseer_elect:节点选举collections:所有的collection
⑷ 如何查看zookeeper是否启动
你可以查看进程:方法:ps -aux | grep 'zookeeper'系统有返回,说明zookeeper启动。
⑸ zookeeper在配置伪集群模式时,myid文件是什么,什么格式
myid的值是zoo.cfg文件里定抄义的server.A项A的值。Zookeeper启动时会读取这个文件。解决方法如下:
1、首先获取zookeeper安装包,zookeeper包的获取可以直接到Apache的网站获取。
⑹ 如何从虚拟机改zookeeper文件名
然后每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下,最后那个是下载过来压缩包的解压文件那么首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3然后进入zookeeper-3.3.2/conf目录,那么如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,这3个文件我们首先要做的就是在这个目录创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示:
⑺ 如何使用命令查看zookeeper文件内容
zookeeper安装和使用zookeeper的安装基本上可以按照 zookeeperStarted.html 这个页面上的步骤完成安装,这里主要介绍下部署一个集群的步骤,因为这个官方页面似乎讲得并不是非常详细(Running Replicated Zookeeper)。由于手头机器不足,所以在一台机器上部署了3个server,如果你手头也比较紧,也可以这么做。那么我建了3个文件夹,如下server1 server2 server3然后每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下,最后那个是下载过来压缩包的解压文件data dataLog logs zookeeper-3.3.2那么首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3然后进入zookeeper-3.3.2/conf目录,那么如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,这3个文件我们首先要做的就是在这个目录创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示: tickTime=2000initLimit=5syncLimit=2dataDir=xxxx/zookeeper/server1/datadataLogDir=xxx/zookeeper/server1/dataLogclientPort=2181server.1=127.0.0.1:2888:3888server.2=127.0.0.1:2889:3889server.3=127.0.0.1:2890:3890标红的几个配置应该官网讲得很清楚了,只是需要注意的是clientPort这个端口如果你是在1台机器上部署多个server,那么每台机器都要不同的clientPort,比如我server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要区分下。 最后几行唯一需要注意的地方就是 server.X 这个数字就是对应 data/myid中的数字。你在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3就OK了。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。进入zookeeper-3.3.2/bin 目录中,./zkServer.sh start启动一个server,这时会报大量错误?其实没什么关系,因为现在集群只起了1台server,zookeeper服务器端起来会根据zoo.cfg的服务器列表发起选举leader的请求,因为连不上其他机器而报错,那么当我们起第二个zookeeper实例后,leader将会被选出,从而一致性服务开始可以使用,这是因为3台机器只要有2台可用就可以选出leader并且对外提供服务(2n+1台机器,可以容n台机器挂掉)。接下来就可以使用了,我们可以先通过 zookeeper自带的客户端交互程序来简单感受下zookeeper到底做一些什么事情。进入zookeeper-3.3.2/bin(3个server中任意一个)下,./zkCli.sh –server 127.0.0.1:2182,我连的是开着2182端口的机器。那么,首先我们随便打个命令,因为zookeeper不认识,他会给出命令的help,如下图 ls(查看当前节点数据),ls2(查看当前节点数据并能看到更新次数等数据) ,create(创建一个节点) ,get(得到一个节点,包含数据和更新次数等数据),set(修改节点)delete(删除一个节点)通过上述命令实践,我们可以发现,zookeeper使用了一个类似文件系统的树结构,数据可以挂在某个节点上,可以对这个节点进行删改。另外我们还发现,当改动一个节点的时候,集群中活着的机器都会更新到一致的数据。
⑻ 文件配置传送到zookeeper哪里
Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务,实际上Zookeeper还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个Zookeeper实例.Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。集群容灾性:3台机器只要有2台可用就可以选出leader并且对外提供服务(2n+1台机器,可以容n台机器挂掉)。Zookeeper伪分布式环境搭建:1、去Zookeeper官网下载最新版本的Zookeeper.[[email protected] zookeeper-cluster]# pwd/export/search/zookeeper-cluster[[email protected] zookeeper-cluster]# lszookeeper-3.4.6.tar.gz[[email protected] zookeeper-cluster]#[[email protected] zookeeper-cluster]# tar -zxvf zookeeper-3.4.6.tar.gz#创建第一个集群节点[[email protected] zookeeper-cluster]# mv zookeeper-3.4.6 zookeeper-3.4.6-node1[[email protected] zookeeper-cluster]# cd zookeeper-3.4.6-node1[[email protected] zookeeper-3.4.6-node1]# pwd/export/search/zookeeper-cluster/zookeeper-3.4.6-node1#创建数据存放路径[[email protected] zookeeper-3.4.6-node1]# mkdir data[[email protected] zookeeper-3.4.6-node1]# cd ../#创建第二第三个集群节点[[email protected] zookeeper-cluster]# cp zookeeper-3.4.6-node1 zookeeper-3.4.6-node2 -R[[email protected] zookeeper-cluster]# cp zookeeper-3.4.6-node1 zookeeper-3.4.6-node3 -R[[email protected] zookeeper-cluster]# lszookeeper-3.4.6-node1 zookeeper-3.4.6-node2 zookeeper-3.4.6-node3 zookeeper-3.4.6.tar.gz[[email protected] zookeeper-cluster]# cd zookeeper-3.4.6-node1/conf/[[email protected] conf]# lsconfiguration.xsl log4j.properties zoo_sample.cfg#创建zoo.cfg文件[[email protected] conf]# cp zoo_sample.cfg zoo.cfg2、配置zoo.cfg文件:#zookeeper-3.4.6-node1的配置tickTime=2000initLimit=10syncLimit=5clientPort=2181dataDir=/export/search/zookeeper-cluster/zookeeper-3.4.6-node1/dataserver.1=localhost:2887:3887server.2=localhost:2888:3888server.3=localhost:2889:3889#zookeeper-3.4.6-node2的配置tickTime=2000initLimit=10syncLimit=5clientPort=2182dataDir=/export/search/zookeeper-cluster/zookeeper-3.4.6-node2/dataserver.1=localhost:2887:3887server.2=localhost:2888:3888server.3=localhost:2889:3889#zookeeper-3.4.6-node3的配置tickTime=2000initLimit=10syncLimit=5clientPort=2183dataDir=/export/search/zookeeper-cluster/zookeeper-3.4.6-node3/dataserver.1=localhost:2887:3887server.2=localhost:2888:3888server.3=localhost:2889:3889参数说明:tickTime=2000:tickTime这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳;initLimit=10:initLimit这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到Leader的Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒;syncLimit=5:syncLimit这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒;dataDir=/export/search/zookeeper-cluster/zookeeper-3.4.6-node1/datadataDir顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在这个目录里;clientPort=2181clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;server.1=localhost:2887:3887server.2=localhost:2888:3888server.3=localhost:2889:3889server.A=B:C:D:A是一个数字,表示这个是第几号服务器,B是这个服务器的ip地址C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口D是在leader挂掉时专门用来进行选举leader所用3、创建ServerID标识除了修改zoo.cfg配置文件,集群模式下还要配置一个文件myid,这个文件在dataDir目录下,这个文件里面就有一个数据就是A的值,在上面配置文件中zoo.cfg中配置的dataDir路径中创建myid文件[[email protected] zookeeper-cluster]# cat /export/search/zookeeper-cluster/zookeeper-3.4.6-node1/data/myid1[[email protected] zookeeper-cluster]# cat /export/search/zookeeper-cluster/zookeeper-3.4.6-node2/data/myid22[[email protected] zookeeper-cluster]# cat /export/search/zookeeper-cluster/zookeeper-3.4.6-node3/data/myid34、启动zookeeper[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node1/bin/zkServer.sh startJMX enabled by defaultUsing config: /export/search/zookeeper-cluster/zookeeper-3.4.6-node1/bin/../conf/zoo.cfgStarting zookeeper … STARTED[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node2/bin/zkServer.sh startJMX enabled by defaultUsing config: /export/search/zookeeper-cluster/zookeeper-3.4.6-node2/bin/../conf/zoo.cfgStarting zookeeper … STARTED[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node3/bin/zkServer.sh startJMX enabled by defaultUsing config: /export/search/zookeeper-cluster/zookeeper-3.4.6-node3/bin/../conf/zoo.cfgStarting zookeeper … STARTED5、检测集群是否启动[[email protected] zookeeper-cluster]# echo stat|nc localhost 2181[[email protected] zookeeper-cluster]# echo stat|nc localhost 2182[[email protected] zookeeper-cluster]# echo stat|nc localhost 2183#或者[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node1/bin/zkCli.sh[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node2/bin/zkCli.sh[[email protected] zookeeper-cluster]# /export/search/zookeeper-cluster/zookeeper-3.4.6-node3/bin/zkCli.sh
⑼ zookeeper可以运行在win10上么
1:首先下载一个zookeeper,我下载的版本是zookeeper-3.4.6,(目前最新版本为3.5.0,但是启动不了),解压安装包,解压后的zookeeper安装包我放置的路径是:D:/zookeeper/zookeeper-3.4.62.:进入D:/zookeeper/zookeeper-3.4.6/conf,将zoo_sample.cfg文件复制一份,并将复制好的文件改名为zoo.cfg。打开新建的zoo.cfg文件,将里面的内容进行修改,修改后的文件内容如下:#initLimit=10#syncLimit=5tickTime=2000dataDir=D:/zookeeper/zookeeper-3.4.6/dataclientPort=21813. 配置环境变量,在“我的电脑”上点击右键,选择属性,再点击高级系统设置,点击环境变量按钮,在系统变量这一栏,点击新建,添加:变量名:ZOOKEEPER_HOME变量值:D:/zookeeper/zookeeper-3.4.6还是在系统变量这一栏,找到path,点击编辑path,在变量值里添加:% ZOOKEEPER_HOME %/bin; % ZOOKEEPER_HOME %/conf;4. 启动D:/zookeeper/zookeeper-3.4.6/bin/ zkServer.cmd这里说下多个机器配置zookeeper (windows下伪集群没有成功)1:192.168.1.113, 192.168.1.111上D:/zookeeper分别解压安装zookeeper-3.4.62:D:/zookeeper/zookeeper-3.4.6/conf/zoo.cfg添加如下配置initLimit=5syncLimit=2tickTime=2000dataDir=D:/zookeeper/zookeeper-3.4.6/dataclientPort=2181server.1=192.168.1.113:2888:3888server.2=192.168.1.111:2888:3888tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。(这里是摘抄- -!~)3:D:/zookeeper/zookeeper-3.4.6/data下创myid文件 myid的文件内容分别为:1、2 上边下边配置文件中192.168.1.113servier.X中的X值,如ip113的电脑,myid为1)4:分别启动两个zookeeper,在一台机器上创建节点,另一个机器能同步过去证明成功5:zookeeper服务器推荐用奇数个,半数以上服务正常,整个服务就正常,本人条件有限只配置两个
⑽ zookeeper在配置伪集群模式时,myid文件是什么,什么格式
伪集群,是指在单台机器中启动多个zookeeper进程,并组成一个集群.以启动3个zookeeper进程为例1、找到zk目录,复制两份cp-rzkzk2cp-rzkzk32、分别修改配置文件zoo.cfgdataDir=/opt/zk/zk/datadataLogDir=/opt/zk/zk/logsserver.0=127.0.0.1:5555:6666server.1=127.0.0.1:5556:6667server.2=127.0.0.1:5557:6668分别修改其他俩个zk目录配置文件dataDir,dataLogDir,clientPort参数即可3、创建myid文件分别在zk、zk2、zk3、的dataDir中新建myid文件,写入一个数字,该数字表示这是第几号server.该数字必须和zoo.cfg文件中的server.X中的X一一对应./opt/zk/zk/data/myid文件中写入0,/opt/zk/zk2/data/myid文件中写入1,/opt/zk/zk3/data/myid文件中写入2.[[email protected]~]$echo0>/opt/zk/zk/data/myid[[email protected]~]$echo1>/opt/zk/zk2/data/myid[[email protected]~]$echo2>/opt/zk/zk3/data/myid4、分别启动5、启动客户端测试,如果都能操作证明配置成功