集群制作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
  1. 启动并加入开机启动
    sudo systemctl start docker #启动docker
    sudo systemctl enable docker #加入开机自启动
  2. 查看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 中可以看到。

  1. 宿主机安装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
  2. 连接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。
  3. 启动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
  4. 进入BE-Docker以及安装组件
    # 进入fe-docker,以01为例
    docker exec -ti doris-be-01 /bin/bash
    # 安装net-tools用于查看IP
    yum install net-tools -y
  5. 修改BE配置
    # 查看fe-docker的IPv4地址
    ifconfig
    # 修改配置文件
    vim /opt/doris/be/conf/be.conf
    # 取消priority_networks的注解,并根据Docker的网段进行配置
    priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
  6. 配置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
  7. 启动Doris-BE
    start_be.sh --daemon
  8. 检查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"}
      则表示启动成功,其余情况,则可能存在问题。
      注:如果在 http://be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。
  1. 测试连通性
    # 登录FE-MySQL
    mysql -h FE_HOST -P9030 -uusername -ppassword
    # 执行命令查看BE运行情况。如一切正常,isAlive 列应为 true。
    SHOW PROC '/backends';
  2. 若连通性测试成功,则循环完成其他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上进行如下配置('/http://atomic.io/network/config'这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)
    etcdctl mk /http://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 /http://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,如图所示

6. SHELL脚本设计及开发

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

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!
    感谢您为开源世界作出的一份贡献!
    如有问题请打开地址:http://doris.freeoneplus.com
    扫描二维码添加Apache Doris社区微信群获取答疑~

