龙蜥操作系统安装doris集群(arrch64架构)

龙蜥操作系统安装doris集群(arrch64架构)

Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:

  1. Linux 操作系统版本需求

    Linux系统版本
    Centos7.1及以上
    Ubuntu16.04及以上
  2. 软件需求

    软件版本
    Java1.8及以上
    GCC7.3及以上
  3. l网络需求

    Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口

    在这里插入图片描述

  4. 资源规划

    node1node2node3
    FE(Leader)FE(Follower)FE(Follower)
    BEBEBE
    BROKERBROKERBROKER

    注意:

    因测试环境资源有限,FE和BE节点部署在相同服务器,生产环境建议分开

环境准备

  1. 修改三台主机名称为 node1、node2、node3

    vim /etc/hostname
    node1
    # 按esc 输入:eq 保存退出
    
  2. 配置三台主机hosts

    node1

    vim /etc/hosts
    
    # Loopback entries; do not change.
    # For historical reasons, localhost precedes localhost.localdomain:
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node1
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node1
    # See hosts(5) for proper format and other examples:
    # 192.168.1.10 foo.mydomain.org foo
    # 192.168.1.13 bar.mydomain.org bar
    
    10.211.55.13 node1
    10.211.55.14 node2
    10.211.55.15 node3
    # 按esc 输入:eq 保存退出
    

    node2

    vim /etc/hosts
    
    # Loopback entries; do not change.
    # For historical reasons, localhost precedes localhost.localdomain:
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node3
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node3
    # See hosts(5) for proper format and other examples:
    # 192.168.1.10 foo.mydomain.org foo
    # 192.168.1.13 bar.mydomain.org bar
    
    10.211.55.13 node1
    10.211.55.14 node2
    10.211.55.15 node3
    # 按esc 输入:eq 保存退出
    

    node3

    vim /etc/hosts
    
    # Loopback entries; do not change.
    # For historical reasons, localhost precedes localhost.localdomain:
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node3
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node3
    # See hosts(5) for proper format and other examples:
    # 192.168.1.10 foo.mydomain.org foo
    # 192.168.1.13 bar.mydomain.org bar
    
    10.211.55.13 node1
    10.211.55.14 node2
    10.211.55.15 node3
    # 按esc 输入:eq 保存退出
    

    使用ping命令测试配置的hosts是否网络畅通,以node1主机ping node2为例

    ping node2
    
  3. 安装并配置jdk

    1. 首先下载jdk,最好是jdk1.8及以上的版本,下载之前需要确定系统的架构

      uname -a #查看系统架构
      
      Linux node1 5.10.134-14.1.an23.aarch64 #1 SMP Thu May 25 19:50:35 CST 2023 aarch64 GNU/Linux
      

      jdk下载链接如下:https://www.oracle.com/java/technologies/downloads/?er=221886#java8

      官网提供的下载速度较慢并且还需要登录,推荐使用国内链接

      华为提供的下载服务:Index of /mirrors_toolkit/java/jdk/

    2. 在服务器创建目录将下载的jdk安装包上传到创建的目录下

      mkdir -p /data/software/jdk
      
    3. 解压jdk并重新命名

      tar -xvf jdk-8u401-fcs-bin-b10-linux-aarch64-19_dec_2023.tar
      mv jdk1.8.0_401-bin jdk1.8.0_401
      
    4. 配置JAVA_HOME

      vim /etc/profile
      
      # JAVA_HOME
      export JAVA_HOME=/data/software/jdk/jdk1.8.0_401
      export PATH=$JAVA_HOME/bin:$PATH
      
      # 按esc 输入:eq 保存退出
      
    5. 是配置生效

      source /etc/profile
      
      java -version #查看配置是否生效
      java version "1.8.0_401"
      Java(TM) SE Runtime Environment (build 1.8.0_401-b10)
      Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
      
      echo $JAVA_HOME #查看JAVA_HOME的配置目录
      /data/software/jdk/jdk1.8.0_401
      
      #以上的命令都能正确输出说明JAVA_HOIME配置成功
      

