我是靠谱客的博主 内向狗,最近开发中收集的这篇文章主要介绍CentOS7安装部署Dubbo+Zookeeper集群创建虚拟机网络配置单节点Dubbo的安装部署Dubbo+zookeeper集群的部署克隆虚拟机,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大数据平台,一听就很高大上的名词,根据网上教程照葫芦画瓢,一步一个坑,搞一个简单的 dubbo + zookeeper分布式集群。

创建虚拟机

创建虚拟机利用VM创建虚拟机,选择自定义然后基本是一路默认选项(期间选择稍后安装系统并选择CentOS-64位),网络模式可选择桥接或NAT模式,我选择的是桥接网络,最后加载自己的映像Linux系统CentOS-7,启动安装即可,主要就是root用户的密码设置。
稍后安装系统使用桥接网络

自定义硬件-映像文件选择centos映像文件

网络配置

等待安装完成,进入后进行网络配置

  1. 修改网络配置文件ifcfg-ens33,添加配置信息IPADDR、NETMASK、GATEWAY、BOOTPROTO、ONBOOT以及DNS:
    [root@Test test]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"            #静态路由
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    #UUID="xxxx-xx-xx-xx-xxxx"
    DEVICE="ens33"
    ONBOOT="yes"                  #重启激活
    IPADDR=192.168.1.x            #IP地址
    NETMASK=255.255.255.0         #子网掩码
    GATEWAY=192.168.1.1           #网关
    DNS1=211.138.180.3             #DNS
    DNS2=114.114.114.114
  2. 在etc/resolve.conf 中添加对应的DNS:
    [root@Test test]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
    #Created by anaconda
    nameserver 114.114.114.114        
    nameserver 8.8.8.8           
  3. 重启网络 service network restart
  4. 查看网络是否正常,可以ping百度表示网络没有问题
    ping www.baidu.com
    ping通百度

单节点Dubbo的安装部署

Dubbo的安装部署前提是: jdk 、zookeeper、tomcat。连接Xshell传输在官网下载的安装包(jdk、zookeeper和tomcat都是tar.gz)或者可以直接用yum安装。

1. 安装配置jdk

我选择的是jdk1.8.0_261,如果自己选择的话需要注意版本的兼容性,如果是jdk1.8则tomcat最好选择8以上版本才不会出现兼容问题,我选择的是tomcat-8.5.57。

  1. 在 Xshell 中上传压缩包到虚拟机中,rz -E时提示rz not command,yum安装lrzsz即可 安装上传lrzsz命令
  2. 安装 rzsz 之后,rz -E上传对应的 jdk 和 tomcat 的tar.gz压缩包
  3. 上传到自己指定的目录下(该路径在后面配置环境变量时很重要)
    上传压缩包 上传后目录中包含该文件
  4. 然后在安装目录直接解压文件
    [root@Test test]# tar zxvf jdk-8u261-linux-x64.tar.gz
    解压后目录文件
    (Ps:如果觉得名字太长,可以用 mv 文件名 新文件名 的方法进行修改(环境变量也需要对应修改))
  5. 在/etc/profile文件中配置java的环境变量
    [root@Test test]# vi /etc/profile
    #set jdk environment
    export JAVA_HOME=/root/dubbo/jdk1.8.0_261
    export PATH=.:$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    JDK配置环境
  6. 环境变量配置生效,并查看安装是否成功
    [root@Test test]# source /etc/profile
    java 版本

2. 安装zookeeper

  1. 上传安装包zookeeper-3.4.12.tar.gz到相同目录,然后解压
  2. 进入zookeeper的conf/目录下,将zoo_sample.cfg文件修改为zoo.cfg,修改zoo.cfg中的dataDir存储路径为自定义的data目录
    [root@Test conf]# mv zoo_sample.cfg zoo.cfg
    [root@Test conf]# vi zoo.cfg
    zoo配置文件--dataDir
  3. 然后进入bin目录下启动zookeeper
    [root@Test bin]# ./zkServer.sh start
    启动zk
    查询zookeeper的状态
    [root@Test bin]# ./zkServer.sh status
    查询zk
  4. 需要将2181端口加入到防火墙的安全组中,或者可以将防火墙关闭之后重启zookeeper
    [root@Test bin]# firewall-cmd --zone=public --add-port=2181/tcp --permanent
    重新加载防火墙规则并查看是否已经加入2181端口
    [root@host-192-168-4-90 bin]# firewall-cmd --reload
    root@host-192-168-4-90 bin]# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: eth0
      sources: 
      services: ssh dhcpv6-client
      ports: 2181/tcp     #新添加的端口
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
    暂时关闭/禁用虚拟机的防火墙
    [root@Test bin]# systemctl stop/disable firewalld

