1 虚拟机配置
序号 | 操作系统 | CPU/核数 | 内存/GB | 硬盘/GB | IP地址 |
---|---|---|---|---|---|
1 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.131 |
2 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.132 |
3 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.133 |
2 安装JDK
hadoop@ubuntu:~$: tar -zxvf java.tar.gz -C ~/app //解压
//设置JVM环境变量
hadoop@ubuntu:~$:echo 'export JAVA_HOME=/home/hadoop/app/java' >> ~/.bashrc
hadoop@ubuntu:~$:echo 'PATH=${JAVA_HOME}/bin:$PATH' >> ~/.bashrc
hadoop@ubuntu:~$:source .bashrc //刷新
3 Zookeeper集群节点配置
1) 解压安装包
hadoop@ubuntu:~$ tar -zxvf zookeeper-3.4.5-cdh5.9.3.tar.gz -C ~/app/
hadoop@ubuntu:~/app$ mv zookeeper-3.4.5-cdh5.9.3/ zookeeper
2) 配置环境变量
hadoop@ubuntu:~$ vim ~/.bashrc
在末尾新增以下配置:
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
PATH=${ZOOKEEPER_HOME}/bin:$PATH
3) 修改配置文件
hadoop@ubuntu:~$ mkdir -p /home/hadoop/app/tmp/zookeeper/data
hadoop@ubuntu:~$/home/hadoop/app/tmp/zookeeper/logs
hadoop@ubuntu:~/app/zookeeper/conf$ cp zoo_sample.cfg zoo.cfg
hadoop@ubuntu:~/app/zookeeper/conf$ vim zoo.cfg
#主节点和从节点间心跳时间 = tickTime * initLimit (ms)= 20000ms
#主节点和从节点间请求和相应最大时长 = tickTime * syncLimit(ms)= 10000ms
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/app/tmp/zookeeper/data
dataLogDir=/home/hadoop/app/tmp/zookeeper/logs
#服务端端口号
clientPort=2181
#server.机器序号=机器ip:从节点与主节点通信端口号: 主节点与从节点通信端口号:
server.1=192.168.0.131:2888:3888
server.2=192.168.0.132:2888:3888
server.3=192.168.0.133:2888:3888
4)创建myid文件
hadoop@ubuntu:~$echo 1 > /home/hadoop/app/tmp/zookeeper/data/myid
备注:1),2)3)步每台机器都一致,其中4)的数字是机器序号,是唯一的,第2台设备为2,第三台设备为3,即不同虚拟机机器序号不同!
5)启动zookeeper
hadoop@ubuntu:~/app/zookeeper$ bin/zkServer.sh start
4 检查Zookeeper是否启动成功
1)查看zookeeper的进程
hadoop@ubuntu:~/app/zookeeper$ jps
2)再查看zk状态,如果都ok说明集群搭建成功!
hadoop@ubuntu:~/app/zookeeper$ ./bin/zkServer.sh status
5 zookeeper客户端脚本常见命令
使用zookeeper自带客户端连接zk服务端
hadoop@ubuntu:~/app/zookeeper$ ./bin/zkCli.sh -server 192.168.0.131:2181
1) 创建节点
2) 读取节点
3) 修改节点
4) 删除节点
备注:默认创建的是永久节点,在集群中使用任意一个客户端对其中一个服务端操作后会同步到所有服务端。
6 参考文献
1)《从Paxos到Zookeeper:分布式一致性原理与实践》
2) zookeeper官方文档http://zookeeper.apache.org/