doris安装

  1. 下载doris安装包

    doris的下载地址:https://doris.apache.org/zh-CN/download

  2. 在服务器创建目录将下载的doris安装包上传到创建的目录下

    mkdir -p /data/software/doris
    
  3. 解压上传的doris安装包,并重新命名

    tar -xvf apache-doris-2.1.3-bin-arm64.tar
    mv apache-doris-2.1.3-bin doris2.1.3 #重命名时建议保留版本号,后续升级的时候比较直观的看到版本号
    
  4. 配置fe

    1. 进入doris2.1.3/fe目录下,创建fe的元数据存储目录

      cd /data/software/doris/doris2.1.3/fe
      mkdir doris-meta
      
    2. 进入fe的conf目录下配置fe.conf,总共需要修改三个地方,添加JAVA_HOME,配置meta_dir,修改绑定ip: priority_networks

      cd /data/software/doris/doris2.1.3/fe/conf
      vim fe.conf
      
      JAVA_HOME=/data/software/jdk/jdk1.8.0_401
      meta_dir = /data/software/doris/doris-2.1.3/fe/doris-mate
      priority_networks = 10.211.55.13/24
      
      # 按esc 输入:eq 保存退出
      
  5. 配置be

    1. 进入doris2.1.3/be目录下,并创建be的数据存储目录,建议将be的存储目录创建在磁盘容量最大的盘符,并且不与fe的存储目录创建在同一个磁盘

      df -h #查看磁盘
      
      件系统                    大小  已用  可用 已用% 挂载点
      devtmpfs                    4.0M     0  4.0M    0% /dev
      tmpfs                       2.0G     0  2.0G    0% /dev/shm
      tmpfs                       786M  1.1M  785M    1% /run
      /dev/mapper/ao_anolis-root   41G   17G   25G   41% /
      tmpfs                       2.0G  176K  2.0G    1% /tmp
      /dev/sda2                  1014M  165M  850M   17% /boot
      /dev/mapper/ao_anolis-home   20G  253M   20G    2% /home
      /dev/sda1                   599M  6.4M  593M    2% /boot/efi
      tmpfs                       393M   36K  393M    1% /run/user/42
      tmpfs                       393M   20K  393M    1% /run/user/0
      
      mkdir -p /home/disk1/doris
      cd /data/software/doris/doris2.1.3/be
      
    2. 进入be的conf目录下配置be.conf,总共需要修改三个地方,添加JAVA_HOME,配置storage_root_path,修改绑定ip: priority_networks

      cd /data/software/doris/doris2.1.3/be/conf
      vim be.conf
      
      JAVA_HOME=/data/software/jdk/jdk1.8.0_401
      storage_root_path = /home/disk1/doris
      priority_networks = 10.211.55.13/24
      
      # 按esc 输入:eq 保存退出
      
  6. 配置doris的环境变量

    vim /etc/profile
    
    #DORIS_HOME
    export DORIS_HOME=/data/software/doris/doris-2.1.3
    export PATH=:$DORIS_HOME/bin:$PATH
    # 按esc 输入:eq 保存退出
    
    source /etc/profile #使配置生效
    
  7. 分别在node2,node3创建data目录并分发jdk,doris的安装目录到node2,node3的data目录

    mkdir /data
    scp -r /data/software/ root@node2:/data
    scp -r /data/software/ root@node3:/data
    
    scp /etc/profile root@node2:/etc/profile
    scp /etc/profile root@node3:/etc/profile
    
    # 分别到node2,node3执行以下命令
    source /etc/profile
    
  8. 分别修改node2,node3的doris的fe.conf和be.conf的priority_networks,并在node2,node3创建fe,be的存储目录,下面以node2为例,node3与此类似

    mkdir -p /home/disk1/doris
    cd /data/software/doris/doris2.1.3/fe/conf
    vim fe.conf
    
    JAVA_HOME=/data/software/jdk/jdk1.8.0_401
    meta_dir = /data/software/doris/doris-2.1.3/fe/doris-mate
    priority_networks = 10.211.55.14/24
    
    # 按esc 输入:eq 保存退出
    
    cd /data/software/doris/doris2.1.3/be/conf
    vim be.conf
    
    JAVA_HOME=/data/software/jdk/jdk1.8.0_401
    storage_root_path = /home/disk1/doris
    priority_networks = 10.211.55.13/24
    
    # 按esc 输入:eq 保存退出
    

