大家好,我是悟空。
周末宅在家里,捣鼓了一天,在本地用虚拟机搭建了 4 个 Linux 的集群环境,机器之间实现了相互访问。从此以后我的本地就有一套集群环境
了,真正意义上可以模拟分布式
的环境了!后面还可以模拟大型电商项目的高并发
场景,美滋滋!
比如我想搭建 Redis 集群、Kafaka 集群、Storm 集群,这套环境统统可以搞定。
本篇非常详尽地记录了我是如何搭建这套集群基础环境的,为了防止遇到其他坑,每步我都有截图,就是为了方便大家跟着搭一套。
通过本篇,你可以学到:
- 如何搭建和组成 Linux 集群环境。
- 如何使多台机器在同一个网段。
- 如何使机器之间免密登录。
- Linux 环境配置 Java 开发环境(可自行安装 JDK 8)。
- Linux 环境配置 Perl 5.6 开发环境。
- 支持 SecureCRT 远程登录多套机器。
- 支持 WinSCP 远程拷贝文件。
注意:Redis、Kafka 集群,不会放到这一讲中,本讲主要是讲解集群的基础环境搭建,对于搭建中间件的集群环境会放到后面几讲中。
接下来介绍怎么一步步配置集群环境的,建议先收藏。安装所需的软件,到公众号 悟空聊架构 后台回复 集群软件 下载。
配置虚拟机
创建虚拟机
软件:VirtualBox
添加操作系统镜像文件。镜像文件在公众号悟空聊架构
后台回复集群软件
配置网络
选择桥接模式
启动虚拟机
点击启动按钮
选择 Skip
Next
Next
Next
Yes, discard any data
配置域名 eshop-cache01
时区选择亚洲-上海,如果配置错了,可以通过以下命令修改:
代码语言:javascript复制cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
密码:huang123
选择 Reboot:
配置网络
现在不能连外网,如下图所示:
按照如下配置,获取动态 IP
代码语言:javascript复制vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 只保留以下几项,可以按键盘上的 DD 删除多余的 3 行。
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
代码语言:javascript复制service network restart
ifconfig
动态 IP 地址为 192.168.10.86
代码语言:javascript复制vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
需要改为静态 IP 地址
修改配置文件
代码语言:javascript复制BOOTPROTO=static
IPADDR=192.168.10.86
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
改完后,保存,执行以下命令,重启网络
代码语言:javascript复制service network start
测试下是否能 ping 通 www.baidu.com
配置 hosts
配置本机的 hostname 到 ip 地址的映射。
代码语言:javascript复制vi /etc/hosts
192.168.10.86 eshop-cache01
安装 SecureCRT
SecureCRT 用来连接虚拟机非常方便。
在百度网盘下载,按照使用说明安装。
就可以连接虚拟机了。
关闭防火墙
为了防止集群之间通信问题,关掉防火墙。
代码语言:javascript复制service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
vi /etc/selinux/config
SELINUX=disabled
安装 yum 工具
代码语言:javascript复制# 配置阿里的仓库源
sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
代码语言:javascript复制yum clean all
yum makecache
安装 wget 工具
代码语言:javascript复制yum install -y wget
安装软件
安装 WinSCP
到网盘下载 WinSCP 并安装。
连接虚拟机:
清理 local 目录
代码语言:javascript复制cd /usr/local
ll
rm -rf *
ll
进入到 local 目录:
安装 Java JDK 7
把 JDK 7 rpm 包拖到 local 目录
JDK 7 rpm 包到网盘下载。
安装 JDK
代码语言:javascript复制rpm -ivh jdk-7u65-linux-i586.rpm
删除 JDK 安装包
代码语言:javascript复制rm -rf jdk-7u65-linux-i586.rpm
配置环境变量
修改 ~/.bashrc文件
代码语言:javascript复制vi ~/.bashrc
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
使 .bashrc 文件生效:
代码语言:javascript复制source ~/.bashrc
测试下环境变量是否配置成功
代码语言:javascript复制java -version
安装 Perl
Perl,是一个基础的编程语言的安装,tomcat 和 java web应用会用到。大型电商网站的详情页系统非常复杂,用到的技术栈是 java nginx lua,需要perl。
Perl 安装包到网盘下载。
把 Perl 安装包拖到 local 目录
解压缩 perl 安装包
代码语言:javascript复制tar -zxvf perl-5.16.1.tar.gz
删除 perl 安装包
代码语言:javascript复制rm -rf perl-5.16.1.tar.gz
安装 gcc
GCC 是 GNU编译器 套件。不然后续步骤会报错。
代码语言:javascript复制yum install -y gcc
配置 perl
代码语言:javascript复制cd perl-5.16.1
./Configure -des -Dprefix=/usr/local/perl
编译 Perl
代码语言:javascript复制make && make test && make install
集群配置
另外几台机器可以通过复制第一台的方式来搭建或者手动搭建,需要注意的是网络 IP 和 hosts 文件需要改下。
修改 hosts
用 SecureCRT 连接每台机器,修改每一台机器的 hosts 信息:
代码语言:javascript复制192.168.10.86 eshop-cache01
192.168.10.115 eshop-cache02
192.168.10.57 eshop-cache03
192.168.10.56 eshop-cache04
集群免密通信
每台机器先设置秘钥
每台机器都配置 ssh 登录,输入以下命令后不断回车即可。
代码语言:javascript复制ssh-keygen -t rsa
将公钥复制为authorized_keys文件,以后使用 ssh 连接本机就不需要输入密码了。
代码语言:javascript复制cd /root/.ssh
cp id_rsa.pub authorized_keys
打开 authorized_keys 文件,查看文件中是否有 eshop-cache01 的公钥信息。
测试下使用 ssh 连接本机
代码语言:javascript复制ssh eshop-cache01
会提示输入 yes/no 的命令,输入 yes,提示 Last login,就表示成功。退出登录使用 exit 命令。
下次再执行 ssh eshop-cache01,提示 Last login,也是表示连接成功。
每台机器重复上面的步骤,保证自己的机器上 authorized_keys 有自己的公钥信息。
每台机器相互免密
接着将本机的公钥拷贝到指定机器的 authorized_keys文件中。
在第二台、第三台、第四台虚拟机上执行:
代码语言:javascript复制ssh-copy-id -i eshop-cache01
然后看下第一台机器上是否有其他机器的公钥信息,可以看到第一台机器上有四台机器的公钥信息。
复制第一台机器的公钥信息到其他机器。
代码语言:javascript复制scp authorized_keys eshop-cache02:/root/.ssh
scp authorized_keys eshop-cache03:/root/.ssh
scp authorized_keys eshop-cache04:/root/.ssh
测试下其他机器是否能相互连其他机器。比如第二台机器连接第三台机器:
代码语言:javascript复制ssh eshop-cache03
连接成功命令行会显示 [root@eshop-cache03 ~] #。
OK,四台机器现在都是可以相互访问的了,集群的基础环境配置完成。
遇到的问题
四台机器突然不能连外网,试过各种方式,最后将本机的上网方式从无线连接改为有限连接,然后将虚拟机的桥接网卡
连接方式选择为有线的网卡后就好了。
参考和感谢:
http://www.passjava.cn
儒猿-亿级流量
- END -