• Doris 2.0.1 Dockerfile制作


    镜像编译

    准备工作

    1、创建目录         
    └── docker-build                                       // 构建根目录 
        ├── be
        │?? ├── Dockerfile
        │?? └── resource                                  // 资源目录
        │??     ├── apache-doris-2.0.1.1-bin-x64.tar.gz    // 二进制程序包
        │??     └── init_be.sh                              // 启动及注册脚本

                    └── java-udf-jar-with-dependencies.jar   // java udf jar包 需单独下载
        └── fe                                                      // FE 构建目录
            ├── Dockerfile
            └── resource
                ├── apache-doris-2.0.1.1-bin-x64.tar.gz     // 二进制程序包
                ├── fe.conf                                         // fe 配置文件
                └── init_fe.sh                                     // 启动及注册脚本

    mkdir -p /opt/dockerfile/doris2/docker-build/be/resource
    mkdir -p /opt/dockerfile/doris2/docker-build/fe/resource

    fe.conf 已添加部分参数

    解压后的目录结构如下:

    -----------------

    目录结构与doris 1.2.4不一样 改动较大

    -------------------

    cp apache-doris-2.0.1.1-bin-x64.tar.gz /opt/dockerfile/doris2/docker-build/fe/resource/

    下载 init_fe.sh 

    doris/docker/runtime/fe/resource/init_fe.sh

    下载 init_be.sh 

    doris/docker/runtime/be/resource/init_be.sh

    ----------------------------------------------------------------------------------------------------------

    FE  DockerFile:

    #设置环境变量
    FROM openjdk:8u342-jdk
    # 下载软件至镜像内,可根据需要替换
    ENV JAVA_HOME="/usr/local/openjdk-8/" \
        PATH="/opt/apache-doris/fe/bin:$PATH"
    ADD ./resource/apache-doris-2.0.1.1-bin-x64.tar.gz /opt/

    USER root

    RUN apt-get update && \
        apt-get install -y default-mysql-client && \
        apt-get clean && \
        mkdir /opt/apache-doris && \
        cd /opt && \
        mv apache-doris-2.0.1.1-bin-x64/fe /opt/apache-doris/fe

    ADD ./resource/init_fe.sh /opt/apache-doris/fe/bin 
    COPY ./resource/fe.conf /opt/apache-doris/fe/conf

    RUN chmod 755 /opt/apache-doris/fe/bin/init_fe.sh && \
        chmod 755 /opt/apache-doris/fe/bin/start_fe.sh && \
        chmod 755 /opt/apache-doris/fe/bin/stop_fe.sh

    # ENTRYPOINT ["/opt/apache-doris/fe/bin/init_fe.sh"]
    CMD ./opt/apache-doris/fe/bin/init_fe.sh && tail -f /dev/null

    /opt/dockerfile/doris/docker-build/fe 目录下执行

    docker build . -t apache-doris:2.0.1.1-fe

    构建时间较长,需等待。

    docker images

    docker tag apache-doris:2.0.1.1-fe 192.168.1.249:16443/bigdata/apache-doris:2.0.1.1-fe

    docker push 192.168.1.249:16443/bigdata/apache-doris:2.0.1.1-fe

    打包:

    docker save -o apache-doris-2.0.1.1-fe.tar apache-doris:2.0.1.1-fe

    时间较长,请耐心等待

    load镜像:

    docker load -i apache-doris-2.0.1.1-fe.tar

    启动:前期环境准备

    需在宿主机执行如下命令

    sysctl -w vm.max_map_count=2000000
    

    修改后查看:

    sysctl -a|grep vm.max_map_count

    6、禁用 SELinux

    # 临时关闭
    setenforce 0
    # 永久禁用
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

    7、

    1 FE 启动:

    docker run -itd \
    --name=fe \
    --env FE_SERVERS="fe1:${当前机器的内网IP}:9010" \
    --env FE_ID=1 \
    -p 8030:8030 \
    -p 9030:9030 \
    -v /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta \
    -v /data/fe/log:/opt/apache-doris/fe/log \
    --net=host \
    apache/doris:2.0.0_alpha-fe-x86_64

    例子如下:

    docker run -itd  --restart=always  --name=fe --env FE_SERVERS="fe1:192.168.1.244:9010" --env FE_ID=1 -p 8030:8030 -p 9030:9030 -v /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta -v /data/fe/log:/opt/apache-doris/fe/log --net=host apache-doris:2.0.1.1-fe

    docker ps -a 发现没有启动成功

    docker logs fe  查看容器日志

    docker rm fe  删除容器

    docker rmi 4fa6fb409922 删除镜像

    1 BE Dockerfile :

    FROM openjdk:8u342-jdk

    # 设置环境变量
    ENV JAVA_HOME="/usr/local/openjdk-8/" \
        PATH="/opt/apache-doris/be/bin:$PATH"

    # 下载软件至镜像内,可根据需要替换
    ADD ./resource/apache-doris-2.0.1.1-bin-x64.tar.gz /opt/
    COPY ./resource/java-udf-jar-with-dependencies.jar /opt/

    RUN apt-get update && \
        apt-get install -y default-mysql-client && \
        apt-get clean && \
        mkdir /opt/apache-doris && \
        cd /opt && \
        mv apache-doris-2.0.1.1-bin-x64/be /opt/apache-doris/be && \
        mv /opt/java-udf-jar-with-dependencies.jar /opt/apache-doris/be/lib

    ADD ./resource/init_be.sh /opt/apache-doris/be/bin
    RUN chmod 755 /opt/apache-doris/be/bin/init_be.sh && \
        chmod 755 /opt/apache-doris/be/bin/start_be.sh && \
        chmod 755 /opt/apache-doris/be/bin/stop_be.sh

    ENTRYPOINT ["/opt/apache-doris/be/bin/init_be.sh"]

    /opt/dockerfile/doris/docker-build/be 目录下执行

    docker build . -t apache-doris:2.0.1.1-be

    docker tag apache-doris:2.0.1.1-be 192.168.1.249:16443/bigdata/apache-doris:2.0.1.1-be
    docker push 192.168.1.249:16443/bigdata/apache-doris:2.0.1.1-be

    打包:

    docker save -o apache-doris-2.0.1.1-be.tar apache-doris:2.0.1.1-be

    load镜像:

    docker load -i apache-doris-2.0.1.1-be.tar

    docker run -itd \
    --name=be \
    --env FE_SERVERS="fe1:${当前机器的内网IP}:9010" \
    --env BE_ADDR="${当前机器的内网IP}:9050" \
    -p 8040:8040 \
    -v /data/be/storage:/opt/apache-doris/be/storage \
    -v /data/be/log:/opt/apache-doris/be/log \
    --net=host \
    apache/doris:2.0.0_alpha-be-x86_64

    docker run -itd --restart=always --name=be --env FE_SERVERS="fe1:${当前机器的内网IP}:9010" --env BE_ADDR="${当前机器的内网IP}:9050" -p 8040:8040 -v /data/be/storage:/opt/apache-doris/be/storage -v /data/be/log:/opt/apache-doris/be/log --net=host apache/doris:2.0.0_alpha-be-x86_64

    3台节点  需修改 BE_ADDR

    docker run -itd --restart=always  --name=be --env FE_SERVERS="fe1:192.168.1.244:9010" --env BE_ADDR="192.168.1.244:9050" -p 8040:8040 -v /data/be/storage:/opt/apache-doris/be/storage -v /data/be/log:/opt/apache-doris/be/log --net=host apache-doris:2.0.1.1-be

    docker run -itd --name=be --env FE_SERVERS="fe1:192.168.1.244:9010" --env BE_ADDR="192.168.1.243:9050" -p 8040:8040 -v /data/be/storage:/opt/apache-doris/be/storage -v /data/be/log:/opt/apache-doris/be/log --net=host apache-doris:2.0.1.1-be

    docker run -itd --name=be --env FE_SERVERS="fe1:192.168.1.244:9010" --env BE_ADDR="192.168.1.249:9050" -p 8040:8040 -v /data/be/storage:/opt/apache-doris/be/storage -v /data/be/log:/opt/apache-doris/be/log --net=host apache-doris:2.0.1.1-be

    登录容器

    docker exec -it be bash

    查看FE-Config:  cat /opt/apache-doris/be/conf/be.conf  

    修改priority_networks参数,例如当前节点的 IP 地址为 10.10.2.21,则需要更改为 10.10.2.0/24 填入,这里需要填入的是 IP 子网网段地址,并非 IP 地址

    sed -i 's/priority_networks = /priority_networks = 192.168.1.0\/24/g' /opt/apache-doris/be/conf/be.conf

    更换为当前节点的IP子网网段地址

    在容器内执行启动命令

    /opt/apache-doris/be/bin/start_be.sh --daemon

    查看日志:

    tail -500f /opt/apache-doris/be/log/be.out

    退出容器 exit

    在Doris数据库中添加BE配置

    mysql -uroot -P9030 -h192.168.1.244

    ALTER SYSTEM ADD BACKEND "192.168.1.244:9050";

    使用 mysql-client 连接到 FE,并执行show proc '/backends'\G; 查看 BE 运行情况。如一切正常,isAlive 列应为 true

  • 相关阅读:
    探索GIS+物联网应用场景 MapGIS IoT实时大数据解决方案
    java计算机毕业设计ssm+vue微空间私人定向共享系统
    嵌入式Linux应用开发-基础知识-第十六章GPIO和Pinctrl子系统的使用
    架构师之路七分布式系统演化之duboo详解
    C++程序练习
    安全线程的集合
    MobPush丨iOS端SDK API
    EN 671-1固定式消防系统软管—CE认证
    proxmox PVE 安装 黑苹果
    练习:查询学生新学期选课(python之str、dict、list试炼)
  • 原文地址:https://blog.csdn.net/wangqiaowq/article/details/132985340