zookeeper里的每一个节点叫znode,他们既是目录的功能也有自己的文本信息。 下面进行的集群配置并没有实现高可用效果(内存空间有限) 此次搭建要准备三台虚拟机,准备必备jar包。
虚拟机 ip | 角色 |
---|---|
192.168.19.110 node01 | zookeeper follower |
192.168.19.111 node02 | zookeeper follower |
192.168.19.112 node03 | zookeeper leader |
虚拟机的具体操作也很有讲究,将一台已经安装好的原始虚拟机进行拷贝,拷贝2份,此时就有了三台一模一样的虚拟机
开启虚拟机前先配置好运行内存(因为后面还要搭建hadoop集群,我此处的虚拟机内存设置为4):
开启前还要进行至关重要的操作: 修改网卡地址,因为复制出来的三台虚拟机一模一样,所以网卡信息也会一模一样,这个时候如果直接开启ip会出现冲突,所以开启后在虚拟机设置里的网络适配器里的高级,点击生成新的mac地址并做相应记录,三台均同样操作:
接下来,开启三台虚拟机:
在/etc/hosts下面分别做好域名映射:
分别设置主机名: 在/etc/sysconfig/network下修改各主机名
再修改各个主机的ip地址,在/etc/sysconfig/network-scripts下分别配置如下参数即可:
三台分别关闭防火墙,分别关闭seliunx
service iptables stop
chkconfig iptables off
vim /etc/selinux/config
加上如下一行:
虚拟机免密登录: 分别在各自的机子上生成秘钥,再统一把公钥发送到第一台主机上,在将打包好的公钥由第一台机子分发给剩下两台主机: 分别生成秘钥:
ssh-keygen -t rsa
接下来分别将秘钥传送到node1上:
ssh-copy-id node01
这时会生成一个认证的keys,随后分别分发给剩下两台主机即可:
这样就可以在三台主机里进行任意访问了
因为要实现集群操作,时间同步是必不可少的效果,分别在自己的主机上安装ntp时间服务:
yum install -y ntp
接下来实行crontab -e设置每一分钟进行时间同步即可:
分别在每台虚拟机上创建两个目录,softwares用来存放jar包,servers用来存放解压后的文件
mkdir -p /export/softeares
mkdir -p /export/servers
此次安装的java环境为jdk1.8.0_141
安装的zookeeper版本是3.4.9
如果使用如下命令:
rpm -qa | grep java
出现了内容,要将之前的版本全部卸载掉:
rpm -e 你的openjdk的名称 --nodeps
将安装包拷贝到/export/softwares/目录下,进行解压即可:
安装好后进入/etc/profile文件下加入JAVA_HOME:
随后:source /etc/profile
立即生效,这时查看java-version:
用同样的方式解压zookeeper:
现在node3上面进行安装 安装mysql:
yum install mysql mysql-server mysql-devel
启动mysql:
/etc/init.d/mysqld start
设置mysql用户名密码是否能被外部连接:
/usr/bin/mysql_secure_installation
输入mysql -uroot -p进入mysql设置外部可以访问:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
输入如上两行即可
创建好数据存储目录mkdir -p /export/servers/zookeeper-3.4.9/zkdatas/
将配置文件复制出来一份:
cp /export/servers/zookeeper-3.4.9/zkdatas/zoo_sample.cfg zoo.cfg
进入zookeeper配置文件/export/servers/zookeeper-3.4.9/zkdatas/zoo.cfg
随后进入zkdatas下设置myid(myid是zookeeper选举制度里的重要参数,越大说明越有能力当leader,还有一个重要的参数影响选举制度:ZXID) echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid即可 接下来分别把node1上的zookeeper文件拷贝到剩下两台主机上即可:
scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/
scp -r /export/servers/zookeeper-3.4.9/ node03:/export/servers/
在分别将myid调整为2和3即可
三台主机上分别输入:
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
接下来查看可以看到各自的角色:
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status
node3成为了leader(myid为3) 相应的剩下两台也就成为了follower:
使用如下命令开启zookeeper:
接下来就可以在这里面设置节点了(永久性节点,临时性节点,序列-永久节点,序列-临时节点) 还可以在这里面实行watch机制,当节点里的值发生变动时,能监听到并返回信息: