配置虚拟机
首先就按正常的来,root和123456
配置网络
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 需要进行修改
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
#必须为yes
ONBOOT=yes # 需要进行修改
# 下边进行添加
# 配置IP 子网掩码 网关 和 DNS
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=192.168.100.2
DNS2=114.114.114.114
DNS3=8.8.8.8systemctl restart network重启网络服务
ping www.baidu.com测试网络是否配置完成
关闭防火墙
systemctl stop firewalld关闭防火墙
systemctl status firewalld查看防火墙状态
systemctl disable firewalld永久禁用防火墙
关闭SELINUX
vi /etc/selinux/config进入文件
修改SELINUX=disabled
更换yum源
首先下载wget:yum -y install wget,因为有些问题,可能无法下载
使用另一种方式
通过curlrpm安装包curl -L -o wget.rpm http://vault.centos.org/7.9.2009/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm
再通过rpm进行安装rpm -ivh wget.rpm
安装完成后备份系统自带的配置文件cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo-lock
下载源
# 移动备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 阿里 yum 源
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 网易 yum 源
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo上面的源只用下载一个就行
然后:
yum clean all清理旧缓存
yum makecache重新生成本地缓存
配置网络映射和免密登录
1.设置hosts主机映射vim /etc/hosts
192.168.100.101 node01 h1 master
192.168.100.102 node02 h2 slave1
192.168.100.103 node03 h3 slave22.设置免密登录:ssh-keygen -t rsa 生成密钥,一直点回车知道结束,ssh-copy-id localhost, 输入密码就可以了[秘钥的保存位置 cd ~/.ssh/]
vi /etc/ssh/ssh_config配置windows上文件地址:C:\Windows\System32\drivers\etc\hosts
安装Java -JDK8(Linux)
[root@node01 ~]# mkdir -p /opt/yjx
[root@node01 ~]# cd /opt/yjx/
[root@node01 ~]# [上传文件]
[root@node01 ~]# rpm -ivh jdk-8u351-linux-x64.rpm 或者yum install ./jdk-8u351-linux-x64.rpm -y
# 查看安装是否成功
[root@node01 ~]# rpm -qa | grep jdk
# 查看环境变量
[root@node01 ~]# java -version克隆安装zookeeper
创建node02和node03
配置ip地址
克隆完成后发现两台机器名字也叫node01 这肯定是不对的,
vim /etc/hostname:修改完成后需要重启生效。修改网络 只需要将IP改为102,103(node02,node03)即可。
免密登录:在node01、node02、node03 分别执行
ssh-keygen -t rsa生成密钥,直接回车就行 后输入ssh-copy-id node01ssh-copy-id node02ssh-copy-id node03(每一台都要重复此操作)上传Zookeeper安装包 文件名:apache-zookeeper-3.8.4-bin.tar.gz https://cloud.189.cn/web/share?code=NzuA3aiiYNFf(访问码:fad9)
时间同步
yum install vim screen ntp -y准备常用工具包;(时间同步见Day1-1)ntpdate -su api.bz上传并解压并且删除安装包
shell[root@node01 ~]# tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /opt/yjx/ [root@node01 ~]# rm apache-zookeeper-3.8.4-bin.tar.gz -rf创建目录并且编辑 zoo.cfg
shell[root@node01 ~]# mkdir -p /var/yjx/zookeeper/data [root@node01 ~]# mkdir -p /opt/yjx/apache-zookeeper-3.8.4-bin/logs [root@node01 ~]# cd /opt/yjx/apache-zookeeper-3.8.4-bin/ [root@node01 apache-zookeeper-3.8.4-bin]# cp conf/zoo_sample.cfg conf/zoo.cfg [root@node01 apache-zookeeper-3.8.4-bin]# vim conf/zoo.cfg # 修改以下内容 (旁边的数字是行号) 12 dataDir=/var/yjx/zookeeper/data 13 dataLogDir=/opt/yjx/apache-zookeeper-3.8.4-bin/logs 15 clientPort=2181 37 server.1=node01:2888:3888 38 server.2=node02:2888:3888 39 server.3=node03:2888:3888接下来将 node01 的 ZooKeeper 所有文件拷贝至 node02 和 node03。推荐从 node02 和 node03 拷贝。
[root@node01 ~]# scp -r /opt/yjx/apache-zookeeper-3.8.4-bin/ node02:$PWD [root@node01 ~]# scp -r /opt/yjx/apache-zookeeper-3.8.4-bin/ node03:$PWD在三台节点 /var/yjx/zookeeper/data 目录下分别创建 myid 文件,内容分别为 1,2,3。
shellnode01 [root@node01 ~]# echo 1 > /var/yjx/zookeeper/data/myid node02 [root@node02 ~]# mkdir -p /var/yjx/zookeeper/data [root@node02 ~]# echo 2 > /var/yjx/zookeeper/data/myid node03 [root@node03 ~]# mkdir -p /var/yjx/zookeeper/data [root@node03 ~]# echo 3 > /var/yjx/zookeeper/data/myid #!注意 确定每一个myid只有一行并且没有多余空格最后
vim /etc/profile配置环境变量,环境搭建结束。配完环境变量后source /etc/profile重新加载环境变量。
[root@node01 ~]# vim /etc/profile
export ZOOKEEPER_HOME=/opt/yjx/apache-zookeeper-3.8.4-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
[root@node01 ~]# source /etc/profile- 启动 三个节点都运行 zkServer.sh start ,但是这样太麻烦了,写一个脚本直接批量在三个机器都运行最好,看脚本。
[root@node01 ~]# zkServer.sh start
[root@node02 ~]# zkServer.sh start
[root@node03 ~]# zkServer.sh start- 脚本
在/usr/local/bin目录下创建对应服务的脚本:
[root@node01 ~]# cd ~
[root@node01 ~]# vim /usr/local/bin/zookeeper #!/bin/bash
user=$(whoami)
case $1 in
"start")
for i in node01 node02 node03
do
echo -e "\e[1;34m==================== $i ZooKeeper 启动 ====================\e[0m"
sleep 3
ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
done
;;
"stop")
for i in node01 node02 node03
do
echo -e "\e[1;34m==================== $i ZooKeeper 停止 ====================\e[0m"
ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
done
;;
"status")
for i in node01 node02 node03
do
echo -e "\e[1;34m==================== $i ZooKeeper 状态 ====================\e[0m"
ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
done
;;
"restart")
for i in node01 node02 node03
do
echo -e "\e[1;34m==================== $i ZooKeeper 重启 ====================\e[0m"
ssh $user@$i "/opt/yjx/apache-zookeeper-3.8.4-bin/bin/zkServer.sh restart"
done
;;
esac[root@node01 ~]# chmod 750 /usr/local/bin/zookeeper