Docker 容器化部署是现时最常见且使用性较高的部署花式之一,具有创建或者、快速部署、移植性强等特色,可极大节俭垄断开垦、测试和部署时期,一次构建,遍地运行。
本教程将指挥有快速部署测试和 Docker 学习需求的同学,快速进行部署单节点 Apache Doris 集群或伪溜达式 Apache Doris 集群。同期先容何如自主的构建 Apache Doris 的 Docker 生态本色,如 Dockerfile 书写、Docker Images 构建、Docker-Compose 编排等本色。
本教程整个模块的构建配景是以快速部署和体验学习为方针,使用 1FE 1BE 规格来撰写的,如有 NFE MBE 需求的同学可自行在此基础上进行编排改写。
(本教程不再赘述 Docker 装配、 Dockerfile 、Docker-Compose 等编写时剧本里面使用的相应敕令作用,如有需要可参考 Docker 官方文档。)
# Dockerfile
编写思绪
镜像的制作应当耀眼以下几点:
基础父镜像最好采取经过 Docker-Hub 认证的官方镜像,如有 DOCKER OFFICIAL IMAGE 标签的镜像提供者,一般是官方认证过莫得问题的镜像源。 基础父镜像采取时尽可能以能最小可用环境的原则进行遴荐,即遴荐时以沸腾基础必备环境的同期,镜像尽可能以最小的原则进行挑选,不要径直使用诸如齐备的 CentOS 镜像、Ubuntu 镜像等提供完备功能的镜像,若是使用后者,则咱们构建出的包会很大,不利于使用和传播,也会变成磁盘空间滥用。 最好不要高度封装,若仅仅想提供一个软件的原生镜像,最好的构建花式是最小可用环境 + 软件本身 ,时间不混合其他的逻辑和功能处理,这么不错更原子化的进行镜像编排以及后续的爱戴和更新操作。 单独用一个剧本制成的镜像完成后续对其他镜像的各式业务操作和运维操作。构建 Image 和使用 Docker-Compose 时,需要用官方齐备的 Docker 模范,使用官方提供的剧本进行装配最好。笔据 Apache Doris 的简陋架构(FE + BE),以及不依赖其他组件和环境的秉性,制作时应将 FE 和 BE 差别制看成两个镜像,再制作 Register 镜像来操控 FE 和 BE 镜像,这么不错原子化的制作可用镜像,也便于后期的爱戴和更新。
Docker 作事部署( CentOS 系统和 Ubuntu 系统)
Docker 是一个开源的垄断容器引擎,该教程的环境基础为 Docker。
本末节只以 CentOS 系统和 Ubuntu 系统为例,Windows 系统较繁琐不再赘述,MacOS 系统官方下载装配即可,浅显进度极高,不再赘述。
1. 卸载老旧的版块(未装配过可略)
#CentOS
yum remove docker docker-engine docker.io
#Ubuntu
sudo apt-get remove docker docker-engine docker.io
2. 装配最新的 Docker
curl -sSL https://get.docker.com/ | sh
3. 启动并添加开机启动
sudo systemctl start docker #启动docker
sudo systemctl enable docker #加入开机自启动
4. 检验装配
docker version
5. 若出现 Client 和 Server 两部天职容,说明装配得胜。
FE Dockerfile
FE 是 Java 模范,是以咱们采取Openjdk 提供的 JDK8 最新的 8u342-jdk 镜像看成基础父镜像,提供两个版块:
以下剧本需定名为 Dockerfile !
使用腹地二进制# 遴荐基础镜像
FROM openjdk:8u342-jdk
# 笔据我方需求进行替换,旅途使用相对旅途
ARG package_url=腹地二进制包旅途,与 package_name 拼接获取齐备目次
# 举例 ARG package_url=./
ARG package_name=二进制包文献名
# 举例 ARG package_name=apache-doris-1.1.1-bin-x86.tar.gz
ARG package_path=解压后文献目次名
# 举例 ARG package_path=apache-doris-1.1.1-bin-x86
# 竖立环境变量
ENV JAVA_HOME= "/usr/local/openjdk-8/"\
PATH= "/usr/local/apache-doris/fe/bin: $PATH"
# 下载软件至镜像内,可笔据需要替换
COPY $package_url/ $package_name/usr/ local/
# 部署软件
RUN tar -zxvf /usr/ local/ $package_name-C /usr/ local/ && \
mv /usr/ local/ $package_path/usr/ local/apache-doris && \
rm -rf /usr/ local/ $package_name/usr/ local/apache-doris/be /usr/ local/apache-doris/udf /usr/ local/apache-doris/apache_hdfs_broker
CMD [ "bash"]
使用 URL 下载构建# 遴荐基础镜像
FROM openjdk:8u342-jdk
# 笔据我方需求进行替换
ARG package_url=远端URL下载地址
# 举例 ARG package_url=https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.1-rc03/apache-doris-1.1.1-bin-x86.tar.gz
ARG package_name=二进制包文献名
# 举例 ARG package_name=apache-doris-1.1.1-bin-x86.tar.gz
ARG package_path=解压后文献目次名
# 举例 ARG package_path=apache-doris-1.1.1-bin-x86
# 竖立环境变量
ENV JAVA_HOME= "/usr/local/openjdk-8/"\
PATH= "/usr/local/apache-doris/fe/bin: $PATH"
# 部署软件
RUN curl -o /usr/ local/apache-doris.tar.gz $package_url&& \
tar -zxvf /usr/ local/apache-doris.tar.gz -C /usr/ local/ && \
mv /usr/ local/ $package_path/usr/ local/apache-doris && \
rm -rf /usr/ local/ $package_name/usr/ local/apache-doris/be /usr/ local/apache-doris/udf /usr/ local/apache-doris/apache_hdfs_broker
CMD [ "bash"]
构建 Apache-Doris-FE-Docker-Image:
# 镜像名为用户自界说的称号
docker build . -t 镜像名
BE Dockerfile
BE Docker Image 构建,与 FE 大同小异,只需要更始基础父镜像和删除本色即可,修改如下:
基础父镜像修改为 bitnami/minideb:latest ENV PATH 中 fe 修改为 be,删除 Java 环境变量,添加 broker 环境变量 终末算帐目次中,将 be 修改为 fe使用腹地二进制包构建
# 遴荐基础镜像
FROM bitnami/minideb:latest
# 笔据我方需求进行替换
ARG package_url=腹地二进制包旅途,与 package_name 拼接获取齐备目次
# 举例 ARG package_url=./
ARG package_name=二进制包文献名
# 举例 ARG package_name=apache-doris-1.1.1-bin-x86.tar.gz
ARG package_path=解压后文献目次名
# 举例 ARG package_path=apache-doris-1.1.1-bin-x86
# 竖立环境变量
ENV PATH= "/usr/local/apache-doris/be/bin:/usr/local/apache-doris/apache_hdfs_broker/bin: $PATH"
# 下载软件至镜像内,可笔据需要替换
COPY $package_url/ $package_name/usr/ local/
# 部署软件
RUN tar -zxvf /usr/ local/ $package_name-C /usr/ local/ && \
mv /usr/ local/ $package_path/usr/ local/apache-doris && \
rm -rf /usr/ local/ $package_name/usr/ local/apache-doris/fe /usr/ local/apache-doris/udf
CMD [ "bash"]
使用 URL 下载构建
# 遴荐基础镜像
FROM bitnami/minideb:latest
# 笔据我方需求进行替换
ARG package_url=远端URL下载地址
# 举例 ARG package_url=https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.1-rc03/apache-doris-1.1.1-bin-x86.tar.gz
ARG package_name=二进制包文献名
# 举例 ARG package_name=apache-doris-1.1.1-bin-x86.tar.gz
ARG package_path=解压后文献目次名
# 举例 ARG package_path=apache-doris-1.1.1-bin-x86
# 竖立环境变量
ENV PATH= "/usr/local/apache-doris/be/bin:/usr/local/apache-doris/apache_hdfs_broker/bin: $PATH"
# 部署软件
RUN apt-get update && \
apt-get install -y curl && \
apt-get clean && \
curl -o /usr/ local/apache-doris.tar.gz $package_url&& \
tar -zxvf /usr/ local/apache-doris.tar.gz -C /usr/ local/ && \
mv /usr/ local/ $package_path/usr/ local/apache-doris && \
rm -rf /usr/ local/ $package_name/usr/ local/apache-doris/fe /usr/ local/apache-doris/udf
CMD [ "bash"]
构建 Apache-Doris-BE-Docker-Image:
docker build . -t 镜像名
Register Dockerfile
构建 Register Docker Image 时,主是是通过 Docker-Compose 来退换管控 Doris 的 FE 和 BE 启停及注册的剧本。
以下演示皆为最基础的剧本版块,剧本健壮性并不是很高,可笔据我方需要进行定制化开垦,比如增多历程判断,细目得胜失败等。
运转化 FE 剧本 init_fe.sh#!/bin/bash
echo"Start initializing Apache-Doris FE!"
cd/usr/ local/apache-doris/
perl -pi -e "s|# priority_networks = 10.10.10.0/24;192.168.0.0/16|priority_networks = 172.20.80.0/16|g"/usr/ local/apache-doris/fe/conf/fe.conf
start_fe.sh --daemon
echo"Apache-Doris FE initialized successfully!"
运转化 BE 剧本 init_fe.sh#!/bin/bash
echo"Start initializing Apache-Doris BE!"
cd/usr/ local/apache-doris/
perl -pi -e "s|# priority_networks = 10.10.10.0/24;192.168.0.0/16|priority_networks = 172.20.80.0/16|g"/usr/ local/apache-doris/be/conf/be.conf
start_be.sh --daemon
echo"Apache-Doris BE initialized successfully!"
注册 BE 至 FE 剧本 register.sh#!/bin/sh
echo"Welcome to Apache-Doris Docker-Compose to quickly build test images!"
echo"Start modifying the configuration files of FE and BE and run FE and BE!"
docker cp /root/init_fe.sh doris-fe:/root/init_fe.sh
docker execdoris-fe bash -c "/root/init_fe.sh"
docker cp /root/init_be.sh doris-be:/root/init_be.sh
docker execdoris-be bash -c "/root/init_be.sh"
sleep 30
echo"Get started with the Apache Doris registration steps!"
mysql -h 172.20.80.2 -P 9030 -uroot -e "ALTER SYSTEM ADD BACKEND \"172.20.80.3:9050\";"
echo"The initialization task of Apache-Doris has been completed, please start to experience it!"
Register Dockerfile 本色如下:
# Base Images 基础镜像
FROM bash:latest
# 添加重本文献
ADD *.sh /root/
# 竖立责任目次
WORKDIR /root/
# 竖立镜像源及基础环境
RUN /bin/sh -c echo'http://mirrors.sjtug.sjtu.edu.cn/alpine/v3.15/main'> /etc/apk/repositories && \
echo'http://mirrors.sjtug.sjtu.edu.cn/alpine/v3.15/community'>> /etc/apk/repositories && \
apk update && \
apk add --no-cache mysql-client docker && \
rm -rf /usr/bin/docker-proxy /usr/bin/docker-init /usr/bin/dockerd && \
chmod 755 *.sh
# Docker-Compose
Compose 是⽤于界说和运⾏多容器 Docker 应⽤模范的⼯具,咱们使用它来完成对 Doris 作事的编排及运转化责任。
Docker-compose 的剧本文献定名应为 docker-compose.yml
这里有几个参数需要防备讲一下:
Apache Doris 是 IP 明锐和存储明锐的有情景作事,是以在筹划 Compose 时要将此看成准则之一。 处分上述问题的决策是通过竖立 networks 自界说一个非凡的网卡,指定每个 Docker 容器节点的容器 IP 地址。 由于该教程为 1FE 1BE 的快速部署作事制作教程,长久化挂载才智将在剧本内演示,如有需要可自行添加映射卷。 Compose 的作事模块本质是不错成立依赖轨则的,这么不错灵验的防护有些剧本干系因为依赖伪善而本质失败。这里演示两个剧本,一个 1FE 1BE(添加数据长久化映射干系),一个 1FE 3BE(未添加数据长久化映射干系),如有需要可依照该基础进行自行修改适配。
1FE 1BE
version: '3'
services:
docker-fe:
image: "FE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-fe"
container_name: "doris-fe"
tty: true
hostname: "fe"
restart: always
ports:
- 8030:8030
- 9030:9030
networks:
doris_net:
ipv4_address: 172.20.80.2
docker-be:
image: "BE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-be"
container_name: "doris-be"
tty: true
hostname: "be"
restart: always
ports:
- 8041:8040
- 9001:9000
- 9051:9050
networks:
doris_net:
ipv4_address: 172.20.80.3
register:
image: "Register-Image"# 如 "apache/doris:register"
container_name: "doris-register"
婷婷丁香五月天在线播放在线观看hostname: "register"
privileged: true
command: [ "sh", "-c", "/root/register.sh"]
depends_on:
- docker-fe
韩国精品无码一区二区在线- docker-be-01
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
doris_net:
ipv4_address: 172.20.80.4
networks:
doris_net:
ipam:
config:
- subnet: 172.20.80.0/16
1FE 3BE
version: '3'
services:
docker-fe:
image: "FE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-fe"
container_name: "doris-fe"
tty: true
hostname: "fe"
restart: always
ports:
- 8030:8030
- 9030:9030
networks:
doris_net:
ipv4_address: 172.20.80.2
docker-be-01:
image: "BE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-be"
container_name: "doris-be-01"
tty: true
hostname: "be-01"
restart: always
ports:
- 8041:8040
- 9001:9000
- 9051:9050
networks:
doris_net:
ipv4_address: 172.20.80.3
docker-be-02:
image: "BE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-be"
container_name: "doris-be-02"
tty: true
hostname: "be-02"
restart: always
ports:
- 8042:8040
- 9002:9000
- 9052:9050
networks:
doris_net:
ipv4_address: 172.20.80.4
docker-be-03:
image: "BE-Docker-Image"# 如 "apache/doris:1.1.2-rc06-be"
container_name: "doris-be-03"
tty: true
hostname: "be-03"
restart: always
ports:
- 8043:8040
- 9003:9000
- 9053:9050
networks:
doris_net:
ipv4_address: 172.20.80.5
# 请看耀眼事项!
register:
image: "Register-Image"# 如 "apache/doris:register"
container_name: "doris-register"
hostname: "register"
privileged: true
command: [ "sh", "-c", "/root/register.sh"]
depends_on:
- docker-fe
- docker-be-01
- docker-be-02
- docker-be-03
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
doris_net:
ipv4_address: 172.20.80.6
networks:
doris_net:
ipam:
config:
- subnet: 172.20.80.0/16
耀眼:由于咱们 Register 镜像里的注册及运转化剧本都只写了 1FE 1BE 的情况,是以不适用 NFE MBE 的 Compose,如有需要需自行制作 Register 镜像。
# 快速使用
制作好镜像以后,就不错快速使用了,形势如下:
1. Docker-Compose 作事部署
Compose 是用于界说和运行多容器 Docker 垄断模范的器具。
1) 下载最新版的 docker-compose文献
GitHub拉取sudo curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/ local/bin/docker-compose
国内 DaoCloud 拉取sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/ local/bin/docker-compose
2)添加本质权限
sudo chmod +x /usr/ local/bin/docker-compose
3)检验装配恶果
docker-compose --version
> docker-compose version 1.25.1
2. 拉取或者制作 Compose 剧本
以下为 1 FE 1 BE 单节点部署 Apache Doris 1.1.2 版块的剧本,若是有需要,可笔据自身调养。
如需切换版块号,将 docker-fe 和 docker-be 的镜像进行切换即可,现时补助的镜像一起在 https://hub.docker.com/repository/docker/apache/doris/可检讨,会跟着版块发布束缚更新。
耀眼!一定需要将该文献保存至指标目次,定名为 docker-compose.yml 。
3. 启动测试
1)切换旅途到 docker-compose.yml 目次下
cddocker-compose.yml_path
2)启动神色
docker-compose up
3)输出尾部信息应为如下
Creating doris-fe ... done
Creating doris-register ... done
Creating doris-fe ...
Creating doris-register ...
Attaching to doris-be, doris-fe, doris-register
doris-register | Welcome to Apache-Doris Docker-Compose to quickly build testimages!
doris-register | Start modifying the configuration files of FE and BE and run FE and BE!
doris-register | Start initializing Apache-Doris FE!
doris-register | Apache-Doris FE initialized successfully!
doris-register | Start initializing Apache-Doris BE!
doris-register | Apache-Doris BE initialized successfully!
doris-register | Get started with the Apache Doris registration steps!
doris-register | The initialization task of Apache-Doris has been completed, please start to experience it!
doris-register exited with code 0
4)耀眼!若莫得报错,看到 doris-register exited with code 0 后请关闭现时窗口!再行开放 Shell 连气儿进行操作, 一定弗成 Ctrl + C 割断退出!
5)检验运行
6)若是是诬捏机,需要关闭防火墙,宿主机能 Ping 通诬捏机,若是是云作事器,需要开放 8030,9030 端口
敕令行检验# FE 健康检验
curl http://fe_host:fe_http_port/api/bootstrap
> { "status": "OK", "msg": "Success"}
# BE 健康检验
curl http://be_host:be_http_port/api/health
> { "status": "OK", "msg": "To Be Added"}
打听 FE-WEB-UI 界面http://诬捏机IP或者云作事器公网IP:8030
登录账号为 root 或者 admin 密码为空#结语
使用 Docker 镜像及 Compose 器具,不错快速的部署一套测试或者学习使用的集群,但有极度需求的情况,比如更或者的敕令完成指定例模的 NFE MBE 环境搭建,致使多 FE 高可用及 Observer 混部的各式情况,将在后续 《Apache Doris Docker 高阶制作教程》里西宾,以及提供相应的社区生态器具。
END
这里有最新开源资讯、软件更新、本事干货等本色
点这里 ↓↓↓ 铭刻 柔软✔ 标星⭐ 哦~日韩精品东京热无码视频播放
镜像剧本dorislocaldocker声明:该文观念仅代表作家本身,搜狐号系信息发布平台,搜狐仅提供信息存储空间作事。