一、在虚拟机中安装CentOS7

1、 启动一个虚拟机管理软件(vmware或者virtual box),准备好CentOS7的镜像,如:CentOS-7.0-1406-x86_64-DVD.iso。具体操作可参考:1.2 VirtualBox实现宿主机与虚拟机,虚拟机与外网的互通。
2、配置hosts
vi /etc/hosts
配置本机的hostname到ip地址的映射
3、关闭虚拟机上的防火墙
由于CentOS7默认的防火墙不是iptables,而是firewalle,现在要换成iptables

systemctl stop firewalld   //停用firewalld
systemctl disable firewalld  //禁止firewalld开机自启
service iptables status  //先检查是否安装了iptables
yum install -y iptables  //安装iptables
yum update iptables   //升级iptables
yum install iptables-services  //安装iptables-services
如果要修改防火墙的配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables 
systemctl restart iptables.service  //重启防火墙使配置生效
service iptables restart
systemctl enable iptables.service  //设置防火墙开机启动
service iptables enable
systemctl stop iptables.service  //设置防火墙关闭
service iptables stop

4、修改Windows上的防火墙,放行虚拟机

按照Windows防火墙 -》高级设置 -》入站规则

centos7 fastdfs集群 centos7集群搭建_perl

二、CentOS7中安装Java和Perl

1、安装Java环境
准备好jre-8u192-linux-x64.tar.gz

cd /usr/app
tar -zxvf jre-8u192-linux-x64.tar.gz
## 环境变量配置
cd /etc/skel
vi .bash_profile
## 在文件尾部添加,如下:
export JAVA_HOME=/usr/app/jre
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
## 修改完成并保存,修改环境变量立即生效如下:
source .bash_profile(但是这会导致机器重启之后文件失效,必须重新source一下才行,所以建议还是一开始就vi  ~/.bash_profile)
vi ~/.bash_profile
加入source /etc/skel/.bash_profile
然后source ~/.bash_profile就可以了
## 查看java版本
java -version

2、安装Perl

## 安装gcc c语言编译器
yum install -y gcc
wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
tar -xzf perl-5.16.1.tar.gz
mv perl-5.16.1 perl
cd perl
./Configure -des -Dprefix=/usr/app/perl
make && make test 
make install
perl -v

3、在其它3台虚拟机中安装CentOS7集群
安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系
192.168.1.198 CentOS7_1
192.168.1.195 CentOS7_2
192.168.1.165 CentOS7_3

【注】perl,是一个基础的编程语言的安装,tomcat,跑java web应用

三、配置4台CentOS7为ssh免密码互相通信

1、首先在三台机器上配置对本机的ssh免密码登录

ssh-keygen -t rsa
##生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
cd /root/.ssh
##将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
cp id_rsa.pub authorized_keys

2、接着配置三台机器互相之间的ssh免密码登录
使用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器的authorized_keys文件中
此时,你就可以通过ssh hostname命令来连接到其它虚拟机上了。

四、制作一个定时释放内存的脚本
## 判断是否安装了crontab
crontab
安装:
yum -y install vixie-cron
yum -y install crontabs
systemctl start crond.service   //启动定时服务
systemctl status crond.service  //查看状态
systemctl enable crond.service   //设置开机启动

mkdir -p /root/satools
cd /root/satools
vi freemem.sh
---------------------------------脚本内容------------------------------------------
#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 100 ] ; then
                sync && echo 1 > /proc/sys/vm/drop_caches
                sync && echo 2 > /proc/sys/vm/drop_caches
                sync && echo 3 > /proc/sys/vm/drop_caches
                echo "OK" >> /var/log/mem.log
else
                echo "Not required" >> /var/log/mem.log
fi
---------------------------------------------------------------------------------

接下来将脚本添加到crond任务中,每隔30分钟执行一次

crontab -e
*/30 * * * * sh /root/satools/freemem.sh
//列出所有的定时任务
crontab -l