完全分布式-centos虚拟机集群环境搭建

目录

  • 1.准备3台虚拟机
    • 创建一台虚拟机(关闭防火墙、静态ip、主机名称)
    • 克隆虚拟机
  • 2.配置ssh实现只用输入一次密码
  • 3.集群时间同步
    • 时间服务器配置(必须root用户)
    • 修改ntp配置文件
    • 修改/etc/sysconfig/ntpd文件
    • 在其他机器配置10分钟与时间服务器同步一次
  • 4.配置3台虚拟机这么久,有没有更好的方法呢?
    • 编写集群分发脚本xsync
      • xsync脚本实现
      • 修改脚本xsync权限
    • 调用xsync脚本方法

  • 工具:VMWare-15.5.0,CentOS-6.8-x86_64-bin-DVD.iso

1.准备3台虚拟机

创建一台虚拟机(关闭防火墙、静态ip、主机名称)

  1. 首先创建一台虚拟机(hadoop102),创建完毕之后,配置虚拟机的网络配置,步骤参考VMware下NAT模式的网络配置和如何安装虚拟机

克隆虚拟机

  1. 克隆完之后需要更改ip地址,不能立即使用,另外虚拟机最好备份,奔溃之后有替换
  2. 更改ip地址(hadoop103)
[root@hadoop103 ~]# vim /etc/udev/rules.d/70-persistent-net.rules
  • 删除eth0(一般克隆机本来就连接不上网络)
    在这里插入图片描述
  • 将文件中的eth1改成eth0,并复制它的ATTR(address)地址,更改到ifcfg-eth0
    在这里插入图片描述
  • 将ATTR(address)地址更改到ifcfg-eth0的HWADDR,并更改IPADDR为自己的ip(例如:192.168.81.103)
[root@hadoop103 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

完全分布式-centos虚拟机集群环境搭建_第1张图片

  • 更改主机名称
[root@hadoop103 ~]# vim /etc/sysconfig/network
  • 配置hosts文件
[root@hadoop103 ~]# vim /etc/hosts

完全分布式-centos虚拟机集群环境搭建_第2张图片

  • 其他克隆虚拟机参照如上步骤

2.配置ssh实现只用输入一次密码

完全分布式-centos虚拟机集群环境搭建_第3张图片

  • 自动生成公钥和私钥,输入命令后连续敲3个回车,就会生成id_rsa(私钥)、id_rsa.pub(公钥)两个文件
[root@hadoop103 ~]# cd .ssh/
[root@hadoop103 .ssh]# ssh-keygen -t rsa
  • 将公钥拷贝到要免密登录的目标机器上
[root@hadoop103 .ssh]# ssh-copy-id hadoop102
[root@hadoop103 .ssh]# ssh-copy-id hadoop103
[root@hadoop103 .ssh]# ssh-copy-id hadoop104
  • 注意,其他机器(hadoop102,hadoop104)上采用root账号,同样如上配置

3.集群时间同步

时间服务器配置(必须root用户)

  • 检查ntp是否安装
rpm -qa|grep ntp

完全分布式-centos虚拟机集群环境搭建_第4张图片

修改ntp配置文件

  • 注意:192.168.1.0要修改成自己的网段(例如192.168.81.0)
    完全分布式-centos虚拟机集群环境搭建_第5张图片
    完全分布式-centos虚拟机集群环境搭建_第6张图片

修改/etc/sysconfig/ntpd文件

vim /etc/sysconfig/ntpd

//增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
  • 重新启动ntpd服务
service ntpd status
service ntpd start
//设置ntpd服务开机启动
chkconfig ntpd on

在其他机器配置10分钟与时间服务器同步一次

[root@hadoop103 ~]# crontab -e
//定时任务编写如下
*/10 * * * * /usr/sbin/ntpdate hadoop102

4.配置3台虚拟机这么久,有没有更好的方法呢?

编写集群分发脚本xsync

完全分布式-centos虚拟机集群环境搭建_第7张图片
完全分布式-centos虚拟机集群环境搭建_第8张图片
完全分布式-centos虚拟机集群环境搭建_第9张图片

xsync脚本实现

//编辑并创建xsync文件
vim xsync

//文件内容如下
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=102; host<105; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

修改脚本xsync权限

[root@hadoop102 bin]# chmod 755 xsync 

调用xsync脚本方法

//将/opt/module/hadoop-2.7.2文件同步到其他虚拟机
[root@hadoop102 module]# xsync /opt/module/hadoop-2.7.2
  • 注意:如果将xsync放到/home/mydir/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下

你可能感兴趣的:(Linux,网络,linux,hadoop,大数据,java)