集群制作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. MySQL — 数据查询语言

    目录 1.基础查询 2.条件查询 3.分组查询 4.排序查询 5.分页查询 6.多表查询 6.1.连接查询 6.1.1.内连接 6.1.2.外连接 6.1.3.自连接 6.1.4.联合查询 6.2.子 ...

  2. 选择Key-Value Store

    [IT168 专稿]在之前的文章中,给大家介绍了<Redis快速入门:Key-Value存储系统简介>,今天进一步给大家介绍为什么选择Key-Value Store.Key-Value S ...

  3. 无刷电调修理方法 | 银燕(EMAX)12A无刷电调维修

    一. 银燕(XP-12A)电调修理 笔者的电调在使用4S电池时烧毁,其中一个PMOS管明显烧焦. 将其拆除,买来新元件重新焊接,通电依然冒烟了. 引脚定义 丝印662F: XC6206P332MR 低 ...

  4. ES6中对象新增的方法

    属性的简洁表示法 ES6 允许在大括号里面直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. const foo = 'bar'; const baz = { foo }; console ...

  5. kafka分布式的情况下,如何保证消息的顺序?

    作者:可期链接:https://www.zhihu.com/question/266390197/answer/772404605来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  6. 文档类型声明<!DOCTYPE html>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. Dubbo 使用过程中都遇到了些什么问题?

    在注册中心找不到对应的服务,检查 service 实现类是否添加了@service 注解 无法连接到注册中心,检查配置文件中的对应的测试 ip 是否正确

  8. JVM内存模型小结

    JVM运行时的数据区域划分图如下,该图是JVM内存模型最主要的内容. 从图中可以看出来,JVM将内存主要划分为五个部分:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区.这些被划分为用途不 ...

  9. jQuery--文档处理案例

    需求 如上图,实现左右两边的选择菜单可以左右移动,'>'按钮一次只能移动被选中的一个菜单,'>>'按钮一次移动所有被选择的菜单,'>>>'按钮 将所有菜单进行移动, ...

  10. sp-MVC-ideabaok

    直接通过初始化器创建 或者通过创建maven工程在自己添加需要的东西 配置 dispatcher-servlet.xml 包括扫描加载包: <context:component-scan bas ...