一、编译源码
(1)拉取编译镜像docker pull apache/incubator-doris:build-env-1.2
(2)Mac电脑上拉取源码git clone https://github.com/apache/incubator-doris.git
  切换到指定分支git fetch origin branch-0.12:branch-0.12
  git checkout branch-0.12
(3)建议使用Docker挂载Mac电脑上的源码编译,这样产出的二进制文件在宿主机上。同时将本地.m2目录挂载到Docker,这样Docker不用重新下载Maven依赖库
  编译镜像id e847e7ed9a3c
  加速编译  build.sh 中的 PARALLEL 参数调整为 4 根据编译机子性能适当调整
(4)运行编译Docker
  docker run -it -v /Users/mac/.m2:/root/.m2 -v /Users/mac/JavaProject/incubator-doris:/root/incubator-doris apache/incubator-doris:build-env-1.2
(5)Docker里进入项目目录执行编译FE和BE
  sh build.sh --fe --be --clean  
(可选)编译broker  
cd fs_brokers/apache_hdfs_broker/ && sh build.sh 
  编译成功后如下所示,文件在output目录下 
二、Docker镜像创建 -FE和BE
(1)准备资料
  把编译好的fe和be拷贝到项目下docker目录中,从各自的output目录拷贝到docker目录下
  下载linux版jdk1.8版本---jdk1.8.0_291,放入docker目录下
  
(2)在项目的docker目录下创建Docker FE镜像,名称Dockerfile_fe
  构建Docker镜像:docker build -t lenmom/doris:fe-0.9.0 -f Dockerfile_fe  .
FROM centos:centos7.5.1804

RUN mkdir /home/palo/run/ -p

# copy jdk and palo binary
COPY jdk1.8.0_291/ /home/palo/run/jdk1.8.0_291/
COPY fe/ /home/palo/run/fe/ # set java home
ENV JAVA_HOME /home/palo/run/jdk1.8.0_291/ # set fe port: http/thrift/mysql/bdbje
EXPOSE 8030 9020 9030 9010 # fe log and meta-data
#VOLUME ["/home/palo/run/fe/conf" i"/home/palo/run/fe/log" "/home/palo/run/fe/palo-meta"] WORKDIR /home/palo/run/fe/ #CMD ["/bin/sh","/home/palo/run/fe/bin/start_fe.sh"]
(3)在项目的docker目录下创建Docker BE镜像,名称Dockerfile_be
  构建Docker镜像:docker build -t lenmom/doris:be-0.9.0 -f Dockerfile_be .
FROM centos:centos7.5.1804
#FROM ubuntu:18.04 RUN mkdir -p /home/palo/run/ RUN yum -y update \
&& yum install -y binutils-devel \
&& yum -y clean all \
&& rm -rf /var/cache/yum # copy be
COPY be/ /home/palo/run/be/ # set be port: thrift/rpc/http/heartbeat
EXPOSE 9060 9070 8040 9050 # be log,conf and data
#VOLUME ["/home/palo/run/be/conf", "/home/palo/run/be/log", "/home/palo/run/be/data/"] WORKDIR /home/palo/run/be/
RUN ldd lib/palo_be #CMD ["/bin/sh","/home/palo/run/be/bin/start_be.sh"]
三、创建Docker镜像
(1)创建并运行三个BE容器
  创建BE容器。注:查看Docker容器地址方式docker inspect --format='{{.NetworkSettings.IPAddress}}' doris-be1,需要先运行容器
  IP地址:172.17.0.2 3237bb924c1a
  docker run -it --name doris-be1 -p 9051:9050 -p 8041:8040 -p 9061:9060 -p 9071:9070 lenmom/doris:be-0.9.0
  IP地址:172.17.0.3 f05b9866555a
  docker run -it --name doris-be2 -p 9052:9050 -p 8042:8040 -p 9062:9060 -p 9072:9070 lenmom/doris:be-0.9.0
  IP地址:172.17.0.4 26318fd81365
  docker run -it --name doris-be3 -p 9053:9050 -p 8043:8040 -p 9063:9060 -p 9073:9070 lenmom/doris:be-0.9.0
  注:每个Docker容器需要修改信息
  [1]创建目录  创建 mkdir -p /home/palo/run/be/storage
  [2]项目目录下修改conf/be.conf
  修改为容器IP地址/子网掩码:priority_networks=容器IP/24  
