搭建一个4个节点的 CentOS 集群,支撑接下来演示环境中 Redis 集群、Storm 集群、Nginx、Tomcat + Java Web 应用的使用。
安装步骤
- 在虚拟机中安装 CentOS;
- 在每个 CentOS 中都安装 Java 和 Perl;
- 在4个虚拟机中安装 CentOS 集群;
- 配置4台 CentOS 为 ssh 免密码互相通信;
安装 VirtualBox
下载 VirtualBox,并在自己的电脑上安装。
在虚拟机中安装 CentOS
- 使用镜像文件版本:CentOS-6.5-i386-minimal.iso;
- 创建虚拟机:打开 VirtualBox,点击【新建】按钮,输入虚拟机名称为【eshop-cache01】,操作系统选择【Linux】,选择版本为 【Red Hat】;,分配 1024MB 内存,后面的选项全部用默认,在【文件位置和大小】中,一定要自己选择一个目录来存放虚拟机文件,最后点击【创建】按钮,开始创建虚拟机;
- 设置虚拟机网卡:选择创建好的虚拟机,点击【设置】按钮,在【网络】一栏中,连接方式中,选择【桥接网卡】;
- 安装虚拟机中的 CentOS 6.5 操作系统:选择创建好的虚拟机,点击【启动】按钮,选择启动盘(即本地的CentOS 6.5镜像文件),点击【启动】按钮,选择【Install or upgrade an existing system】开始安 装,Disc Found 选择【Skip】,欢迎界面点击【Next】按钮,选择默认语言(English)点击【Next】按钮,选择【Baisc Storage Devices】点击【Next】按钮,选择【Yes, discard any data】,设置主机名(eshop-cache01)点击【Next】按钮,选择时区(Asia/Shanghai)点击【Next】按钮,设置密码(123456)点击【Next】按钮,选择【Replace Existing Linux System】点击【Next】按钮,选择【Write changes to disk】CentOS 6.5 就自己开始安装;
- 安装完以后,CentOS 会提醒你要重启一下,就是 reboot,你就 reboot 就可以了;
- 配置网络;
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除几行内容,ONBOOT 改为 yes,改成如下内容:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
执行如下代码:
service network restart
根据自动分配的 ip 地址,修改网络配置固化 ip 地址。查看自动分配的 ip 地址。
ifconfig
默认网关是在宿主机器上看的,打开命令提示符工具,输入 ipconfig,查看宿主机的 ip 地址和默认网关。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
固化 ip 地址,改成如下内容:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.31.213
NETMASK=255.255.255.0
GATEWAY=192.168.31.1
执行如下代码:
service network restart
- 配置 hosts,配置本机的 hostname 到 ip 地址的映射;
vi /etc/hosts
改成如下内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.213 eshop-cache01
- 关闭防火墙;
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
vi /etc/selinux/config
修改 SELINUX 为 disabled。
SELINUX=disabled
关闭 windows 的防火墙,后面要搭建集群,有的大数据技术的集群之间,在本地如果配置了防火墙的话,可能会没有办法互相连接,会导致集群搭建失败。
- 配置 yum;
yum clean all
yum makecache
yum install -y wget
在每个 CentOS 中安装 Java 和 Perl
所有的软件安装在 /usr/local/ 目录下,该目录原有的文件及文件夹都删除。
安装 JDK
- 将 jdk-8u161-linux-i586.rpm 上传到 CentOS 的 /usr/local/ 目录;
- 安装 JDK:rpm -ivh jdk-8u161-linux-i586.rpm;
- 配置jdk相关的环境变量;
vi .bashrc
# 添加如下两句内容:
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
# 在执行以下如下代码:
source .bashrc
- 测试 JDK 安装是否成功:java -version;
安装 Perl
- 先安装 gcc:yum install -y gcc;
- 下载 perl:wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
- 解压缩,然后在安装 perl
tar -xzf perl-5.16.1.tar.gz
cd perl-5.16.1
./Configure -des -Dprefix=/usr/local/perl
make && make test && make install
perl -v
perl 是一个基础的编程语言的安装,Java + Nginx + Lua 需要 perl。
在4个虚拟机中安装 CentOS 集群
- 按照上述步骤,再安装三台一模一样环境的 Linux 机器;
2. 另外三台机器的 hostname 分别设置为 eshop-cache02,eshop-cache03,eshop-cache04;
3. 安装好之后,在每台机器的 hosts 文件里面,配置好所有的机器的 ip 地址到 hostname 的映射关系;
比如说,在 eshop-cache01 的 hosts 里面
192.168.1.113 eshop-cache01
192.168.1.114 eshop-cache02
192.168.1.115 eshop-cache03
192.168.1.116 eshop-cache04
配置4台 CentOS 为 ssh 免密码互相通信
- 首先在三台机器上配置对本机的 ssh 免密码登录;
ssh-keygen -t rsa
# 生成本机的公钥,过程中不断敲回车即可,ssh-keygen 命令默认会将公钥放在 /root/.ssh 目录下
cd /root/.ssh
cp id_rsa.pub authorized_keys
# 将公钥复制为 authorized_keys 文件,此时使用 ssh 连接本机就不需要输入密码了
- 接着配置三台机器互相之间的 ssh 免密码登录;
# 使用 ssh-copy-id -i hostname 命令将本机的公钥拷贝到指定机器的 authorized_keys 文件中
ssh-copy-id -i eshop-cache01
ssh-copy-id -i eshop-cache02
ssh-copy-id -i eshop-cache03
ssh-copy-id -i eshop-cache04
# 也可以在其他三台机器上执行 ssh-copy-id -i eshop-cache01,然后在 eshop-cache01 上执行如下拷贝动作。
scp authorized_keys eshop-cache02:/root/.ssh
scp authorized_keys eshop-cache03:/root/.ssh
scp authorized_keys eshop-cache04:/root/.ssh
到这里整个 CentOS 集群环境就已经配置好了。
作者:殷建卫 链接:https://www.yuque.com/yinjianwei/vyrvkf/qr56ip 来源:殷建卫 - 架构笔记 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。