• 【Doris实战】Apache-doris-2.0.2部署帮助手册


    Apache-doris-2.0.2部署帮助手册

    校验时间:2023年10月11日


    版权声明:本文为CSDN博主「顧棟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_43820556/article/details/133754689

    安装前准备

    安装包

    • apache-doris-2.0.2-bin-x64.tar.gz
    • jdk1.8.0_131.tgz
    • mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

    安装要求

    命令cat /proc/cpuinfo | grep flags来查看当前CPU所支持的指令集

    命令netstat -lntp 2>/dev/null|grep LISTEN|awk '{print $4}'|awk -F':' '{print $NF}'|sort|uniq查询已经占用的端口

    命令cat /etc/redhat-release 查询系统版本

    Linux 操作系统版本需求
    Linux 系统版本
    CentOS7.1 及以上
    Ubuntu16.04 及以上
    软件需求
    软件版本
    Java1.8
    GCC4.8.2 及以上
    句柄需求

    设置系统文件句柄数

    vi /etc/security/limits.conf 
    * soft nofile 65536
    * hard nofile 65536
    
    • 1
    • 2
    • 3
    关闭 Swap

    修改/etc/sysctl.conf,增加以下配置

    vm.swappiness=0
    vm.overcommit_memory=1
    vm.zone_reclaim_mode = 0
    
    • 1
    • 2
    • 3

    配置完毕后,执行sysctl -p命令使其生效。

    # 查看交换区
    free -m
    
    • 1
    • 2
    网络需求

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

    实例名称端口名称默认端口通讯方向说明
    BEbe_port9060FE --> BEBE 上 thrift server 的端口,用于接收来自 FE 的请求
    BEwebserver_port8040BE <–> BEBE 上的 http server 的端口
    BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
    BEbrpc_port8060FE <–> BE, BE <–> BEBE 上的 brpc 端口,用于 BE 之间通讯
    FEhttp_port8030FE <–> FE,用户 <–> FEFE 上的 http server 端口
    FErpc_port9020BE --> FE, FE <–> FEFE 上的 thrift server 端口,每个fe的配置需要保持一致
    FEquery_port9030用户 <–> FEFE 上的 mysql server 端口
    FEarrow_flight_sql_port9040用户 <–> FEFE 上的 Arrow Flight SQL server 端口
    FEedit_log_port9010FE <–> FEFE 上的 bdbje 之间通信用的端口
    Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,用于接收请求

    注:

    1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
    2. 部署前请确保各个端口在应有方向上的访问权限。

    部署规划

    服务器FEBEMysqlClient
    IP1yesyes
    IP2yes
    IP3yes
    IP4yes
    IP5yes
    IP6yes

    用户规划

    groupadd -g 900 doris
    useradd -u 210 -g 900 doris
    
    • 1
    • 2

    目录规划

    将空间大的目录软链接到home的子目录下,比如/opt或者/data。此文档采用/data目录为例

    • 用户目录

      /home/doris/software 链接至 /data/doris/software

    • 数据目录

      /home/doris/data链接至 /data/doris/data

    • 日志目录

      /home/doris/logs链接至 /data/doris/logs

    免密需求

    集群中任一机器都与其他机器root免密。

    # 创建秘钥
    ssh-keygen -t rsa
    # 各个机器生成秘钥,汇集公钥
    scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/2.id.rsa.pub
    scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/3.id.rsa.pub
    scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/4.id.rsa.pub
    scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/5.id.rsa.pub
    scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/6.id.rsa.pub
    # 生成秘钥认证文件
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    cat ~/.ssh/2.id.rsa.pub >> ~/.ssh/authorized_keys
    cat ~/.ssh/3.id.rsa.pub >> ~/.ssh/authorized_keys
    cat ~/.ssh/4.id.rsa.pub >> ~/.ssh/authorized_keys
    cat ~/.ssh/5.id.rsa.pub >> ~/.ssh/authorized_keys
    cat ~/.ssh/6.id.rsa.pub >> ~/.ssh/authorized_keys
    # 向集群机器分发认证文件
    scp ~/.ssh/authorized_keys root@ip2:~/.ssh/
    scp ~/.ssh/authorized_keys root@ip3:~/.ssh/
    scp ~/.ssh/authorized_keys root@ip4:~/.ssh/
    scp ~/.ssh/authorized_keys root@ip5:~/.ssh/
    scp ~/.ssh/authorized_keys root@ip6:~/.ssh/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    每台机器都相互免密登录一下,确认免密成功。

    安装步骤

    # 1.新建用户与用户组
    groupadd -g 900 doris;
    useradd -u 900 -g 900 doris;
    # 2.准备目录-将安装包分发至各个服务器的/data/install_package目录
    mkdir -p /data/install_package;
    mkdir -p /data/doris/software;
    mkdir -p /data/doris/logs;
    mkdir -p /data/doris/data;
    ln -snf /data/doris/software /home/doris/software;
    ln -snf /data/doris/logs /home/doris/logs;
    ln -snf /data/doris/data /home/doris/data;
    # fe的元数据存储目录
    mkdir -p /data/doris/data/doris-meta;
    # be的数据存储目录
    mkdir -p /data/doris/data/datastorage;
    
    # 3.将安装包解压至software目录并配置软链接
    tar -zxf /data/install_package/jdk1.8.0_131.tgz -C /home/doris/software/;
    tar -zxf /data/install_package/apache-doris-2.0.2-bin-x64.tar.gz -C /home/doris/software/;
    ln -snf /home/doris/software/jdk1.8.0_131 /home/doris/software/java;
    ln -snf /home/doris/software/apache-doris-2.0.2-bin-x64 /home/doris/software/doris;
    # 在某一台机器上安装mysql客户端
    tar -zxf /data/install_package/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /home/doris/software/;
    ln -snf /home/doris/software/mysql-5.7.43-linux-glibc2.12-x86_64 /home/doris/software/mysql-client;
    
    # 4.确认目录权限
    chown -R doris:doris /data/doris/;
    chown -R doris:doris /home/doris/;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    配置JDK

    su - doris;
    vim /home/doris/.bashrc;
    # 在.bashrc文件中追加以下内容
    export JAVA_HOME=/home/doris/software/java
    export PATH=$JAVA_HOME/bin:$PATH
    
    # 配置生效
    source /home/doris/.bashrc;
    # 检查jdk
    java -version;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置Doris文件

    在doris用户下执行

    fe.conf

    vim /home/doris/software/doris/fe/conf/fe.conf
    # 添加配置(使用ip a命令可获取)
    priority_networks = 实际本机IP地址/掩码长度
    meta_dir=/data/doris/data/doris-meta
    
    # the output dir of stderr and stdout 
    LOG_DIR = /data/doris/logs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    be.conf

    vim /home/doris/software/doris/be/conf/be.conf
    # 添加配置(使用ip a命令可获取)
    priority_networks = 实际本机IP地址/掩码长度
    storage_root_path=/data/doris/data/datastorage
    
    # the output dir of stderr and stdout 
    LOG_DIR = /data/doris/logs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    启动与停止

    启动

    启动一个FE

    su - doris;
    cd  /home/doris/software/doris/fe;
    sh bin/start_fe.sh --daemon;
    
    • 1
    • 2
    • 3

    配置操作

    MysqlClient连接第一个启动的FE 增加其他的FE节点和BE节点(无密码连接方式)

    /home/doris/software/mysql-client -h 启动的FEIP -P 9030 -uroot 
    -- edit_log_port位于conf/fe.conf  ,默认为9010
    mysql> ALTER SYSTEM ADD FOLLOWER "fe2的ip:9010";
    mysql> ALTER SYSTEM ADD FOLLOWER "fe3的ip:9010";
    -- 查看所有fe节点
    mysql> show proc '/frontends';
    
    mysql> ALTER SYSTEM ADD BACKEND "be1:9050";
    mysql> ALTER SYSTEM ADD BACKEND "be2:9050";
    mysql> ALTER SYSTEM ADD BACKEND "be3:9050";
    -- 查看所有be节点
    mysql> show proc '/backends';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    启动其他的FE节点(FE2,FE3)

    待加入的FE节点(第一次启动时要加–helper参数,否则follower fe节点无法加入集群)

    su - doris;
    cd  /home/doris/software/doris/fe;
    sh bin/start_fe.sh --helper masterFE的IP:edit_log_port --daemon;
    
    • 1
    • 2
    • 3

    启动BE

    su - doris;
    cd  /home/doris/software/doris/be;
    sh bin/start_be.sh --daemon
    
    • 1
    • 2
    • 3

    检查

    查询FE是否正常

    curl http://fe_host:fe_http_port/api/bootstrap
    
    • 1

    如果返回:{"status":"OK","msg":"Success"},则表示启动成功,其余情况,则可能存在问题。

    查询BE是否正常

    curl http://be_host:webserver_port/api/health
    
    • 1

    如果返回:{"status": "OK","msg": "To Be Added"},则表示启动成功,其余情况,则可能存在问题

    停止

    su - doris;
    cd  /home/doris/software/doris/fe;
    sh bin/stop_fe.sh
    
    su - doris;
    cd  /home/doris/software/doris/be;
    sh bin/stop_be.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    CCF CSP认证 历年题目自练Day17
    @Configuration(proxyBeanMethods = false)中proxyBeanMethods属性的作用
    Midjourney入门:AI绘画真的能替代人类的丹青妙笔吗?
    一览JavaScript模块化 包含Commonjs、AMD、CMD、ES6 modules总结
    了解一下 Fossil,一个 Git 的替代品 | Linux 中国
    2022“杭电杯”中国大学生算法设计超级联赛(7)
    wsl使用vscode连接,远程安装C/C++ 拓展时,报错
    pytorch loss及其梯度
    Html第4集:对象定义、typeof、instanceof、undefine
    软件流程和管理(六):Project Scheduling
  • 原文地址:https://blog.csdn.net/weixin_43820556/article/details/133754689