启动BE:bin/start_be.sh --daemon
  停止BE:bin/stop_be.sh --daemon
docker exec -it 3237bb924c1a /bin/bash
(2)创建并运行一个FE容器。注:因为FE需要知道BE地址,所以在之后创建
  注:查看Docker容器地址方式docker inspect --format='{{.NetworkSettings.IPAddress}}' doris-fe,需要先运行容器
  docker run -it --name doris-fe -p 9030:9030 -p 8030:8030 -p 9010:9010 -p 9020:9020 --link doris-be1 --link doris-be2 --link doris-be3 lenmom/doris:fe-0.9.0
  注:每个Docker容器需要修改信息
  [1]创建目录
  创建 mkdir -p /opt/fe/doris-meta
  创建 mkdir -p /home/palo/run/fe/log
  [2]修改conf/fe.conf
  修改为容器IP地址/子网掩码:priority_networks=容器IP/24
  修改meta_dir=/opt/fe/doris-meta
开启物化视图 enable_materialized_view=true
  [3] JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上
  启动FE: bin/start_fe.sh --daemon
开启Fe的Report:mysql执行 set is_report_success=true;
(3)(可选)镜像导入导出
  镜像保存到本地
  sudo docker save -o doris-fe-0.9.0-docker.img lenmom/doris:fe-0.9.0
  导入本地镜像
  sudo docker load --input doris-be-0.9.0-docker.img
(4)安装Mysql客户端,连接测试用
  FE容器更新yum     yum update
  yum install mysql
  初始化mysql密码
  mysql -h 127.0.0.1 -P 9030 -uroot
  SET PASSWORD FOR 'root' = PASSWORD('root');
(5)FE中添加删除BE节点(mysql操作)
  在FE中查看BE节点信息:SHOW PROC '/backends'
  添加BE:
  ALTER SYSTEM ADD BACKEND "172.17.0.2:9050";
  ALTER SYSTEM ADD BACKEND "172.17.0.3:9050";
  ALTER SYSTEM ADD BACKEND "172.17.0.4:9050";
删除BE(推荐-安全删除)
ALTER SYSTEM DECOMMISSION BACKEND "172.17.0.3:9050";
  删除BE(不推荐):
  ALTER SYSTEM DROP BACKEND "172.17.0.3:9050";
四、测试
(1)建数据库 CREATE DATABASE test;
(2)建表
CREATE TABLE test.table_hash ( k1 TINYINT, k2 DECIMAL(10, 2) DEFAULT "10.5", v1 CHAR(10) REPLACE, v2 INT SUM ) ENGINE=olap AGGREGATE KEY(k1, k2) COMMENT "my first doris table" DISTRIBUTED BY HASH(k1) BUCKETS 32;
(3)查询
  select * from test.table_hash limit 1;
 
其它操作备注
本机拷贝内容到docker:docker cp /Users/mac/JavaProject/test fe:/opt/fe

