本文章采用的是centos7操作系统,最小化安装,适合对linux有一定基础的学习,
用三台linux虚拟机搭建一个最简单的分布式集群,用于学习
master | slave1 | slave2 |
---|---|---|
172.16.1.100 | 172.16.1.101 | 172.16.1.102 |
NameNode | SecondaryNameNode | |
NodeManager | ResourceManager | NodeManager |
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改网卡配置文件
TYPE=Ethernet
#设置IP获取方式
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=65e056c4-b368-4f72-ab58-01b8579a2907
DEVICE=eth0
#ONBOOT是指明在系统启动时是否激活网卡
ONBOOT=yes
#设置IP地址
IPADDR=172.16.1.100
#设置子网掩码
NETMASK=255.255.255.0
#设置网管
GATEWAY=172.16.1.1
#设置DNS地址
DNS1=8.8.8.8
~
~
重启网卡
#systemctl restart network
或者
#service network restart
# vi /etc/sysconfig/selinux
# systemctl stop firewalld.service(关闭防火墙)
# systemctl disable firewalld.service(防火墙开机禁用)
首先是对hosts文件的修改
#vi /etc/hosts
修改hosts文件,添加以下内容
172.16.1.100 master
172.16.1.101 slave1
172.16.1.102 slave2
修改主机名
# vi /etc/hostname
对三台主机分别改为
master
slave1
slave2
同时对每台机器输入
hostname master
hostname slave1
hostname slave2
在每台机器上,通过如下命令,生成一堆公私钥对
# ssh-keygen -t rsa
一顿回车操作,这条命令执行完毕后,会在/home/z/.ssh/目录下生成两个文件:id_rsa 和 id_rsa.pub,如图所示:
生成之后呢,把master生成的公钥拷贝给master,slave1,slave2这三台机器,对,没错,包含当前机器。
# ssh-copy-id
# ssh-copy-id slave1
# ssh-copy-id slave2
完成后,其他机器同理。
对于我们当前这种案例,主要目标是把master这台服务器设置为时间服务器,剩下的slave1,slave2这两台机器同步master的时间,我们需要这样做的原因是因为,整个集群架构中的时间,要保持一致,否则集群很容易出现节点挂掉的情况
检查当前系统时区,使用命令:
# date -R
注意这里,如果显示的时区不是+0800,你可以删除localtime文件夹后,再关联一个正确时区的链接过去,命令如下:
# rm -rf /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#ntpdate 120.24.81.91
# vi /etc/ntp.conf
去掉下面这行前面的# ,并把网段修改成自己的网段:
restrict 192.168.122.0 mask 255.255.255.0 nomodify notrap
注释掉以下几行:
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
把下面两行前面的#号去掉,如果没有这两行内容,需要手动添加
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# systemctl start ntpd.service,注意,如果是centOS7以下的版本,使用命令:service ntpd start
# systemctl enable ntpd.service,注意,如果是centOS7以下的版本,使用命令:chkconfig ntpd on
首先需要关闭这两台计算机的ntp服务
# systemctl stop ntpd.service,centOS7以下,则:service ntpd stop
# systemctl disable ntpd.service,centOS7以下,则:chkconfig ntpd off
# systemctl status ntpd,查看ntp服务状态
# pgrep ntpd,查看ntp服务进程id
同步第一台服务器master的时间:
# ntpdate master
制定计划任务,周期性同步时间
# crontab -e
输入
*/10 * * * * /usr/sbin/ntpdate z01
重启定时任务
# systemctl restart crond.service,centOS7以下使用:service crond restart,其他台机器的配置同理