3. 安装tomcat

  1. 上传压缩包并解压
    [root@Test test]# tar zxvf apache-tomcat-8.5.57.tar.gz
  2. 进入tomcat的bin目录下,启动tomcat
    [root@Test bin]# ./startup.sh start
    tomcat启动
  3. 启动之后还是无法在网页通过IP:8080访问tomcat主页,因为防火墙没有添加安全组端口8080(这是tomcat默认端口号,可以在conf/目录下的server.xml文件中修改Connector Port),添加安全组端口8080后需要reload防火墙规则,然后便可以通过8080访问
    [root@Test bin]# firewall-cmd --add-port=8080/tcp --permanent
    添加安全组访问dubbo

4. 安装部署Dubbo

  1. 官网下载安装包dubbo-admin.war,然后上传到tomcat的webapps/ROOT下目录,然后利用unzip解压war包,选择y或者是A将ROOT目录下的文件覆盖
    [root@Test bin]# unzip dubbo-admin-2.5.4.war
    (Ps:其中也是有版本兼容问题的,所以选择时最好了解清楚,我选择的dubbo-admin-2.5.4和jdk1.8、tomcat-8是没有兼容问题的)
  2. 进入解压路径(webapps/ROOT/WEB-INF)下,修改dubbo.properties文件,ip是注册中心的ip即zookeeper所在主机的ip,而后面两个是root和guest用户登录的密码
    [root@Test bin]# vi dubbo.properties
    dubbo.registry.address=zookeeper://192.168.1.x:2181    #自己主机ip
    dubbo.admin.root.password=root
    dubbo.admin.guest.password=guest
    Ps:ip原来是127.0.0.1,如果dubbo-admin管控台和zookeeper不在同一台主机上,需要设为zookeeper所在的主机ip;否则默认127.0.0.1不改也可以。
  3. 在启动zookeeper和tomcat之后可以用8080端口访问dubbo-admin的网页管理控制台,IP:8080/ 可以直接访问到dubbo管控台,可以root或guest登录。
    (ps:①要先启动zookeeper再启动tomcat;②防火墙如果不关闭,就要添加相应的安全组端口,否则无法访问)
    访问dubbo-admin
    至此,上述单机节点上部署dubbo已经完成,环境部署是jdk1.8.0_261、zookeeper-3.4.12和tomcat-8.5.57以及dubbo-admin-2.5.4。过程总结来说是:①jdk——解压、环境变量的配置、配置生效;②zookeeper——解压、更改zoo.cfg配置信息dataDir、添加防火墙安全组端口、启动服务;③tomcat——解压、添加防火墙安全组端口、启动服务;④dubbo——解压到tomcat的/webapps/ROOT/目录下、修改dubbo属性配置文件、访问。

5. 开机自启动