Mac使用docker安装Doris的更多相关文章

  1. Mac 下 docker安装

    http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...

  2. 关于解决Mac使用docker安装SQL server for Linux 中文乱码问题

    本人是Mac的追随者,无奈本学期数据库课要求使用Microsoft的SQL server.但是Microsoft并没有发布SQL server for Mac ,笔者使用Google搜索后, 发现可以 ...

  3. Docker | Mac 通过 Docker 安装 Oracle

    Docker | Mac 通过 Docker 安装 Oracle 前言: Oracle 10g 以后就不支持 Mac 版本,因此 Mac 用户需要安装的话可以通过虚拟机或者 Docker 1.在 do ...

  4. 【Mac】Docker安装及基础使用

    Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装:Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默 ...

  5. MAC OSX Docker安装教程2018

    1.首先打开Docker商店 Docker商店地址:https://store.docker.com/editions/community/docker-ce-desktop-mac 2.打开后界面如 ...

  6. mac系统Docker安装Redis教程

    在之前介绍过mac系统安装docker,以及docker安装mysql的傻瓜式教程,如果有需要参考的朋友,可以看下面文章: MacOS安装Docker傻瓜式教程 mac系统下docker安装配置mys ...

  7. Mac 环境docker 安装jenkins

    网上很多的教程是讲的是Linux 上的Docker安装Jenkins,但是我用的是Mac,所以参考之前的前辈写的文章,记录一下自己的安装过程.非常感谢参考文章的前辈写的文章. 参考Docker安装Je ...

  8. mac上Docker安装&初体验

    Docker是什么? Docker是一个虚拟环境容器,可以将你的开发环境.代码.配置文件等一并打包到这个容器中,并发布和应用到任意平台中. 官方文档:https://docs.docker.com H ...

  9. mac下docker安装php链接使用国产数据库驱动

    docker下配置php macos系统无法使用神通数据库,所以使用docker来安装php 第一步先安装php docker search php docker pull php:7.1-fpm d ...

  10. docker 安装 hbase安装 java连接hbase (mac环境)

    docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...

随机推荐

  1. 最全ECharts 实战大全(速记版+资源)

    hello,大家好,我是程序员海军,公众号已经快一年多没更新了,没更新的这段时间,我去哪了呢.这两年经历了很多事情,主要情感上占据大部分时间, 从失恋 - 谈对象 - 再失恋. 言归正传,近期我负责的 ...

  2. Ollma本地部署Qwen2.5 14B(不使用docker)

    部署机器硬件情况: 内存 :32GB 显卡 :3060 为什么不使用docker: 1.网上教程大多以docker为主 2.安装docker的时间太长,在等待的时候顺便尝试一下不用docker的部署 ...

  3. python之常用开发包

    1.passlib (https://passlib.readthedocs.io/en/stable/) passlib 目前常见的不可逆加密算法有以下几种: 一次MD5(使用率很高) 将密码与一个 ...

  4. AI让照片跳舞,人人都能是舞王!Swan下载介绍

    最近,兵马俑.马斯克以及各地网友跳科目三和网红舞的视频陆续在社交媒体和朋友圈刷屏,这些大约10秒左右的视频都不是真人出镜,均由大模型生成,这种低门槛的跳舞方式引发了网友的广泛体验,掀起了一波斗舞狂潮「 ...

  5. 【多线程】Java并发中的锁(草稿)

    可重入锁Synchronized 1 public class DemoTest { 2 public static void main(String[] args) { 3 final DemoTe ...

  6. elementui半年选择组件

    1.基于elementui开发的半年选择组件 2.调用 <el-halfyear-picker v-model="date" :size="size"&g ...

  7. 一图一知之python3数据类型

    记录python数据类型和相关的一些知识点

  8. ChatGPT自动生成功能测试用例的步骤

    在上一节,我们一起探讨了ChatGPT在功能测试用例生成方面的优势.接下来,我们将探讨ChatGPT自动生成功能测试用例的步骤. 1)    问题定义:让ChatGPT自动生成功能测试用例的第一步是清 ...

  9. openEuler欧拉安装Docker

    ​1. dnf配置 # 更新镜像源缓存 dnf makecache # 修改chrony时间同步配置 sed -i 's/pool pool.ntp.org iburst/pool ntp.aliyu ...

  10. HttpClientFactory in ASP.NET Core 2.1 Part 2:定义命名和类型化的客户端

    HttpClientFactory in ASP.NET Core 2.1 Part 2:定义命名和类型化的客户端 原文地址:https://www.stevejgordon.co.uk/httpcl ...