Zookeeper三节点集群搭建

Mac下利用vmware fushion安装centos服务器,然后搭建Zookeeper集群环境。

安装中用到的软件包
  • Centos7,下载地址
  • vmware fushion 10以上的版本
  • jdk8
  • zookeeper-3.4.5-cdh5.14.2.tar.gz
配置虚拟机并且安装JDK

为了安装简便,先安装一台linux虚拟机,并在其上安装zookeeper,然后克隆这个镜像2份,修改相关配置即可。

  1. 安装虚拟机
    我们这里使用的配置是4G内存,50G硬盘,处理器2核。注意:网络要选择与我的mac共享

  2. 修改ip地址,使用固定ip
    注意:在修改静态ip之前,先查看vmware fushion使用的本机默认网关地址以及虚拟机允许选择的静态ip地址范围

通过Mac终端查看vmware fushion使用的默认网关地址:

cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf

截取了部分结果如下,其中192.168.2.2为默认网关,255.255.255.0为子网掩码。

# NAT gateway address
ip = 192.168.2.2
netmask = 255.255.255.0

然后查看虚拟机允许选择的静态ip地址范围:

vim /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf

截取了部分结果如下,其中:192.168.2.128 ~ 192.168.2.254 为我们允许配置的静态ip范围。

ubnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.128 192.168.2.254;
        option broadcast-address 192.168.2.255;
        option domain-name-servers 192.168.2.2;
        option domain-name localdomain;
        default-lease-time 1800;                # default is 30 minutes
        max-lease-time 7200;                    # default is 2 hours
        option netbios-name-servers 192.168.2.2;
        option routers 192.168.2.2;
}

获取到以上2个信息之后,我们分别配置三台linux虚拟机的ip地址为:192.168.2.100, 192.168.2.110, 192.168.2.120

下面进行修改,进入虚拟机里面,打开终端,切换到root,然后编辑ifcfg-ens33文件。

su root  # 之后的操作都是使用root身份进行
vi /etc/sysconfig/network-scripts/ifcfg-ens33 

修改其内容为:

BOOTPROTO="static"            # 原本是BOOTPROTO="dhcp",自动获取改为使用静态固定ip
IPADDR=192.168.2.100         # 这里使用192.168.2.100
NETMASK=255.255.255.0         #  子网掩码
GATEWAY=192.168.2.2           #  这里的网关,填入上面获取到的网关192.168.2.2
DNS1=8.8.8.8                  # DNS

保存完之后,重启一下网络:

service network restart

如果反馈结果如下,证明修改成功。

[root@localhost tiger]# service network restart
Restarting network (via systemctl):                        [  OK  ]

然后,使用ifconfig命令查看一下ip是否是已经更改。如果正确,在mac终端用ping命令,ping一下mac与虚拟机是否能ping通,如果配置正确,上述命令执行结果应该都是预期的。

  1. 关闭防火墙
    这时候,已经可以在mac终端连接虚拟机了,而不必进入虚拟机在虚拟机终端中关闭防火墙。
ssh [email protected]
systemctl disable firewalld.service
  1. 关闭selinux
    继续在刚才的终端中,执行:
vim /etc/selinux/config 

修改为:

SELINUX=disabled
  1. 更改主机名
    约定这三台主机分别更名为node01, node02, node03
vim /etc/hostname

改为:

node01
  1. 更改主机名与IP地址映射
vim /etc/hosts
# 修改为:
192.168.2.100  node01
192.168.2.110  node02
192.168.2.120  node03
  1. 三台机器同步时间
yum -y install ntpdate
crontab -e    # 增加定时任务:*/1 * * * * /usr/sbin/ntpdate time1.aliyun.com
  1. 三台机器添加hadoop用户
    三台linux服务器统一添加普通用户hadoop,并给以sudo权限,用于以后所有的大数据软件的安装
    并统一设置普通用户的密码为 123456。
useradd hadoop
passwd hadoop
chmod u+w /etc/sudoers
vim /etc/sudoers               # 增加一行:hadoop  ALL=(ALL)       ALL
chmod u-w /etc/sudoers
  1. 定义统一目录
    定义三台linux服务器软件压缩包存放目录,以及解压后安装目录,执行以下命令,创建两个文件夹,一个用于存放软件压缩包目录,一个用于存放解压后目录。