按上述步骤我们实现了dubbo的部署,但是每次开机或重启需要重新进入zookeeper和tomcat的bin目录启动服务很繁琐,所以可以设置zookeeper和tomcat的开机自启动服务。

  1. Zookeeper的开机自启动
    ①方法一:在 /etc/rc.local中添加下面两行,然后对该文件的读写运行权限设为最高
    [root@Test ~]# vi /etc/rc.local
    [root@Test ~]# chmod 777 /etc/rc.d/rc.local
    export JAVA_HOME=/root/test/jdk1.8.0_261
    /root/test/zookeeper-3.4.12/bin/zkServer.sh start
    ②方法二:利用服务脚本的方式
    (1)进入/etc/init.d目录下,创建zookeeper并添加脚本,编辑zookeeper脚本,保存退出即可
    [root@Test init.d]# vi zookeeper
    #!/bin/bash
    #chkconfig:2345 20 90
    #description:zookeeper
    #processname:zookeeper
    ZK_PATH = /root/test/zookeeper-3.4.12     #自己的jdk和zk安装路径
    export JAVA_HOME=/root/test/jdk1.8.0_261
    case $1 in
              start) su $ZK_PATH/bin/zkServer.sh start;;
              stop) su $ZK_PATH/bin/zkServer.sh stop;;
              status) su $ZK_PATH/bin/zkServer.sh status;;
              restart) su $ZK_PATH/bin/zkServer.sh restart;;
              *)  echo "require start|stop|status|restart"  ;;
    esac
    (2)保存脚本后,利用chkconfig将其注册为服务
    [root@Test init.d]# chkconfig --add zookeeper
    (3)可以利用service zookeeper start来测试是否已经注册为服务,如果提示权限不足,修改zookeeper的权限即可
    [root@Test init.d]# service zookeeper start
    [root@Test init.d]# chmod +x zookeeper
    [root@Test init.d]# service zookeeper status
    zk自启动
    (4)也可以用 ps -ef|grep zookeeper 检查zk服务启动情况
  2. Tomcat的开机自启动
    (1)修改tomcat的catalina.sh文件,在tomcat的bin目录下修改catalina文件增加一行
    [root@Test bin]# vi catalina.sh
    CATALINA_PID="$CATALINA_BASE/tomcat.pid"
    tomcat自启动
    (2)在/usr/lib/systemd/system/目录下添加tomcat.service文件(也是脚本)
    [root@Test init.d]# vi /usr/lib/systemd/system/tomcat.service
    [Unit]
    Description=Tomcat
    After=syslog.target network.target remote-fs.target nss-lookup.target 
    [Service]
    Type=forking 
    
    Environment="JAVA_HOME=/root/test/jdk1.8.0_261"   #自己的jdk安装路径
    
    PIDFile=/root/test/apache-tomcat-8.5.57/tomcat.pid
    ExecStart=/root/test/apache-tomcat-8.5.57/bin/startup.sh
    ExecStop=/bin/kill -s QUIT $MAINPID
    ExecReload=/bin/kill -s HUP $MAINPID
    PrivateTmp=true 
    
    [Install]
    WantedBy=multi-user.target
    (3)重新加载配置文件,配置生效
    [root@Test init.d]# systemctl daemon-reload
    (4)启动和查看状态的测试,并将其添加到自启动中
    [root@Test bin]# systemctl start tomcat.service
    [root@Test bin]# systemctl status tomcat.service(状态是running就是开启)
    [root@Test bin]# systemctl enable tomcat.service

Dubbo+zookeeper集群的部署

前面我们在单机节点上部署了jdk、zookeeper、tomcat和dubbo,如何部署zookeeper集群并且实现依旧能访问dubbo-admin管控台,这里我们采用三台虚拟机作为zookeeper集群部署的节点。

1. 安装jdk

每台虚拟机节点上安装配置jdk,同单节点dubbo集群部署的过程。重复部署太繁琐,可以将某一台配置好的jdk文件发送到另外两个虚拟机上。即利用命令[root@Test bin]# scp -r 要发送的文件路径+文件名 root@目标主机IP:要保存到的路径比如,将jdk从本机发送到192.168.1.110主机的root/java文件目录下,该java目录必须是已经存在的。
[root@Test test]# scp -r jdk1.8.0_261 root@192.168.1.110:/root/java

2. 安装部署zookeeper集群

