前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >捣鼓了一天,「集群环境」有了

捣鼓了一天,「集群环境」有了

作者头像
悟空聊架构
发布2022-05-13 14:59:06
4250
发布2022-05-13 14:59:06
举报
文章被收录于专栏:悟空聊架构 | 公众号

大家好,我是悟空。

周末宅在家里,捣鼓了一天,在本地用虚拟机搭建了 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 -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 悟空聊架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置虚拟机
    • 创建虚拟机
      • 配置网络
        • 启动虚拟机
          • 配置网络
            • 配置 hosts
              • 安装 SecureCRT
                • 关闭防火墙
                  • 安装 yum 工具
                  • 安装软件
                    • 安装 WinSCP
                      • 清理 local 目录
                        • 安装 Java JDK 7
                          • 把 JDK 7 rpm 包拖到 local 目录
                          • 安装 JDK
                          • 删除 JDK 安装包
                          • 配置环境变量
                        • 安装 Perl
                        • 集群配置
                          • 修改 hosts
                            • 集群免密通信
                              • 每台机器先设置秘钥
                              • 每台机器相互免密
                          • 遇到的问题
                          相关产品与服务
                          云数据库 Redis
                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档