6.2.2 完整部署版(数据落盘无惧丢失)

  1. 校验脚本执行口令,防止误操作
  • 输出一段文字说明
  • 等待接收Doris这五个字母,成功则继续,未成功则终止
  1. 依次询问参数配置设置,接收参数,可参考的有:
    1. 是否默认配置安装(Y/N)
    2. BE数量(默认为3)
    3. root密码(默认为空)
    4. 操作员账户名称(默认无)
    5. 操作员账户密码(默认无)
    6. FE-Http-Port端口(默认8030)
    7. FE-MySQL-Cli-Port端口(默认9030)
  1. 创建宿主机资源目录并进入
    mkdir -p /opt/docker/doris/
    cd /opt/docker/doris/
  2. 拉取编译好的文件包至上述目录(当前版本为Apache Doris-1.0.0 bate测试版)
    wget https://jiafeng2022.oss-cn-beijing.aliyuncs.com/doris-1.0.0-jdk8-20220301.tar.gz
  3. 解压文件包
    tar -zxvf /opt/docker/doris/apache-doris-install.tar.gz
  4. 根据传参的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
  5. 监测Docker是否安装
    docker version
  6. 如果已安装则跳过,未安装则安装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
  7. 监测MySQL-Client是否已安装
    mysql --version
  8. 如果已安装则跳过,未安装则安装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
  9. 拉取Doris编译镜像为基础环境镜像
    docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
  10. 制作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
  1. 用MySQL-Client连接Doris
    mysql -h ${记录下的FE-Docker的IPv4地址} -P ${默认9030,如有改变则使用改变后的query-port} -uroot
  2. 注册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三条注册信息,以此类推
  3. 若有用户修改密码和注册了操作员账户,则执行以下命令
    # 修改密码
    SET PASSWORD FOR 'root' = PASSWORD('${填写的root密码}');
    # 也可以创建新用户
    CREATE USER '${填写的操作员账户}' IDENTIFIED BY '${填写的操作员密码}';
  4. 退出MySQL-Client
    exit
  5. 制作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
  1. 循环结束,清除临时解压缩及部分下载文件
    rm -rf /opt/software/*.rpm
    rm -rf /opt/docker/doris/apache-doris-install.tar.gz
  2. 制作启动、停止脚本(前提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集群制作教程的更多相关文章

  1. Zookeeper集群搭建(多节点,单机伪集群,Docker集群)

    Zookeeper介绍 原理简介 ZooKeeper是一个分布式的.开源的分布式应用程序协调服务.它公开了一组简单的原语,分布式应用程序可以在此基础上实现更高级别的同步.配置维护.组和命名服务.它的设 ...

  2. 集群版本升级——rolling upgrade在ES 单节点从 restart 到加入集群,大概要 100s 左右的时间。也就是说,这 100s 内,该节点上的所有分片都是 unassigned 状态

    集群版本升级 Elasticsearch 作为一个新兴项目,版本更新非常快.而且每次版本更新都或多或少带有一些重要的性能优化.稳定性提升等特性.可以说,ES 集群的版本升级,是目前 ES 运维必然要做 ...

  3. [经验交流] Apache Mesos Docker集群初探

    前言 因工作需要,我对基于Apache Mesos 的 Docker 集群作了一点研究,并搭建了一套环境,以下是资料分享. 1. Apache Mesos概述 Apache Mesos是一款开源群集管 ...

  4. Zookeeper节点增删改查与集群搭建(笔记)

    1.上传文件目录说明 上传的文件一般放在 /home/下 安装文件一般在 /usr/local/下 2. 安装zookeeper 2.1将zookeeper-3.4.11.tar.gz拷贝到/home ...

  5. Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

    1. Mesos简介 1.1 Mesos Apache Mesos 是一个分布式系统的管理软件,对集群的资源进行分配和管理. Mesos主要由以下几部分组成: Master: 管理各Slave节点 S ...

  6. Docker 集群

    1.  理解swarm swarm(译:集群) 一个swarm是一组运行着Docker的机器,它们一起加入到一个集群.swarm中的机器既可以是物理机,也可以是虚拟机.在加入到一个swarm后,每台机 ...

  7. 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇

    <Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...

  8. k8s docker集群搭建

    一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...

  9. Docker swarm集群搭建教程

    一.什么是Swarm Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行为.比如我们常见的蜂群,鱼群,秋天往南飞的雁群都可以称作Swarm behavio ...

随机推荐

  1. 深度学习工具LabelXml安装教程

    LabelXml安装教程 1,下载LabelXml工具 前往github上下载labelxml,官网地址如下:https://github.com/tzutalin/labelImg 下载打包源码为z ...

  2. vs 2019 社区版 .net core 5.0 之 .net core ef 迁移问题方案

    问题一:Add-Migration 时出现 此类问题一般都是模型类主键标识问题增加KEY即可解决 报错: The entity type 'xxxx' requires a primary key t ...

  3. 什么是root帐户?

    root帐户就像一个系统管理员帐户,允许你完全控制系统.你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限.每次安装Linux时都是默认帐户.

  4. JS Promise对象学习

    Promise对象的三个状态 pending(进行中) fulfilled(已成功) rejected(已失败) Promise代表一个异步操作,对象的状态一旦改变,就不会再改变 Promise构造函 ...

  5. Google Translate寻找之旅

    须知 网站:https://translate.google.de/ TK对应入口函数:teanslate_m_zh_CN文件/vu函数 TKK对应文件:/index页面,直接搜索TKK值即可 Goo ...

  6. 学习k8s(一)

    一.安装及介绍 1.k8s架构 2.核心组件 3.其他组件 4.安装方式 yum安装: 1.5 最简单,版本低,适合学习 二进制安装: 最繁琐,可以用saltstack安装 kubeadm安装: 谷歌 ...

  7. Mac 安装WordPress

    Mac 安装WordPress 一.环境要求 PHP 5.2.4或更新版本 MySQL 5.0或更新版本 WebServer(可以选择Apache.nginx等支持PHP的,这里我选择Apache) ...

  8. react 移动端 兼容性问题和一些小细节

    react 移动端 兼容性问题和一些小细节 使用 ES6 的浏览器兼容性问题 react 对低版本的安卓webview 兼容性 iOS下 fixed与软键盘的问题 onClick 阻止冒泡 meta对 ...

  9. prometheus之查询语言

    PromQL(Prometheus Query Language)是 Prometheus 自己开发的表达式语言,语言表现力很丰富,内置函数也很多.使用它可以对时序数据进行筛选和聚合. 一.PromQ ...

  10. idea 配置mapper.xml代码提示

    从代码跳转mapper文件的插件: 在mapper文件中添加dtd约束: 1.下载dtd约束文件 http://mybatis.org/dtd/mybatis-3-config.dtd   http: ...