黑马程序员技术交流社区

标题: 【上海校区】---zookeeper-- [打印本页]

作者: xiaozuoquan    时间: 2019-8-15 16:42
标题: 【上海校区】---zookeeper--
本帖最后由 xiaozuoquan 于 2019-8-15 16:51 编辑

5.1:三台虚拟机关闭防火墙
三台机器执行以下命令(root用户来执行)
[AppleScript] 纯文本查看 复制代码
service iptables stop   #关闭防火墙
chkconfig iptables off  #禁止开机启动

5.2三台机器关闭selinux
# 修改selinux的配置文件
[AppleScript] 纯文本查看 复制代码
vi /etc/selinux/config
5.3 三台机器机器免密码登录
第一步:三台机器生成公钥与私钥
在三台机器执行以下命令,生成公钥与私钥
[AppleScript] 纯文本查看 复制代码
ssh-keygen -t rsa
执行该命令之后,按下三个回车即可
第二步:拷贝公钥到同一台机器
三台机器将拷贝公钥到第一台机器
三台机器执行命令:
[AppleScript] 纯文本查看 复制代码
ssh-copy-id node01
第三步:复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上
在第一天机器上面指向以下命令
[AppleScript] 纯文本查看 复制代码
scp /root/.ssh/authorized_keys node02:/root/.ssh
scp /root/.ssh/authorized_keys node03:/root/.ssh

5.4三台机器时钟同步## 安装
[AppleScript] 纯文本查看 复制代码
yum install -y ntp


## 启动定时任务
[AppleScript] 纯文本查看 复制代码
crontab -e
随后在输入界面键入
[AppleScript] 纯文本查看 复制代码
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
6:装辅助软件
6.1 每台主机安装jdk
查看自带的openjdk
[AppleScript] 纯文本查看 复制代码
rpm -qa | grep java
卸载系统自带的openjdk
[AppleScript] 纯文本查看 复制代码
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps
上传jdk并解压然后配置环境变量
所有软件的安装路径
[AppleScript] 纯文本查看 复制代码
mkdir -p /export/servers
所有软件压缩包的存放路径
[AppleScript] 纯文本查看 复制代码
mkdir -p /export/softwares
上传jdk到/export/softwares路径下去,并解压
[AppleScript] 纯文本查看 复制代码
tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/
配置环境变量

[AppleScript] 纯文本查看 复制代码
vim /etc/profile
export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH

修改完成之后记得  source /etc/profile生效
7:Zookeeper
7.1 Zookeeper 的概述
分布式文件系统?
Zookeeper 是分布式的
首先呢, Zookeeper 是分为服务端和客户端的, 客户端有 Java 的客户端, 有 Shell 命令行的客户端等, 客户端通过一个类似于文件系统的 API 来访问 Zookeeper 集群
但是事实上, 客户端最终是直接访问 Zookeeper 集群, 集群中有两大类角色, 一类是 Leader, 一类是 Follower, 其实就是主从, Leader 负责读和写, Follower 只能读, 遇到会产生修改的请求会转发给 Leader 处理, 这是因为 Zookeeper 本质上就是为了在分布式环境中对消息的一致性的支持, 而 Zookeeper 所基于的 ZAB 协议是 Paxos 协议的一个变种, ZAB 协议中是有一个全局的事务生成者, 就是 Leader, 修改设计到在分布式环境下对事务达成一致, 必须由 Leader 发起
举个例子?
比如说一个常见的分布式主从系统, 如果有 ZK 在的话, 主节点不需要和每个从节点保持连接, 只需要监听从节点创建的 Znode, 便可以知道谁在线
Zookeeper 能做什么?
7.2 Zookeeper安装[td]
服务器IP
主机名
myid的值
192.168.174.100node011
192.168.174.110node022
192.168.174.120node033
第一步:下载zookeeeper的压缩包,下载网址如下
http://archive.apache.org/dist/zookeeper/
我们在这个网址下载我们使用的zk版本为3.4.9
下载完成之后,上传到我们的linux的/export/softwares路径下准备进行安装
第二步:解压
解压zookeeper的压缩包到/export/servers路径下去,然后准备进行安装
[AppleScript] 纯文本查看 复制代码
cd /export/software

tar -zxvf zookeeper-3.4.9.tar.gz -C ../servers/

第三步:修改配置文件
第一台机器修改配置文件
[AppleScript] 纯文本查看 复制代码
cd /export/servers/zookeeper-3.4.9/conf/

cp zoo_sample.cfg zoo.cfg

mkdir -p /export/servers/zookeeper-3.4.9/zkdatas/
vim  zoo.cfg
dataDir=/export/servers/zookeeper-3.4.9/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
第四步:添加myid配置
在第一台机器的
/export/servers/zookeeper-3.4.9/zkdatas /这个路径下创建一个文件,文件名为myid ,文件内容为1
[AppleScript] 纯文本查看 复制代码
echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid 
第五步:安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令
[AppleScript] 纯文本查看 复制代码
scp -r  /export/servers/zookeeper-3.4.9/ node02:/export/servers/

scp -r  /export/servers/zookeeper-3.4.9/ node03:/export/servers/
第二台机器上修改myid的值为2
[AppleScript] 纯文本查看 复制代码
echo 2 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第三台机器上修改myid的值为3
[AppleScript] 纯文本查看 复制代码
echo 3 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第六步:三台机器启动zookeeper服务
三台机器启动zookeeper服务
这个命令三台机器都要执行
[AppleScript] 纯文本查看 复制代码
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
查看启动状态
[AppleScript] 纯文本查看 复制代码
/export/servers/zookeeper-3.4.9/bin/zkServer.sh  status






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2