(二)高并发redis学习笔记:从零开始在虚拟机中搭建多个节点的centos的集群(桥接版)

之前的是在学校宿舍搭建的,用了NAT模式,但是后来毕业了,成了社会人,又走了一遍,又遇到了其他奇奇怪怪的问题,所以记录一下,希望对大家有那么一丁点的帮助吧,这个是桥接版本的,很多坑都是百度解决的🤣🤣🤣…

我们要使用redis,可以再windows上装,直接到官网下载windows版本的即可,但是我们要还原在生产环境的redis环境,就要装linux系统了,通常我们在生产环境的节点不止一个,redis集群,集群部署,主从架构,也就是redis会部署在多台机器上,下面我们会一步一步搭建centOS的多个节点,主从架构,模拟生产环境。

1、在虚拟机中安装CentOS

启动一个VMWare虚拟机管理软件,这是由于我的电脑VBox总是卡死(这个需要自己下载安装)

(1)创建虚拟机:

  • 打开VMWare,点击 文件–>新建虚拟机–>选择典型模式–>下一步
  • 选择安装程序光盘映像文件–>选择CentOS-7-x86_64-Minimal-1810.iso(自行下载),下一步–>修改名字为cache01(集群的第一台机子)–>修改安装的目录(尽量不要放在c盘),一直下一步,直到完成。
  • 点击虚拟机–>编辑虚拟机设置–>选择网络–>设置为桥接模式。

(2)安装虚拟机

开启虚拟机,选择第一项(Install),选择中文,安装位置需要点进去确认再出来,开始安装,需要设置root密码为hadoop,等待安装。安装完成之后重启即可。

(3)网络初步连接

重启后输入用户名密码,登录成功,使用ifconfig

ipconfig

结果发现没有这个命令。(现在网络配置还没有连通,所以这个ifconfig解决放在后面,我们需要做的是虚拟机先可以上网先),要不啥也下载不了!!!
换了一个命令来查看机器是否有ip地址

ip addr


发现机器没有获取到ip地址,那我们就进入文件里修改一下 ,重新输入命令行:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

(这里我的网卡名称是ens33)

按i,修改ONBOOT=no 改为yes ,按ESC,输入:wq,回车

使用service network restart(有时候这个命令重启网络了还是没有用),最好是重启一下虚拟机:reboot

(4)配置网络

reboot之后,再使用ip addr我们发现已经可以看到ip地址了,同时ping baidu.com也可以ping通。说明已经连通网络了。

这个时候才能去用yum下载一个东西解决ifconfig没有的问题。
使用

yum search ifconfig

看到是在net-tools这个下面(版本号要敲一致的,太长了…)
然后使用命令行:

yum install net-tools-XXXX(后面版本号要和search出来的一致)

在中间的时候需要输入Y确定,一直确定即可,安装完成之后,我们可以看到已经可以使用ifconfig命令。

注意:ifconfig命令来源于net-tools,这个包里有ifconfig,netstat,whois等命令,linux有些不会安装这个,因此这些命令你都是运行不了的。使用yum的前提是你的虚拟机已经可以访问外网。

输入以下命令查看ip(192.168.8.181),网关ip(192.168.8.255),子网掩码(255.255.255.0)等,这个是我的机器的。

ifconfig

我们在上面已经获取到了虚拟机的IP,动态ip可能随虚拟机的重启发生改变,对开发不友好,所以我们需要配置静态的ip。

我们现在cmd中查看宿主机的ip:

ipconfig -all


宿主机的ip192.168.8.207网关192.168.8.1DNS服务器114.114.114.114114.114.115.115
我们需要将ip固定起来,因此我们需要再次修改/etc/sysconfig/network-scripts/ifcfg-ens33文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33

整理一下:

  • 动态分配的虚拟机 ip(192.168.8.181),网关ip(192.168.8.255),子网掩码(255.255.255.0)
  • 宿主机:ip192.168.8.207网关192.168.8.1DNS服务器114.114.114.114114.114.115.115

需要配置为下面这样:

BOOTPROTO=static(设置为静态)
IPADDR=192.168.X.X (之前动态分配的ip)
NETMASK=255.255.255.0(子网掩码)
GATEWAY=192.168.X.X(宿主机的网关)
DNS1=114.114.115.115
DNS2=114.114.114.114
NM_CONTROLLER=no(很重要,没有的话有时候很坑,上不了外网,百度ping不通,我一直以为自己配置错了)


在宿主机,不是虚拟机中,打开cmd命令行,用ipconfig查看ip(192.168.8.207),然后在虚拟机中去ping宿主机的ip地址,发现可以ping通。

(5)配置hosts

vi /etc/hosts
配置本机的hostname到ip地址的映射,添加:
192.168.11.133 cache01

(6)配置SecureCRT

