Doris Docker部署

官方文档:https://doris.apache.org/zh-CN/docs/summary/basic-summary

先使用以下命令查看部署doris的机器是否支持AVX2指令集

cat /proc/cpuinfo | grep avx2
# 有输出则表示本机支持AVX2

如果机器支持AVX2指令集,可以直接拉取镜像

$ docker pull apache/doris:版本号

跳到第四步继续执行

如果不支持AVX2,只能去官网下载no-avx2版本的包手动构建docker镜像进行部署。

本文以doris:1.2.2为例

1.准备安装包


下载地址

https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.2/1.2.2-rc01/

Doris Docker部署_第1张图片

2.构建FE


构建环境目录如下:

Doris Docker部署_第2张图片

①创建构建环境目录

mkdir-p ./docker-build/fe/resource

②下载官方编译好的二进制包

将包拷贝至./docker-build/fe/resource目录下

③编写FE的Dockerfile脚本

# 选择基础镜像
FROM openjdk:8u342-jdk
​
# 设置环境变量
ENV JAVA_HOME="/usr/local/openjdk-8/" \
    PATH="/opt/apache-doris/fe/bin:$PATH"
​
# 下载软件至镜像内,可根据需要替换
ADD ./resource/apache-doris-fe-1.2.2-bin-x86_64.tar.xz /opt/
# ADD可以将包解压至目标目录下
​
RUN mkdir /opt/apache-doris && \
    cd /opt && \
    mv apache-doris-fe-1.2.2-bin-x86_64 /opt/apache-doris/fe
​
COPY ./resource/init_fe.sh /opt/apache-doris/fe/bin
RUN chmod  755 /opt/apache-doris/fe/bin
​
ENTRYPOINT ["/opt/apache-doris/fe/bin/init_fe.sh"]

编写完成后命名为Dockerfile并保存至./docker-build/fe目录下

④编写FE的执行脚本

参考:https://github.com/apache/doris/tree/master/docker/runtime/fe/resource/init_fe.sh

无特殊要求可以直接复制

编写后命名为 init_fe.sh 并保存至 ./docker-build/fe/resouce 目录下

⑤构建执行

构建FE:

cd ./docker-build/fe
docker build . -t ${fe-tagName}

需要注意的是,${tagName} 需替换为你想要打包命名的 tag 名称,如:doris:1.2.2-fe

构建完成后如果没有报错,可以用docker images查看镜像是否创建成功

3.构建BE


①创建构建环境目录

mkdir-p ./docker-build/be/resource

②构建环境目录如下:

└── docker-build // 构建根目录

└── be // BE 构建目录

├── dockerfile // dockerfile 脚本

└── resource // 资源目录

├── init_be.sh // 启动及注册脚本

└── apache-doris-x.x.x-bin-x86_64/arm-be.tar.gz // 二进制程序包

③编写BE的Dockerfile脚本

~~~sh

# 选择基础镜像
FROM openjdk:8u342-jdk
​
# 设置环境变量
ENV JAVA_HOME="/usr/local/openjdk-8/" \
    PATH="/opt/apache-doris/be/bin:$PATH"
​
# 下载软件至镜像内,可根据需要替换
ADD ./resource/apache-doris-be-1.2.2-bin-x86_64-noavx2.tar.xz /opt/
# ADD可以将包解压至目标目录下
​
RUN mkdir /opt/apache-doris && \
    cd /opt && \
    mv apache-doris-be-1.2.2-bin-x86_64-noavx2 /opt/apache-doris/be
​
COPY ./resource/init_be.sh /opt/apache-doris/fe/bin
RUN chmod  755 /opt/apache-doris/be/bin
​
ENTRYPOINT ["/opt/apache-doris/be/bin/init_fe.sh"]

编写后命名为 Dockerfile 并保存至 ./docker-build/be 目录下

这里我遇到了一个很离谱的问题,将init_be.sh复制到目标目录后,构建docker镜像的时候会报No such file的错误。
我的解决办法是,将apache-doris-be-1.2.2-bin-x86_64-noavx2.tar.xz先解压,将init_be.sh文件放到bin目录下后重新压缩成tar文件,再ADD到目标目录,成功解决

④编写BE的执行脚本

参考:https://github.com/apache/doris/blob/master/docker/runtime/be/resource/init_be.sh

无特殊要求可以直接复制

编写后命名为 init_be.sh 并保存至 ./docker-build/be/resouce 目录下

⑤执行构建

构建BE:

cd ./docker-build/be
docker build . -t ${be-tagName}

4.部署Docker集群


#首先需要在宿主机执行如下命令
sysctl -w vm.max_map_count=2000000
#Docker Run 命令
#1FE & 1BE命令模板
docker run -itd \
--name=fe \
--envFE_SERVERS="fe1:10.10.204.227:9010" \
--envFE_ID=1 \
-p8030:8030 \
-p9030:9030 \
-v /docker/doris/fe/doris-meta:/usr/share/apache-doris/fe/doris-meta \
-v /docker/doris/fe/conf:/usr/share/apache-doris/fe/conf \
-v /docker/doris/fe/log:/usr/share/apache-doris/fe/log \
doris:1.2.2-fe
​
docker run -itd \
--name=be \
--envFE_SERVERS="fe1:10.10.204.227:9010" \
--envBE_ADDR="10.10.204.227:9050" \
-p8040:8040 \
-v /docker/doris/be/storage:/opt/apache-doris/be/storage \
-v /docker/doris/be/conf:/opt/apache-doris/be/conf \
-v /docker/doris/be/log:/opt/apache-doris/be/log \
doris:1.2.2-be
我是将FE和BE部署在了同一节点
多FE/BE可以参考: https://github.com/apache/doris/blob/master/docker/runtime/docker-compose-demo/build-cluster/rum-command/3fe_3be.sh

查看FE/BE是否启动成功

访问fe_ip:8030

Doris Docker部署_第3张图片
用户名root 没有密码
连接mysql
mysql -h FE_IP -P9030 -uroot

至此doris部署完毕。

你可能感兴趣的:(Apache,doris,docker,容器,apache,运维,大数据)