myid的值是zoo.cfg文件里定义的server.A项A的值。Zookeeper启动时会读取这个文件。解决方法如下:
1、首先获取zookeeper安装包,zookeeper包的获取可以直接到Apache的网站获取。
2、解压zookeeper软件包,使用如下命:$ tar zxvf zookeeper-3.4.14.tar.gz$ mv zookeeper-3.4.14 /usr/local/bigdata/zookeeper。
3、配置zookeeper_home环境变量,使用如下的命令过程:$ cd ~ $ vi .bashrc 。# 在末尾添加如下内容#zookeeper。
4、然后配置zookeeper,使用命令如下图。
5、最后启动zookeeper集群,在每个节点输入以下命令:$ zkServer.sh start 。
伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例
1、找到zk目录,复制两份
cp -r zk zk2
cp -r zk zk3
2、分别修改配置文件zoo.cfg
dataDir=/opt/zk/zk/data
dataLogDir=/opt/zk/zk/logs
server.0=127.0.0.1:5555:6666
server.1=127.0.0.1:5556:6667
server.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.
[zk@master ~]$ echo 0 > /opt/zk/zk/data/myid
[zk@master ~]$ echo 1 > /opt/zk/zk2/data/myid
[zk@master ~]$ echo 2 > /opt/zk/zk3/data/myid
4、分别启动
5、启动客户端测试,如果都能操作证明配置成功
myid的值是zoo.cfg文件里定义的server.A项A的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server,只是一个标识作用。
myid文件无后缀(建立文本文件,去掉扩展名txt即可)
格式就是没有任何格式。 你新建一个txt 然后把后缀名直接删掉,改名为 myid 没有任何后缀名。再右键打开方式中选择文本就可以了。