evn: ubuntu20.04 jdk8_172 doris 0.13.12
############# 1 啟動Fe BE ###################
准備:
sudo mkdir -p /opt/docker/doris/ && sudo chmod -R 777 /opt/docker/doris/
PRIORITY_NETWORKS 可以通過 > ip a 查看
運行(啟動fe ):
sudo docker run -itd --privileged=true --restart=always --name doris-fe_1_0 --net=host -e FE_ROLE=fe-leader -e PRIORITY_NETWORKS=192.168.18.176/24 \ -v /opt/docker/doris/fe/log:/data/fe/log -v /opt/docker/doris/fe/doris-meta:/data/fe/doris-meta -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone happysea/doris:1.0
運行(啟動be ):
sudo docker run -itd --privileged=true --restart=always --name doris-be_1_0 --net=host -e FE_ROLE=be --ulimit nofile=102400:102400 \ -e PRIORITY_NETWORKS=192.168.18.54/24 \ -v /opt/docker/doris/be/log:/data/be/log -v /opt/docker/doris/be/storage:/data/be/storage -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone happysea/doris:1.0
關於文件數: 可以添加
--ulimit nofile=102400:102400
like:
sudo docker run -itd --privileged=true --name doris-be --net=host --restart=always --ulimit nofile=102400:102400 -e xx...... images
JVM 參數是默認最大4G ,建議改為8G>如果需要:
可以修改:
在啟動添加參數: -e JAVA_OPTS="-Xmx4096m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE"
############# 2.連接添加Be ###################
連接fe
mysql -h host -P 9030 -uroot
修改root 用戶密碼 (如果需要 ): > set password for 用戶名@localhost = password('新密碼');
其中 host 為 FE 所在節點 ip;port 為 fe/conf/fe.conf 中的 query_port;默認使用 root 賬戶,無密碼登錄。
添加be
ALTER SYSTEM ADD BACKEND “host1:9050”;
ALTER SYSTEM ADD BACKEND “host2:9050”;
ALTER SYSTEM ADD BACKEND “host3:9050”;
(
如果使用多組戶功能,則執行以下命令添加BE:
ALTER SYSTEM ADD FREE BACKEND “host:port”;
)
其中 host 為 BE 所在節點 ip;port 為 be/conf/be.conf 中的 heartbeat_service_port。
-
BE 進程將啟動並進入后台執行。日志默認存放在 be/log/ 目錄下。如啟動失敗,可以通過查看 be/log/be.log 或者 be/log/be.out 查看錯誤信息。
-
查看BE狀態
使用 mysql-client 連接到 FE,並執行
SHOW PROC '/backends';查看 BE 運行情況。如一切正常,isAlive列應為true。
刪除be: ALTER SYSTEM DECOMMISSION BACKEND "192.168.18.52:9050";
查看 fe與be狀態
show proc "/frontends";
show proc "/backends";
可以直接下載編譯好的:
http://doris.incubator.apache.org/zh-CN/downloads/downloads.html#apache-doris
Dockerfile:
FROM happysea/jdk8 MAINTAINER Sea <lshan523@163.com> RUN mkdir -p /data/be/log/ RUN mkdir -p /data/be/storage RUN mkdir -p /data/fe/doris-meta RUN mkdir -p /data/fe/log RUN chmod -R 755 /data/ COPY doris/ /opt/doris/ COPY docker-entrypoint.sh /opt/ WORKDIR /opt EXPOSE 8030 9020 9030 9060 9070 8040 9050 8060 #ENTRYPOINT["/bin/bash"] ENTRYPOINT ["/bin/bash","/opt/docker-entrypoint.sh"]
docker-entrypoint.sh
#!/bin/bash
chmod -R 755 /data/
echo "fe_role:"$FE_ROLE echo "leader:"$FE_LEADER source /etc/profile if [[ $FE_ROLE = "fe-leader" ]]; then echo "fe-leader" /opt/doris/fe/bin/start_fe.sh elif [[ $FE_ROLE = "be" ]]; then echo "be" /opt/doris/be/bin/start_be.sh elif [[ $FE_ROLE = "fe-follower" ]]; then /opt/doris/fe/bin/start_fe.sh --helper $FE_LEADER else #/opt/doris/fs_broker/bin/start_broker.sh echo "do nothing " fi
打包: sudo docker build -t happysea/doris:latest
docker-compose 參考如下即可:
以下可以參考:
Docker搭建Doris集群監控grafana+prometheus: https://blog.csdn.net/zuoliansheng/article/details/108736188
使用Docker快速搭建Doris集群: https://blog.csdn.net/jklcl/article/details/112910796
》
制作docker鏡像
# centos7:jdk8是我們自己做的基礎鏡像 FROM centos7:jdk8 RUN mkdir -p /home/doris ENV JAVA_HOME /usr/lib/jvm/java COPY ./fe/ /home/doris/fe COPY ./be/ /home/doris/be COPY ./apache_hdfs_broker/ /home/doris/fs_broker EXPOSE 8030 9020 9030 9010 9070 9060 8060 8040 9050 8000 VOLUME ["/home/doris/fe/conf", "/home/doris/fe/log", "/home/doris/fe/doris-meta", "/home/doris/be/conf", "/home/doris/be/log", "/home/doris/be/storage", "/home/doris/fs_brokers/conf"] COPY entrypoint.sh / RUN chmod +x entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]
entrypoint.sh
#!/bin/sh echo "fe_role:"$FE_ROLE echo "leader:"$FE_LEADER if [[ $FE_ROLE = 'fe-leader' ]]; then /home/doris/fe/bin/start_fe.sh elif [[ $FE_ROLE = 'be' ]]; then /home/doris/be/bin/start_be.sh elif [[ $FE_ROLE = 'fe-follower' ]]; then /home/doris/fe/bin/start_fe.sh --helper $FE_LEADER else /home/doris/fs_broker/bin/start_broker.sh fi
創建鏡像
docker build -f DockerFile -t doris:0.12.21-release .
docker-compose啟動
FE
version: '3.7' services: doris-fe: image: doris:0.12.21-release restart: always network_mode: "host" container_name: "doris-fe" ports: - "8030:8030" - "9010:9010" - "9020:9020" - "9030:9030" volumes: - "/xxx/doris/fe/log:/home/doris/fe/log" - "/xxx/doris/fe/doris-meta:/home/doris/fe/doris-meta" - "/xxx/doris/fe/conf:/home/doris/fe/conf" - "/etc/localtime:/etc/localtime:ro" environment: - FE_ROLE=fe-follower - FE_LEADER=xxxx:9010 security_opt: - seccomp:unconfined
創建文件夾: mkdir /xxx/doris/fe/conf
啟動leader: docker-compose -f docker-compose-doris-fe-leader.yml up -d
啟動follower: 略
UI界面: http://s-hadoop-log01:8030/
注:第一次啟動時先啟動leader,再啟動follower,因為follower指向leader所在機器之后的啟動,都按照leader起就可以了
BE
version: '3.7' services: doris-be: image: doris:0.12.21-release restart: always network_mode: "host" container_name: "doris-be" ports: - "8040:8040" - "8060:8060" - "9050:9050" - "9060:9060" - "9070:9070" volumes: - "/xxx/doris/be/log:/home/doris/be/log" - "/xxx/doris/be/storage:/home/doris/be/storage" - "/xxx/doris/be/conf:/home/doris/be/conf/" - "/etc/localtime:/etc/localtime:ro" environment: - FE_ROLE=be
創建文件夾: mkdir /xxx/doris/be/conf
啟動be: docker-compose -f docker-compose-doris-be.yml up -d
UI界面: http://s-hadoop-log01:8040/
doris-fs-broker:
version: '3.7' services: doris-fs-broker: image: doris:0.12.21-release restart: always network_mode: "host" container_name: "doris-fs-broker" ports: - "8000:8000" volumes: - "/xxx/doris/fs_broker/conf:/home/doris/fs_broker/conf" - "/xxx/doris/fs_broker/log:/home/doris/fs_broker/log" - "/etc/localtime:/etc/localtime:ro" environment: - FE_ROLE=fs
創建文件夾: mkdir /xxx/doris/fs_broker/conf
啟動fs: docker-compose -f docker-compose-doris-fs-broker.yml up -d