SecureCRT,在windows宿主机中,去连接virtual box中的虚拟机
一般来说,虚拟机管理软件,virtual box,可以用来创建和管理虚拟机,但是一般不会直接在virtualbox里面去操作,因为比较麻烦,没有办法复制粘贴,比如后面我们要安装很多其他的一些东西,perl,java,redis,storm,复制一些命令直接去执行
这个需要破解,破解软件在github文件中,自己下载。
安装步骤:
解压后双击scrt735-x64.exe安装程序。
安装后将keygen_scrt_v7.x.exe复制到安装目录C:\Program Files\VanDyke Software\SecureCRT下面并运行它,点击按钮Patch,选择SecureCRT.exe,点击打开,随后会弹出一个打开对话框,选择LicenseHelper.exe即可。
将注册机上的name/company以及Serial Number等信息输入上去即可。
此时就可以使用SecureCRT从本机连接到虚拟机进行操作了

安装好之后new一个session,输入ip,端口为22,用户名为root。保存。双击session,输入密码,保存,打开就可以连接上了。

中文乱码:Session Option→appearance–>Character encoding–>(选UTF-8)

(7)关闭防火墙,

service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off

如果出现中文乱码,需要修改编码,选中session–》点击options–》session option–》appearance–》character encoding改成utf-8,确认。

vi /etc/selinux/config
SELINUX=disabled

为方便操作关闭windows的防火墙

后面要搭建集群,有的大数据技术的集群之间,在本地你给了防火墙的话,可能会没有办法互相连接,会导致搭建失败

linux下执行防火墙相关指令报错:Redirecting to /bin/systemctl restart iptables.service
大概意思是这个命令已经被重定向到另一个命令了,只能用另一个了。

1,安装systemctl:yum install iptables-services
2,设置开机启动:systemctl enable iptables.service
重启
需要换成以下命令:

systemctl stop iptables 
systemctl stop ip6tables
systemctl disable iptables
systemctl disable ip6tables

(8)配置yum

yum clean all
yum makecache
yum install wget

我们需要克隆虚拟机,先关机!!!在VMWare里右键虚拟机,快照–》拍摄快照
右键==》管理==》克隆==》下一步==》选已有快照==》完整克隆==》修改名字和安装位置==》完成(操作三次,加上一开始的,最后一共四个节点),最后要修改网络配置,也就是vi /etc/sysconfig/network-scripts/ifcfg-ens33,换一个合法范围的ip即可。

安装WinSCP,就是在windows宿主机和linux虚拟机之间互相传递文件的一个工具
网址:https://winscp.net/eng/docs/lang:chs,按照说明下载即可。
用winscp连接上之后,在secureCRT中进入/usr/local下,将东西全删掉,以后我们需要安装东西到这个目录下。

cd /usr/local/
ll
rm -rf *

2、在每个CentOS中都安装Java和Perl

(1)安装JDK

1、将jdk-8u73-linux-i586.tar.gz通过WinSCP上传到虚拟机中(/usr/local目录下)
2、安装JDK:

tar zxvf jdk-8u181-linux-x64.tar.gz

3、配置jdk相关的环境变量

vim /etc/profile

在文件的最后面加上一下的配置:


export JAVA_HOME=/usr/local/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

通过命令source /etc/profile让profile文件立即生效
4、测试jdk安装是否成功:java -version
配置完JDK后出现bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录使用下面命令:

sudo yum install glibc.i686sudo yum install glibc.i686

然后应该就可以了

(2)安装Perl

需要先安装gcc,要不安装perl的时候回报错。

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
cd perl-5.16.1
./Configure -des -Dprefix=/usr/local/perl
make 
make test
make install
perl -v

为什么要装perl?我们整个大型电商网站的详情页系统,复杂。java+nginx+lua,需要perl。

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

中间会有一个make test可能会报错,但是不要紧,直接执行make install即可

尝试了有时候wget会失效,回车什么反应都没有,没有进度条,没有成功,卸载重装就好了。

yum remove wget             卸载
yum install wget               安装

3、在4个虚拟机中安装CentOS集群

(1)按照上述步骤,再安装三台一模一样环境的linux机器
(2)另外三台机器的hostname分别设置为cache02,cache03,cache04
修改hostname命令行,将文件中的HOSTNAME改成自己想要的

vi /etc/sysconfig/network

(3)安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系

比如说,在eshop-cache01的hosts里面

vi /etc/hosts
192.168.8.181 cache01
192.168.8.182 cache02
192.168.8.183 cache03
192.168.8.184 cache04

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

我们集群之间是需要互相通信的,我们一般用ssh连接,但是这样每次连接都需要密码,所以我们需要配置好免密通信。直接输入cache02,连接是需要密码的,输入密码之后就连接上了,输入exit退出。
(1)首先在三台机器上配置对本机的ssh免密码登录

ssh-keygen -t rsa

生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下

cd /root/.ssh
cp id_rsa.pub authorized_keys

将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
(2)接着配置三台机器互相之间的ssh免密码登录
使用

ssh-copy-id -i hostname

命令将本机的公钥拷贝到指定机器的authorized_keys文件中,hostname为cache01,cache02等,中途要是需要确认则输入yes。
基于虚拟机的linux集群环境,都准备好了,手上有4台机器,后面玩儿各种redis、kafka、storm、tomcat、nginx,都有机器了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值