-
集群规划
主机名(hostname) 安装软件 运行进程 min1 zookeeper-3.4.7 QuorumPeerMain min2 zookeeper-3.4.7 QuorumPeerMain min3 zookeeper-3.4.7 QuorumPeerMain
-
安装步骤
-
在min1机器上安装zookeeper-3.4.7
-
上传zookeeper-3.4.7.tar.gz到/ home / hadoop / develop_env
-
解压到当前目录(/ home / hadoop / develop_env)
cd /home/hadoop/develop_env tar -zvxf zookeeper-3.4.7.tar.gz
-
配置
-
添加一个zoo.cfg配置文件
cd /home/hadoop/develop_env/zookeeper-3.4.7/conf mv zoo_sample.cfg zoo.cfg #在/ home / hadoop / develop_env / zookeeper-3.4.7/创建一个data文件夹 mkdir data
-
修改配置文件(zoo.cfg)
vi zoo.cfg #添加如下内容 #为zookeeper指定一个工作目录,此目录要手动创建 dataDir=/home/hadoop/app/zookeeper-3.4.7/data #指定集群中各个机器之间地址及通信端口 #3888是选举端口 2888是leader和follower通信端口 #注意 域名(如min1) 都要在各个机器/etc/hosts文件中配置了 #在zoo.cfg最后添加如下内容 server.1=min1:2888:3888 server.2=min2:2888:3888 server.3=min3:2888:3888
-
在上面server.N对应的主机的“dataDir=/home/hadoop/app/zookeeper-3.4.7/data”目录下创建一个myid文件,里面内容是N( server.1对应的min1里面的myid文件内容为1
server.2对应的min2里面的myid文件内容为2
server.3对应的min3里面的myid文件内容为3)
cd /home/hadoop/app/zookeeper-3.4.7/data touch myid #创建一个myid的文件 echo "1" > myid #写入的内容要对应,本机是min1 设置的名称是server.1 因此写入时,要将1写入mydid
-
-
-
设置zookeeper日志文件的zookeeper.out存放目录
vi /home/hadoop/apps/zookeeper-3.4.7/bin/zkEnv.sh #在如下位置设置
-
将在min1配置好的zk拷贝到min2和min3节点
scp -r /home/hadoop/apps/zookeeper-3.4.7/ min2:/home/hadoop/apps/ #在min2的机器中修改myid的值 cd /home/hadoop/app/zookeeper-3.4.7/data echo "2" > myid scp -r /home/hadoop/apps/zookeeper-3.4.7/ min3:/home/hadoop/apps/ #在min3的机器中修改myid的值 cd /home/hadoop/app/zookeeper-3.4.7/data echo "3" > myid
-
2.2 集群的启动
-
分别在min1、min2和min3中启动zookeeper
cd /home/hadoop/apps/zookeeper-3.4.7/bin ./zkServer.sh start #启动zookeeper
-
分别在min1、min2和min3中执行jps 显示如下进程,则启动成功
-
-
查看zk状态
cd /home/hadoop/apps/zookeeper-3.4.7/bin ./zkServer.sh status #启动zookeeper
在三台机器中分别显示如下信息:
-
2.3 集群的测试使用
在任何一台机器上执行如下命令进入zk客户端的shell
cd /home/hadoop/apps/zookeeper-3.4.7/bin
./zkCli.sh
执行完zkcli.sh命令后进入的界面效果如下:
-
通过help命令查看zk客户端的shell命令帮助
-
-
zk服务器中也有类似 linux中的目录结构,”/“ 是它的目录根,在这个根下可以创建任何一个key、value对,其中key值就相当于一个linux中子目录名,但是这个子目录是可以有值的,就是那个value。这个key-value对在zk中叫一个node 这个node可以有子孙node。
-
在根下创建一个node节点key为age, value为18
create /age 18
-
显示“根”下所有node
ls /
-
获得一个node的value值
get /age
-