启动doris

  1. 在node1中需要先做一些设置保证be能够正常启动

    1. 修改可打开的文件数

      ulimit -n 65535
      
    2. 禁用分区

      swapoff -a
      

    注意:以上的设置都是临时的,当当前的会话关闭后将失效

  2. 启动node1的fe

    sh data/software/doris/doris2.1.3/fe/bin/start_fe.sh --daemon
    # 日志默认存放在 fe/log/ 目录下
    jps # 查看fe是否启动
    3616 DorisFE
    99476 Jps
    
    1. 使用mysql连接,mysql安装可以到网上搜教程,或者查看我的这篇文章https://blog.csdn.net/qq123po/article/details/139665393?spm=1001.2014.3001.5502

      mysql -uroot -P9303 -h127.0.0.1
      
      # 登陆后,可以通过以下命令修改 root 密码
      SET PASSWORD FOR 'root' = PASSWORD('123456');
      
    2. 添加be节点

      # 登录后添加BE节点port为be上的heartbeat_service_port端口,默认9050
      ALTER SYSTEM ADD BACKEND "node1:9050";
      
      ALTER SYSTEM ADD BACKEND "node2:9050";
      
      ALTER SYSTEM ADD BACKEND "node3:9050";
      
    3. 添加fe节点

      FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。

      第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。

      添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行:

      ALTER SYSTEM ADD FOLLOWER "node2:9010";
      ALTER SYSTEM ADD OBSERVER "node3:9010";
      
  3. 启动node1的be

    sh data/software/doris/doris2.1.3/be/bin/start_be.sh --daemon
    
    # 日志默认存放在 fe/log/ 目录下
    
    jps # 查看fe是否启动
    3616 DorisFE
    99476 Jps
    9959 DorisBE
    
  4. 启动node2,node3的fe

    1. 启动fe节点

      第一次启动时,需执行以下命令:

      ./bin/start_fe.sh --helper host:port --daemon
      

      其中 host 为 Leader 所在节点 ip, port 为 Leader 的配置文件 fe.conf 中的 edit_log_port。–helper 参数仅在 follower 和 observer 第一次启动时才需要。

      查看 Follower 或 Observer 运行状态。使用 mysql-client 连接到任一已启动的 FE,并执行:SHOW PROC ‘/frontends’; 可以查看当前已加入集群的 FE 及其对应角色。

      FE 扩容注意事项:

      Ø Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可

      Ø 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的

      Ø 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常 3 个即可满足绝大部分需求

      helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE

      删除fe节点

      使用以下命令删除对应的 FE 节点:

      ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
      

      FE 缩容注意事项:

      删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数

      启动node2节点(指定leader节点的位置

      sh data/software/doris/doris2.1.3/fe/bin/start_fe.sh --helper node1:9010 --daemon
      

      启动node3节点(指定leader节点的位置

      sh /export/server/apache-doris-0.13.0/fe/bin/start_fe.sh --helper node1:9010 --daemon
      

      查看fe节点列表

      SHOW PROC '/frontends'
      
    2. BE 扩容和缩容

      BE 节点的扩容和缩容过程,不影响当前系统运行以及正在执行的任务,并且不会影响当前系统的性能。数据均衡会自动进行。根据集群现有数据量的大小,集群会在几个小时到1天不等的时间内,恢复到负载均衡的状态。集群负载情况,可以参见 Tablet 负载均衡文档

      增加 BE 节点

      BE 节点的增加方式同 BE 部署 一节中的方式,通过 ALTER SYSTEM ADD BACKEND 命令增加 BE 节点。

      BE 扩容注意事项:

      BE 扩容后,Doris 会自动根据负载情况,进行数据均衡,期间不影响使用

      删除 BE 节点

      删除 BE 节点有两种方式:DROP 和 DECOMMISSION

      DROP 语句如下:

      ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
      

      注意事项:

      DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。

      DECOMMISSION 语句如下:

      ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
      

      DECOMMISSION 命令说明:

      • 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。Ø 该命令是一个异步操作。执行后,可以通过 SHOW PROC ‘/backends’; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。Ø 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。
      • DECOMMISSION 的进度,可以通过 SHOW PROC ‘/backends’; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。Ø 该操作可以通过: CANCEL DECOMMISSION BACKEND “be_host:be_heartbeat_service_port”; 命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡

      Broker 实例的数量没有硬性要求。通常每台物理机部署一个即可。Broker 的添加和删除可以通过以下命令完成:

      ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port"; 
      ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port";
      ALTER SYSTEM DROP ALL BROKER broker_name;
      

      Broker 是无状态的进程,可以随意启停。当然,停止后,正在其上运行的作业会失败,重试即可。

到此,doris集群安装完成,感谢您的阅读,希望这篇文章可以对您有稍微的帮助。

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沂蒙山旁的水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值