美文网首页docker
Apache Doris 单节点(可多节点)Docker集群制作

Apache Doris 单节点(可多节点)Docker集群制作

作者: 张家锋 | 来源:发表于2022-03-11 09:37 被阅读0次

    集群制作Author:苏奕嘉

    脚本研发Author:种益

    调研测试Author:杨春东

    前言

    Apache Doris是当下非常火热和流行的MPP架构OLAP数据库,很多同学想自学/测试Doris的使用和能力,但是又苦于没有环境或者畏惧冗长的编译+搭建过程,整个过程极大的劝退了很多有些尝试意愿、但又由于各种客观因素无法承担过高学习成本导致尝试失败的同学,故此Apache Doris社区三位社区同学苏奕嘉、种益、杨春东制作了三个不同设计的版本安装方式并提供下载,以此降低大家的学习门槛和提升学习/测试效率。

    重要说明:该教程提供的编译方式及运行环境都以单节点部署集群为目标,故性能会【大打折扣】,如想体验完整Apache Doris数据库的能力,请以完整集群部署,单节点集群【仅适用于学习、功能测试】所用!

    版本说明

    1. 极速体验版

    1.1. 优点

    1. 超快速的部署体验(网速OK的话十五分钟内部署完毕)
    2. 单节点部署
    3. 支持多环境运行:虚拟机/云服务器/支持Docker的物理机(Mac/Win/Linux)

    1.2. 缺点

    1. 数据存储是在Docker容器中,如容器如损坏,会导致数据丢失
    2. 若非干净纯净的系统环境,可能需要手动执行部分BE注册FE的命令

    1.3. 适用人群

    学生、培训机构、体验/测试人员

    1.4. 安装建议

    系统为纯净新系统最佳,无需任何修改即可开箱即用


    2. 完全部署版

    2.1. 优点

    1. 完整的环境部署(MySQL-Client等组件)
    2. 自由的部署安排(有众多可选安装参数)
    3. 无惧Docker容器损坏(最小降低损失,可极速恢复)
    4. 单节点部署
    5. 支持多环境运行:虚拟机/云服务器,暂未适配物理机(后续升级版本会支持)

    2.2. 缺点

    1. 安装过程时间较长(视网速和机器性能而定)
    2. 安装步骤多,代表可能故障率较高

    2.3. 适用人群

    学生、培训机构、体验/测试人员中的持续性教学受众(数据不易丢失)

    2.4. 安装建议

    该版本建议完完全全的纯净新系统,以此降低安装故障率


    3. 存算分离版

    该版本还在制作过程中,教程及相关文档后续推出,可视为完全部署版的Plus版本。


    目的

    该教程最后成果模块提供了各个版本下载地址,只需在服务器拉取不同版本shell脚本运行即可,在/opt/docker/doris/sbin目录下会有start_doris_docker.shstop_doris_docker.sh脚本支持一键启停,同时会在一键部署的过程中将两个脚本添加至环境变量,最大程度简化单节点测试部署和启停操作。

    步骤过程可以忽略,除非有定制化的一键部署Docker集群的镜像集群制作需求,大可不必照着教程再来一遍,官方已提供了下载地址,无需重复劳动。

    环境

    环境一

    • 服务器:腾讯云 2C 4G 6M 一台
    • OS:CentOS 7.6
    • Docker-V:20.10.12
    • Doris-V:1.0 beta
    • MySQL-Client-V:5.7
    • FE-Num:1
    • BE-Num:3

    环境二

    • 服务器:Win虚拟机 8C 44G 一台
    • OS:CentOS 7.6
    • Docker-V:20.10.12
    • Doris-V:1.0 beta
    • MySQL-Client-V:5.7
    • FE-Num:1
    • BE-Num:5

    步骤

    1. 安装Docker环境

    1. Docker 要求 CentOS 系统的内核版本高于3.10 ,首先查看系统内核版本是否满足

      uname -r
      
    2. 使用 root 权限登录系统,确保 yum 包更新到最新

      sudo yum update -y
      
    3. 假如安装过旧版本,先卸载旧版本

      sudo yum remove docker  docker-common docker-selinux docker-engine
      
    4. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
      
    5. 设置yum源(加速yum下载速度)

      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      
    6. 查看所有仓库中所有docker版本,并选择特定版本安装,一般可直接安装最新版

      yum list docker-ce --showduplicates | sort -r
      
    7. 安装docker

      • 安装最新稳定版本

        sudo yum install docker-ce -y  #安装的是最新稳定版本,因为repo中默认只开启stable仓库
        
      • 安装指定版本

        sudo yum install <FQPN> -y
        # 例如:
        sudo yum install docker-ce-20.10.11.ce -y
        
    8. 启动并加入开机启动

      sudo systemctl start docker #启动docker
      sudo systemctl enable docker #加入开机自启动
      
    9. 查看Version,验证是否安装成功

      docker version
      

      若出现Client和Server两部分内容,则证明安装成功

    2. 容器创建及测试

    在创建之前,请准备好已完成编译的FE/BE文件,此教程不再赘述编译过程。

    1. 拉取Doris编译镜像做测试

      # 拉取
      docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
      
    2. 创建Doris-Docker的文件(包括元数据文件夹)

      mkdir -p /opt/docker/doris
      
    3. 将编译好的FE和BE拷贝至Docker文件群内

      cp -r 编译好的Doris根目录/fe/ /opt/docker/doris/
      cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-01
      cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-02
      cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-03
      
    4. 启动FE-Docker

      docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe -v /opt/docker/doris/fe:/opt/doris/fe -v /opt/docker/doris/doris-meta:/opt/doris/doris-meta apache/incubator-doris:build-env-ldb-toolchain-latest
      
    5. 进入FE-Docker以及安装组件

      # 进入fe-docker
      docker exec -ti doris-fe /bin/bash
      # 安装net-tools用于查看IP
      yum install net-tools -y
      
    6. 修改FE配置

      # 查看fe-docker的IPv4地址
      ifconfig
      # 修改配置文件
      vim /opt/doris/fe/conf/fe.conf
      # 取消priority_networks的注解,并根据Docker的网段进行配置
      priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
      
    7. 切换Docker-JDK版本

      # 切换Java版本为JDK1.8,该镜像默认为JDK11
      alternatives --set java java-1.8.0-openjdk.x86_64
      alternatives --set javac java-1.8.0-openjdk.x86_64
      export JAVA_HOME=/usr/lib/jvm/java-1.8.0
      # 校验是否切换版本成功
      java -version
      
    8. 配置FE-Docker的环境变量

      # 配置环境变量
      vim /etc/profile.d/doris.sh
      export DORIS_HOME=/opt/doris/fe/
      export PATH=$PATH:$DORIS_HOME/bin
      # 保存并source
      source /etc/profile.d/doris.sh
      
    9. 启动Doris-FE

      start_fe.sh --daemon
      
    10. 检查FE是否启动成功

      1. 检查是否启动成功,JPS命令下有没有PaloFe进程

      2. FE 进程启动后,会首先加载元数据,根据 FE 角色的不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最终会看到 thrift server started 日志,并且可以通过 mysql 客户端连接到 FE,则表示 FE 启动成功。

      3. 也可以通过如下连接查看是否启动成功:
        http://fe_host:fe_http_port/api/bootstrap

        如果返回:
        {"status":"OK","msg":"Success"}

        则表示启动成功,其余情况,则可能存在问题。

      4. 外网环境访问http://fe_host:fe_http_port 查看是否可以访问WebUI界面,登录账号默认为root,密码为空

      注:如果在 fe.log 中查看不到启动失败的信息,也许在 fe.out 中可以看到。

    11. 宿主机安装MySQL客户端

      wget -c http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
      tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
      rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
      rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
      rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
      
    12. 连接FE并修改密码

      mysql -h FE-Docer的IP -P 9030 -uroot
      SET PASSWORD FOR 'root' = PASSWORD('your_password');
      # 也可以创建新用户
      CREATE USER 'test' IDENTIFIED BY 'test_passwd';
      

      后续链接时需要使用如下格式

      mysql -h FE_HOST -P9030 -uusername -ppassword
      

      添加BE节点注册信息

      ALTER SYSTEM ADD BACKEND "host:port";
      # 其中 host 为 BE 所在节点 ip;port 为 be/conf/be.conf 中的 heartbeat_service_port,默认9050。
      
    13. 启动BE-Docker

      docker run -it -p 9061:9060 -d --name=doris-be-01 -v /opt/docker/doris/be-01:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
      docker run -it -p 9062:9060 -d --name=doris-be-02 -v /opt/docker/doris/be-02:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
      docker run -it -p 9063:9060 -d --name=doris-be-03 -v /opt/docker/doris/be-03:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
      
    14. 进入BE-Docker以及安装组件

      # 进入fe-docker,以01为例
      docker exec -ti doris-be-01 /bin/bash
      # 安装net-tools用于查看IP
      yum install net-tools -y
      
    15. 修改BE配置

      # 查看fe-docker的IPv4地址
      ifconfig
      # 修改配置文件
      vim /opt/doris/be/conf/be.conf
      # 取消priority_networks的注解,并根据Docker的网段进行配置
      priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
      
    16. 配置BE-Docker的环境变量

      # 配置环境变量
      vim /etc/profile.d/doris.sh
      export DORIS_HOME=/opt/doris/be/
      export PATH=$PATH:$DORIS_HOME/bin
      # 保存并source
      source /etc/profile.d/doris.sh
      
    17. 启动Doris-BE

      start_be.sh --daemon
      
    18. 检查BE是否启动成功

      1. BE 进程启动后,如果之前有数据,则可能有数分钟不等的数据索引加载时间。

      2. 如果是 BE 的第一次启动,或者该 BE 尚未加入任何集群,则 BE 日志会定期滚动 waiting to receive first heartbeat from frontend 字样。表示 BE 还未通过 FE 的心跳收到 Master 的地址,正在被动等待。这种错误日志,在 FE 中 ADD BACKEND 并发送心跳后,就会消失。如果在接到心跳后,又重复出现 master client, get client from cache failed.host: , port: 0, code: 7 字样,说明 FE 成功连接了 BE,但 BE 无法主动连接 FE。可能需要检查 BE 到 FE 的 rpc_port 的连通性。

      3. 如果 BE 已经被加入集群,日志中应该每隔 5 秒滚动来自 FE 的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx,表示心跳正常。

      4. 其次,日志中应该每隔 10 秒滚动 finish report task success. return code: 0 的字样,表示 BE 向 FE 的通信正常。

      5. 同时,如果有数据查询,应该能看到不停滚动的日志,并且有 execute time is xxx 日志,表示 BE 启动成功,并且查询正常。

      6. 也可以通过如下连接查看是否启动成功:
        http://be_host:be_http_port/api/health

        如果返回:
        {"status": "OK","msg": "To Be Added"}

        则表示启动成功,其余情况,则可能存在问题。

        注:如果在 be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。

    19. 测试连通性

      # 登录FE-MySQL
      mysql -h FE_HOST -P9030 -uusername -ppassword
      # 执行命令查看BE运行情况。如一切正常,isAlive 列应为 true。
      SHOW PROC '/backends';
      
    20. 若连通性测试成功,则循环完成其他BE节点的部署即可

    3. 安装ETCD环境(若多节点Dokcer需配置|单节点可忽略)

    1. 配置Hosts文件映射

      vim /etc/hosts
      你本机内网IP地址 master
      
    2. 安装ETCD

      # 安装ETCD
      yum install -y etcd
      # 重启ETCD
      systemctl restart etcd
      
    3. 设置开机启动

      systemctl enable etcd
      
    4. 修改ETCD配置

       # 先查找本机的IP地址
       ifconfig
       # 备份原始配置文件
       cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak
       # 编辑ETCD的conf文件
       vim /etc/etcd/etcd.conf
       # 修改监听客户端地址为
      ETCD_LISTEN_CLIENT_URLS="http://master:2379,http://127.0.0.1:2379,http://master:4001,http://127.0.0.1:4001"
       # 修改通知客户端地址为
      ETCD_ADVERTISE_CLIENT_URLS="http://master:2379,http://master:4001"
       # 保存退出
      
    5. 设置ETCD网段

      # Flannel使用Etcd进行配置,来保证多个Flannel实例之间的配置一致性,所以需要在etcd上进行如下配置('/atomic.io/network/config'这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)
      etcdctl mk /atomic.io/network/config '{"Network":"172.20.0.0/16","SubnetMin":"172.20.1.0","SubnetMax":"172.20.254.0"}'
      
    6. 重启ETCD

      systemctl restart etcd 
      
    7. 测试

      # 查看ETCD进程是否存在
      ps -ef|grep etcd
      # 查看端口使用情况,因为ETCD默认TCP:2379端口通讯
      lsof -i:2379
      # 使用get命令查看是否设置成功
      etcdctl get /atomic.io/network/config 
      # 若出现以下信息,则代表设置成功
      {"Network":"172.20.0.0/16","SubnetMin":"172.20.1.0","SubnetMax":"172.20.254.0"}
      # 查看cluster-health
      etcdctl -C http://master:4001 cluster-health
      etcdctl -C http://master:2379 cluster-health
      # 若出现如下信息,则代表成功
      member 8e9e05c52164694d is healthy: got healthy result from http://你IP地址:2379(和4001)
      

    4. 安装Flannel环境(若多节点Dokcer需配置|单节点可忽略)

    1. Yum安装Flannel

      yum install -y flannel
      
    2. 配置Flannel

      # 备份原始配置文件
      cp /etc/sysconfig/flanneld /etc/sysconfig/flanneld.bak
      # 编辑配置文件
      vim /etc/sysconfig/flanneld
      # 修改以下配置项
      FLANNEL_ETCD_ENDPOINTS="http://master:2379"
      
    3. 设置开机自启

      systemctl enable flanneld.service
      
    4. 启动Flannel

      systemctl start flanneld.service
      
    5. 重启Docker

      systemctl restart docker
      
    6. 测试

      # 查看Flannel进程
      ps -ef | grep flannel
      

    5. 测试及远程连接

    可使用Navicat等远端工具连接FE,地址为部署了FE服务的单机外网IP,端口为9030,如图所示

    <img src="https://fop-1256218176.cos.ap-shanghai.myqcloud.com/md/2022-03-03-123903.png" alt="image-20220303203902837" style="zoom:33%;" />

    6. SHELL脚本设计及开发

    6.1. 完整部署版整体设计示意图

    image-20220304121008665

    6.2. 思路梳理

    6.2.1 极速体验版(极速体验免除安装)
    1. 默认1FE 3BE安装

    2. Docker安装(可参照步骤1

    3. 拉取Docker镜像群

      docker pull freeoneplus/doris-fe:1.0
      docker pull freeoneplus/doris-be:1.0
      
    4. 创建FE-Docker容器

      docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe freeoneplus/doris-fe:1.0
      
    5. 进入FE-Docker并获取IPv4地址

      docker exec -it doris-fe /bin/bash
      ifconfig
      exit
      docker exec -d doris-fe /bin/bash /opt/doris/fe/start_fe.sh --daemon
      
    6. 循环创建BE-Docker容器并启动BE

      docker run -it -p 9061:9060 -d --name=doris-be-01 freeoneplus/doris-be:1.0
      docker exec -d doris-be-01 /bin/bash /opt/doris/be/start_be.sh --daemon
      docker run -it -p 9062:9060 -d --name=doris-be-02 freeoneplus/doris-be:1.0
      docker exec -d doris-be-02 /bin/bash /opt/doris/be/start_be.sh --daemon
      docker run -it -p 9063:9060 -d --name=doris-be-03 freeoneplus/doris-be:1.0
      docker exec -d doris-be-03 /bin/bash /opt/doris/be/start_be.sh --daemon
      
    7. 提示用户进行BE注册

      亲爱的用户,欢迎使用 Apache Doris-极简版-Docker集群!
      接下来的文字请认真阅读:
      1. 此版本集群为极简版单节点docker集群,所有数据均挂载在Docker集群内,请谨慎修改或删除容器!
      2. 此版本预制注册三个BE节点至FE,但可能由于不同环境影响,预先注册的IP地址可能会出现错误,所以请仔细观察FE的预制IP地址:${FE-IP地址},若以上地址为172.17.0.2,则无需做任何修改即可直接使用,如果是其他数值,则需要进行链接FE进行BE注册
      3. 您可以使用任意MySQL-Client或者MySQL工具连接FE-MySQL-Server
      若宿主机(您的虚拟机/云服务器)有MySQL-Client,则需要执行以下命令链接FE-MySQL-Server
      mysql -h ${FE-IP地址} -P 9030 -uroot -p123456
      若您使用外网机器链接FE-MySQL-Server,则需要填入以下参数,您需要提前打开9030外网端口
      url:您的服务器外网IP(虚拟机则视网络桥接方式)
      port:9030
      username:root
      password:
      然后执行以下命令清除已注册至FE的BE节点信息
      
      `以下需要逻辑处理`
      预设的三个BE地址为[172.17.0.3,172.17.0.4,172.17.0.5]
      该地址应为FE-IP地址最后一位自增3,所以如果预设错误,需要给出删除语句和增添语句
      比如FE-IP为 172.17.0.4,则需要给出删除[172.17.0.3,172.17.0.4]两个BE节点的语句
      ALTER SYSTEM DECOMMISSION BACKEND "${FE-IP地址}:9050";
      然后再给出新增的两个节点的IP[172.17.0.6,172.17.0.7]注册语句
      ALTER SYSTEM ADD BACKEND "${FE-IP地址}:9050";
      `以上需要逻辑处理`
      
      感谢您的安装和使用Apache Doris!
      感谢您为开源世界作出的一份贡献!
      如有问题请打开地址:doris.freeoneplus.com
      扫描二维码添加Apache Doris社区微信群获取答疑~
      
    6.2.2 完整部署版(数据落盘无惧丢失)
    1. 校验脚本执行口令,防止误操作

      • 输出一段文字说明
      • 等待接收Doris这五个字母,成功则继续,未成功则终止
    2. 依次询问参数配置设置,接收参数,可参考的有:

      1. 是否默认配置安装(Y/N)
      2. BE数量(默认为3)
      3. root密码(默认为空)
      4. 操作员账户名称(默认无)
      5. 操作员账户密码(默认无)
      6. FE-Http-Port端口(默认8030)
      7. FE-MySQL-Cli-Port端口(默认9030)
    3. 创建宿主机资源目录并进入

      mkdir -p /opt/docker/doris/
      cd /opt/docker/doris/
      
    4. 拉取编译好的文件包至上述目录(当前版本为Apache Doris-1.0.0 bate测试版)

      wget https://jiafeng2022.oss-cn-beijing.aliyuncs.com/doris-1.0.0-jdk8-20220301.tar.gz
      
    5. 解压文件包

      tar -zxvf /opt/docker/doris/apache-doris-install.tar.gz
      
    6. 根据传参的BE数量循环复制BE目录,以默认数量为样例,命令执行为

      cp -r /opt/docker/doris/be /opt/docker/doris/be-01
      cp -r /opt/docker/doris/be /opt/docker/doris/be-02
      cp -r /opt/docker/doris/be /opt/docker/doris/be-03
      
    7. 监测Docker是否安装

      docker version
      
    8. 如果已安装则跳过,未安装则安装Docker

      # 监测内核版本,若小于3.10则终止安装并通知失败,告知失败原因
      uname -r
      # 如果大于3.10则开始安装,依次执行以下命令
      sudo yum update -y
      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      sudo yum install docker-ce -y
      sudo systemctl start docker 
      sudo systemctl enable docker 
      # 执行结束,监测执行是否都已成功
      docker version
      
    9. 监测MySQL-Client是否已安装

      mysql --version
      
    10. 如果已安装则跳过,未安装则安装MySQL-Client

      mkdir -p /opt/software
      cd /opt/software
      wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
      tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
      rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
      rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
      rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
      
    11. 拉取Doris编译镜像为基础环境镜像

      docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
      
    12. 制作FE容器

      • 构建FE容器

        docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe -v /opt/docker/doris/fe:/opt/doris/fe -v /opt/docker/doris/doris-meta:/opt/doris/doris-meta apache/incubator-doris:build-env-ldb-toolchain-latest
        
      • 进入容器

        docker exec -ti doris-fe /bin/bash
        
      • 修改FE配置文件

        vim /opt/doris/fe/conf/fe.conf
        # 如FE两个对外端口都是默认值,则无需修改,若有改变,则改变该值
        http_port = 8030
        query_port = 9030
        # 修改网段
        priority_networks = 172.17.0.0/16
        
      • 切换JDK版本

        # 切换Java版本为JDK1.8,该镜像默认为JDK11
        alternatives --set java java-1.8.0-openjdk.x86_64
        alternatives --set javac java-1.8.0-openjdk.x86_64
        export JAVA_HOME=/usr/lib/jvm/java-1.8.0
        
      • 配置Doris环境变量

        # 配置环境变量
        vim /etc/profile.d/doris.sh
        export DORIS_HOME=/opt/doris/fe/
        export PATH=$PATH:$DORIS_HOME/bin
        # 保存并source
        source /etc/profile.d/doris.sh
        
      • 安装Net-Tools工具以便于查看IP地址

        yum install net-tools -y
        
      • 使用命令查看该Docker的IPv4地址,并记录下来

        ifconfig
        
      • 启动FE

        start_fe.sh
        # 最好执行命令以后再等待10秒左右
        
      • 退出该容器,返回宿主机

        exit
        
    13. 用MySQL-Client连接Doris

      mysql -h ${记录下的FE-Docker的IPv4地址} -P ${默认9030,如有改变则使用改变后的query-port} -uroot
      
    14. 注册BE至FE

      ALTER SYSTEM ADD BACKEND "${FE-Docker的IPv4地址的第四位自增1}:9050";
      # 这里需要说明的是,这命令执行时应该是根据BE的数量来循环的,比如BE为默认值3,记录下FE-Docker的地址为172.17.0.3,那么就应该循环添加 172.17.0.4:9050、172.17.0.5:9050、172.17.0.6:9050三条注册信息,以此类推
      
    15. 若有用户修改密码和注册了操作员账户,则执行以下命令

      # 修改密码
      SET PASSWORD FOR 'root' = PASSWORD('${填写的root密码}');
      # 也可以创建新用户
      CREATE USER '${填写的操作员账户}' IDENTIFIED BY '${填写的操作员密码}';
      
    16. 退出MySQL-Client

      exit
      
    17. 制作BE容器,该处应该进入以BE数量为最大数值从1开始的循环中(以BE-01为例)

      假设BE的节点数量从1自增的变量为n,在以下示例中取值方式为${n}

      • 构建BE容器

        # 标准格式为如下所示,其中三处被替换为${n}
        docker run -it -p 906${n}:9060 -d --name=doris-be-0${n} -v /opt/docker/doris/be-0${n}:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
        # 示例
        docker run -it -p 9061:9060 -d --name=doris-be-01 -v /opt/docker/doris/be-01:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
        
      • 进入容器

        # 这里需要注意,也是要根据循环进行取值
        docker exec -ti doris-be-0${n} /bin/bash
        
      • 修改BE配置文件

        vim /opt/doris/be/conf/be.conf
        # 取消priority_networks的注解,并根据Docker的网段进行配置
        priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
        
      • 配置BE环境变量

        # 配置环境变量
        vim /etc/profile.d/doris.sh
        export DORIS_HOME=/opt/doris/be/
        export PATH=$PATH:$DORIS_HOME/bin
        # 保存并source
        source /etc/profile.d/doris.sh
        
      • 启动BE

        start_be.sh
        
      • 退出容器,开始下一次循环

        exit
        
    18. 循环结束,清除临时解压缩及部分下载文件

      rm -rf /opt/software/*.rpm
      rm -rf /opt/docker/doris/apache-doris-install.tar.gz
      
    19. 制作启动、停止脚本(前提Docker容器是启动的,若未启动则报错)

      启动脚本需以start_doris_docker.sh命名,停止脚本以stop_doris_docker.sh命名

      两个脚本均写在/opt/docker/doris/sbin/目录下

      • 创建目录

        mkdir -p /opt/docker/doris/sbin/
        
      • 启动脚本内容

        • 启动FE

          docker exec -d doris-fe /bin/bash /opt/doris/fe/start_fe.sh --daemon
          
        • 循环启动BE

          docker exec -d doris-be-0${n} /bin/bash /opt/doris/be/start_be.sh --daemon
          
      • 停止脚本内容

        • 循环停止BE

          docker exec -d doris-be-0${n} /bin/bash /opt/doris/be/stop_be.sh --daemon
          
        • 停止FE

          docker exec -d doris-fe /bin/bash /opt/doris/fe/stop_fe.sh --daemon
          
      • 配置环境变量

        vim /etc/profile.d/doris-docker.sh
        export DORIS_DOCKER_HOME=/opt/docker/doris/sbin
        export PATH=$PATH:$DORIS_DOCKER_HOME
        
      • 刷新环境变量

        source /etc/profile.d/doris-docker.sh
        

    成果

    极速体验版部署流程(此脚本部署将部署最新版本Apache Doris)

    wget http://download.freeoneplus.com/doris_docker_fast_install.sh
    sh ./doris_docker_fast_install.sh
    

    完全部署版部署流程(此脚本部署将部署最新版本Apache Doris)

    wget http://download.freeoneplus.com/doris_docker_whole_install.sh
    sh ./doris_docker_whole_install.sh
    

    假设需要指定版本的部署,请使用以下部署流程

    # 极速体验版部署流程
    wget http://download.freeoneplus.com/doris_docker_fast_install_${指定版本号}.sh
    sh ./doris_docker_fast_install_${指定版本号}.sh
    # 案例:极速体验版 Apache Doris 0.15版本
    wget http://download.freeoneplus.com/doris_docker_fast_install_0.15.sh
    sh ./doris_docker_fast_install_0.15.sh
    
    # 完全部署版部署流程
    wget http://download.freeoneplus.com/doris_docker_whole_install_${指定版本号}.sh
    sh ./doris_docker_whole_install_${指定版本号}.sh
    # 案例:完全部署版 Apache Doris 0.15版本
    wget http://download.freeoneplus.com/doris_docker_whole_install_0.15.sh
    sh ./doris_docker_whole_install_0.15.sh
    

    当前支持版本对照表

    Apache Doris version 是否支持
    1.0.0-beta 支持
    0.15 3月12日起支持
    0.14及以下 不支持

    测试

    使用官网的SSB测试集进行测试

    单节点规模:

    CPU:8C

    内存:44G

    硬盘:400G

    FE:1

    BE:5

    脚本名称 查询时间(ms)
    q1.1 926ms
    q1.2 461ms
    q1.3 410ms
    q2.1 13383ms
    q2.2 12001ms
    q2.3 11354ms

    相关文章

      网友评论

        本文标题:Apache Doris 单节点(可多节点)Docker集群制作

        本文链接:https://www.haomeiwen.com/subject/wkscdrtx.html