每个节点的安装部署zookeeper的过程和单节点是一样的。不同的地方在于配置文件的信息需要添加另外两个节点的相关信息。我们选取其中一个机器的部署说明。

  1. 首先对zookeeper的conf/目录下zoo.cfg的修改,除了dataDir路径的修改,需要添加如下三行表示三个节点的ip信息
    server.myid=IP:2888:3888
    其中server.myid,这个myid是每个节点的标识,2888是这个服务器与集群中的 Leader 服务器交换信息的端口;3888是选举端口,即万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是在伪分布集群中,因为ip都是一样的,则两个通信端口和选举端口必须是不同的,即不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。每个节点机器都配置该zoo.cfg文件很繁琐,因为信息都是一样的,可以直接使用scp命令传输该文件即可。
  2. 在对应的zoo.cfg配置的dataDir目录下创建myid文件,其中存放的就是server.id中的id标识,比如server.1就在dataDir目录下创建的myid中放入数字“1”即可。
    [root@Test data]# vi myid(myid中放入数字“1”)
    如server.1的myid文件中,用命令cat查看如下:
    myid设置
  3. 启动zookeeper集群在每个机器上启动zookeeper即可
    [root@Test bin]./zkServer.sh start
    再查询service zookeeper status时会给出当前节点在集群中的角色,如下结果
    [root@Test test]# service zookeeper status(该命令在开机自启动设置后可使用)
    zk集群状态查看
    如此表示该zookeeper集群是正常启动的,其中集群中只有一个leader节点,其他都是follower节点,如果超过一半节点宕机则集群无法启动,leader崩溃会自动选出下一个leader节点。
  4. 停止zookeeper集群在每台机器上停止zookeeper即可
    ./zkServer.sh stop
    至此,一台机器上的zookeeper集群配置信息就搞定了,接下来就是其他的节点了,重复过程很繁琐,所以可以将上述的zoo.cfg和myid文件直接发送到其他节点的相应位置即可,只要修改myid中的数字标识即可。

3. 安装tomcat

在主节点(随便选取一个节点即可)上安装tomcat,同单节点的安装。

4. 安装dubbo

在安装tomcat的节点上安装dubbo,过程同单节点的安装,只是在修改配置文件dubbo.properties时,注册中心的地址写当前主机的ip后面可以接备份节点的ip。
dubbo集群注册中心
如此同上,可以通过http://主节点ip:8080/dubbo-admin访问 dubbo-admin 的管控台页面。

克隆虚拟机

不可能每个虚拟机都从头开始新建,我们可以通过克隆虚拟机,可以保留安装的内容和环境变量的配置,从而减少冗余操作。

  1. 克隆虚拟机
    在需要克隆的虚拟机(其实也算是一种备份)关闭,直接克隆完整文件即可。我们可以在一台虚拟机安装好 jdk 和 zookeeper 的基础上,再进行克隆,如此可以减少冗余操作,某种程度上就是将被克隆的虚拟机作为备份。
  2. 修改ip和主机名称
    在克隆的虚拟机中存在一个问题就是ip、主机名和原虚拟机ip、主机名是一样的,所以我们需要修改其ip地址和主机名称。
    (1)修改 /etc/sysconfig/network-scripts/ifcfg-ens33 中的配置文件
    [root@Test test]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
    NAME="ens33"
    #UUID="xxxx-xxx-xxx-xxx-xxxxx"    #注释掉
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR=192.168.1.x                #修改后的ip
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=211.138.180.3
    DNS2=114.114.114.114
    其中IPADDR是当前虚拟机的修改后ip,UUID是Mac地址,可注释、删除或是用uuidgen命令随机生成一个使用。
    (2)修改主机名,并在/etc/hosts文件中加入该主机ip与名称的映射关系,在/network文件中加入如下信息
    [root@Test test]# hostname Test02
    [root@Test test]# vi /etc/hosts
    192.168.1.x  Test02    # ip  主机名
    [root@Test test]# vi /etc/sysconfig/network
    #Created by anaconda
    NETWORKING=yes
    HOSTNAME=your_name     #修改后的hostname
    (3)重启网络之后hostname可查看到名称改变
    [root@Test test]# service network restart
    [root@Test test]# hostname

最后

以上就是内向狗为你收集整理的CentOS7安装部署Dubbo+Zookeeper集群创建虚拟机网络配置单节点Dubbo的安装部署Dubbo+zookeeper集群的部署克隆虚拟机的全部内容,希望文章能够帮你解决CentOS7安装部署Dubbo+Zookeeper集群创建虚拟机网络配置单节点Dubbo的安装部署Dubbo+zookeeper集群的部署克隆虚拟机所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部