mkdir -p /kkb/soft     # 软件压缩包存放目录
mkdir -p /kkb/install  # 软件解压后存放目录
chown -R hadoop:hadoop /kkb    # 将文件夹权限更改为hadoop用户
  1. 安装jdk
    切换到hadoop用户,上传压缩包到服务器的/kkb/soft下面,然后进行解压,配置环境变量即可。
    先在mac终端下用scp把jdk上传到/kkb/soft下面
scp jdk-8u141-linux-x64.tar.gz [email protected]:/kkb/soft
su hadoop
cd /kkb/soft/
tar -zxf jdk-8u141-linux-x64.tar.gz  -C /kkb/install/
sudo vim /etc/profile
# 添加以下配置内容,配置jdk环境变量
export JAVA_HOME=/kkb/install/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
source /etc/profile  # 使环境变量生效
java -version        # 测试jdk是否安装成功
  1. 克隆镜像
    首先关闭node01,然后创建克隆镜像,克隆2台虚拟机centos02, centos03。
克隆虚拟机

接着分别开启centos02和centos03,执行上面的第2步和第5步。其中,在第2步中,centos02的ip修改为192.168.2.110,centos03的ip修改为192.168.2.120; 在第5步中,修改centos02的主机名为node02,修改centos03的主机名为node03

修改完成之后,重启node02和node03使配置生效。

  1. hadoop用户免密登录
    三台机器在hadoop用户下执行以下命令生成公钥与私钥对。
ssh-keygen -t rsa 
三台机器在hadoop用户下,执行以下命令将公钥拷贝到node01服务器上面去
ssh-copy-id  node01
node01在hadoop用户下,执行以下命令,将authorized_keys拷贝到node02与node03服务器
cd /home/hadoop/.ssh/
scp authorized_keys  node02:$PWD
scp authorized_keys  node03:$PWD

可以额外做一步,使mac也可以免密登录node01, node02, node03,这样就可以直接在mac的终端免密登录这三台服务器了,而不必进入虚拟机里面,使用Linux的terminal。

# 在mac终端执行
sudo vim /etc/hosts
# 修改为:
192.168.2.100  node01
192.168.2.110  node02
192.168.2.120  node03
# 然后执行
ssh-copy-id  hadoop@node01    # 这里必须指明hadoop用户,不然默认使用的是当前用户。
# 然后将node01的authorized_keys同步到三台服务器
ssh hadoop@node01
cd /home/hadoop/.ssh/
scp authorized_keys  node02:$PWD
scp authorized_keys  node03:$PWD

配置完成之后,使用ssh hadoop@node01ssh hadoop@node02ssh hadoop@node03,测试一下mac是否可以免密登录3台服务器。

安装Zookeeper
  1. 解压Zookeeper
    可以先在node01上安装Zookeeper然后将文件同步到node02,node03。
    在mac下将zookeeper安装包上传到node01,打开mac终端,执行:
scp zookeeper-3.4.5-cdh5.14.2.tar.gz hadoop@node01:/kkb/soft
ssh hadoop@node01
cd /kkb/soft
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz  -C /kkb/install/
  1. 修改配置文件
    在node01上执行:
cd /kkb/install/zookeeper-3.4.5-cdh5.14.2/conf
cp zoo_sample.cfg zoo.cfg
mkdir -p /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
vim  zoo.cfg
# 修改内容如下:
dataDir=/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
  1. 添加myid配置
    在第一台机器的/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/
    这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 >  /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
  1. 安装包分发并修改myid的值
# 第一台机器上面执行以下两个命令
scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node02:/kkb/install/
scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node03:/kkb/install/
# 第二台机器上修改myid的值为2
# 直接在第二台机器任意路径执行以下命令
echo 2 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
# 第三台机器上修改myid的值为3
# 直接在第三台机器任意路径执行以下命令
echo 3 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
  1. 启动Zookeeper集群
    三台机器启动zookeeper服务,这个命令三台机器都要执行。
/kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start

查看启动状态

/kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status
查看Zookeeper是否启动

随便登录node01,node02,node03中的任何一台,执行jps,如果看到QuorumPeerMain这个进程,则证明Zookeeper正常启动。

你可能感兴趣的:(Zookeeper三节点集群搭建)