这里还是建议有条件的用用魔法啥的。
根据个人环境选择x86_64。
个人比较推荐163和阿里云的镜像:
点击之后耐心等待下载即可。
嗯哼,个人用的是绿化版,怕作者网站被爆这里就不提供链接和操作说明了。
个人建议安装好一台之后,利用拷贝虚拟机的方式复制三份系统,并且在文件管理中用目录区分,方便换电脑或者迁移的时候可以快速恢复使用。
比如下面个人的简单划分方式。
这里个人选择“稍后安装操作系统”,也可以直接架在程序光盘映象文件。
个人笔记本电脑配置尚可,这里给了双核。
内存分配个1G即可,也可以酌情按需增加。
这里选择NAT,如果不嫌IP变化麻烦,可以是用“桥接网络”。
后面一直下一步即可,直到出现下面的画面。磁盘大小可以按照需要进行分配。
按照完全自定义的方式安装,此时需要自己手动指定一下操作系统的镜像文件位置:
启动虚拟机,看到如下界面之后选择第一个。
耐心等待安装程序引导。选择语言,这里建议选择英文,顺带锻炼下英文水平:
进入下一步之后,通常需要确认一下操作系统安装到哪一块磁盘上面。
不熟悉Linux的分区设置直接使用官方默认的配置即可(如果要手动设置分区可以选择下面的“Iwillconfigurepartitioning”)。
接着手动设置一下网卡,这里记得开启一下开关,否则安装之后无法自动联网(需要手动调整一下网卡开关)。
CenterOs系统一般都是用于服务器使用,大多数情况下都是静态IP,所以默认是不开启网卡的。
由于是最小化安装,自己可以干的事情有限,这里我们直接下一步即可。
之后是设置root密码和构建自定义用户,如果用户密码强度过低点击“Done”可能会没有任何反应,但是可以通过两次点击“Done”给强制通过。
这里放一下个人的操作root密码是经典的root。
另外新建一个伪root用户,用于自己登陆操作(不建议养成root登陆的习惯)。
如果想要自定用户具备sudo权限,需要勾选“Makethisuseradministrator”。
设置之后点击右下角即可。耐心等待片刻。
重启,CenterOs7安装完成。
如果是具备sudo权限的普通用户,通常能流畅执行下面的指令。
sudoyuminstall-yvim4.设置静态IP设置静态IP之前这里先介绍一下个人网络情况。
菜单->编辑->虚拟网络编辑器,记录并修改IP网段和网关地址,或者直接用默认生成的配置:
网关IP如下,这里需要记忆一下这个IP,等下会使用上:
这里的IP为:192.168.154.2。
根据前面的截图,这里总结下个人的配置。
子网IP:
192.168.154.0子网掩码:
255.255.255.0网关IP:
192.168.154.2修改虚拟机网卡配置大部分情况下默认给的网卡都是ens33。
vi/etc/sysconfig/network-scripts/ifcfg-ens33首先把BOOTPROTO的值进行修改。
BOOTPROTO=static在网卡配置中进行修改。
IPADDR=192.168.154.128ETMASK=255.255.255.0GATEWAY=192.168.154.2DNS1=8.8.8.8DNS2=114.114.114.114设置完成之后重启。
systemctlrestartnetwork最后使用命令ipaddr检查。
最后个人三台机器的配置如下:
第一台机器7911
BOOTPROTO=staticIPADDR=192.168.154.128ETMASK=255.255.255.0GATEWAY=192.168.154.2DNS1=8.8.8.8DNS2=114.114.114.114第二台机器7912
BOOTPROTO=staticIPADDR=192.168.154.131ETMASK=255.255.255.0GATEWAY=192.168.154.2DNS1=8.8.8.8DNS2=114.114.114.114第三台机器7913
BOOTPROTO=staticIPADDR=192.168.154.130ETMASK=255.255.255.0GATEWAY=192.168.154.2DNS1=8.8.8.8DNS2=114.114.114.1145.检查NetManager的状态代码语言:shell复制systemctlstatusNetworkManager.service结果:
[xander@localhost~]$systemctlstatusNetworkManager.service●NetworkManager.service-NetworkManagerLoaded:loaded(/usr/lib/systemd/system/NetworkManager.service;enabled;vendorpreset:enabled)Active:active(running)sinceSun2023-06-1822:18:57EDT;2daysagoDocs:man:NetworkManager(8)MainPID:686(NetworkManager)CGroup:/system.slice/NetworkManager.service└─686/usr/sbin/NetworkManager--no-daemon6.检查NetManager管理的网络接口代码语言:shell复制nmclidevstatus运行结果如下:
[xander@localhost~]$nmclidevstatusDEVICETYPESTATECONNECTIONens33ethernetconnectedens33loloopbackunmanaged--7.检查NetManager管理的网络连接代码语言:shell复制nmcliconnectionshow代码语言:shell复制[xander@localhost~]$nmcliconnectionshowNAMEUUIDTYPEDEVICEens33b749bcf8-eeeb-446f-bb42-30a333da7328ethernetens338.设置dns代码语言:shell复制nmcliconmodens33ipv4.dns"114.114.114.1148.8.8.8"9.让dns配置生效代码语言:shell复制nmcliconupens33代码语言:shell复制[root@localhostxander]#nmcliconupens33Connectionsuccessfullyactivated(D-Busactivepath:/org/freedesktop/NetworkManager/ActiveConnection/4)10.配置host查看主机名称查看主机名的命令如下:
hostnamehosts文件的格式如下:
[root@localhostxander]#vi/etc/hosts127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
1
IP地址主机名/域名主机名别名
第一部份:网络IP地址
第二部份:主机名或域名
第三部份:主机名别名
根据自己的需要修改host即可。
默认情况如下:
[root@localhostxander]#hostnamelocalhost.localdomain为了方便三台虚拟机快速进行通信,这里用同一份主机解析配置。
下载之后需要把文件传输到Linux服务器,传输之后在服务器执行下面的指令:
[root@localhostxander]#lsjdk1.8.0_202jdk-8u202-linux-x64.tar.gz代码语言:shell复制[root@localhostxander]#tar-zxvfjdk-8u202-linux-x64.tar.gz解压后把文件放到指定位置,个人放到了/opt的文件目录下。
vim/etc/bashrc在这个文件的末尾添加下面的内容:
#Java_Home改为自己对应的目录即可。exportJAVA_HOME=/opt/jdk1.8.0_202exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexportPATH=${JAVA_HOME}/bin:$PATH修改之后source一下让配置修改生效。
source/etc/bashrc接着运行javac、java、java-version这些明命令即可。
注意下载是带bin的包,不带Bin为源码包。
下载安装包之后,把tar包迁移到对应的位置。
[root@localhostxander]#mvapache-zookeeper-3.5.10-bin.tar.gz/opt/zookeeper/zk3.5.10/接着我们需要修改ZK的配置文件。
[root@localhostconf]#pwd/opt/zookeeper/zk3.5.10/zk3510/conf[root@localhostconf]#mvzoo_sample.cfgzoo.cfg修改zoo.cfg配置,在末尾添加下面的内容。
server.1=zknode1:2888:3888我们可以把他看作是四个部分:
然后我们修改数据文件目录的存放位置,如果有必要可以添加添加dataLogDir存储位置:
[root@localhostbin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfgStartingzookeeper...FAILEDTOSTART启动失败不要慌,先观察一下状态:
[root@localhostbin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfgClientportfound:2181.Clientaddress:localhost.ClientSSL:false.Errorcontactingservice.Itisprobablynotrunning.接着根据日志排查原因:
在vim打开文件之后,使用冒号进入到命令模式,然后敲入下面的内容:
Causedby:java.lang.IllegalArgumentException:myidfileismissingmyid配置上面的报错意味着我们需要在dataDir中构建对应的myid以及对应的id文件。
echo"1">/opt/zookeeper/zk3.5.10/dataDir/myid为什么要弄个这样奇怪的文件,只能说照做就行了,这个配置是让ZK知道当前所处的集群使用哪一份配置。此外需要注意切换到其他的服务器需要修改这个echo"1"的值。
也可以直接修改myid中的标识
比如个人的xxxx.131是第二台机器,这里的命令就需要用:
echo"2">/opt/zookeeper/zk3.5.10/dataDir/myid个人的xxxx.130是第三台机器,命令如下:
echo"3">/opt/zookeeper/zk3.5.10/dataDir/myid吐槽一下这个设计不是很好理解
通过上面的处理之后我们再次尝试启动。
[root@localhostbin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfgStartingzookeeper...STARTED日志上看是启动成功了,我们看下日志打印情况。
我们目前有三台服务器,但是只启动了一台,根据集群规则,zookeeper集群还没有达到半数服务器运行,集群无法正常运行。
接下来就是一些重复性劳动,我们需要在其他几台机器执行上面提到的配置JDK和ZK的配置操作。
也可以去网上找些sync的脚本,在机器很多的时候很有必要,3台的工作量还不是很大。
7912(IP为131)第二台机器被选择为Leader。
7911(IP为128)第一台服务器变为Follow。
剩下最后一台当然也是Follow。
当然我们也可以利用zkServer.shstatus这样的命令查看每个节点当前运行状态。
[root@localhostbin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfgClientportfound:2181.Clientaddress:localhost.ClientSSL:false.Mode:follower代码语言:shell复制[root@zknode2zk3510]#./bin/zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper/zk3.5.10/zk3510/bin/../conf/zoo.cfgClientportfound:2181.Clientaddress:localhost.ClientSSL:false.Mode:leader如果出现上面的信息,说明你的集群已经搭建成功了。
本着最简单原则,这里提供本文个人实验导出的Java和ZK配置文件夹。你只需要把两个文件夹放到/opt就可以快速检索本文的配置复制粘贴即可,唯一麻烦的地方可能是myid的配置需要自己修改。
这一套配置个人最后在另一台电脑按照步骤操作之后集群很快搭建了。
apache-zookeeper-3.6.1.tar.gz这个压缩包,这个压缩包都是zookeeper的源码,并不是经过编译后的包,所以启动时肯定会失败。解决办法只需要使用Bin包重新处理即可。