一、编译源码
(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. Winform跨线程访问报错问题解决

    ` using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; u ...

  2. vue组件传参props

    传参格式,将需要传的参数以属性方式写在组件标签上 //组件标签 <zu a='参数一' b='参数b'></zu> 接收格式,在组件内 //props属性接收参数 props: ...

  3. Element Plus组件el-select回显异常

    前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...

  4. 解读GaussDB的BTree索引和UBTree索引,如何带来更强并发能力

    本文分享自华为云社区<[GaussTech技术专栏]GaussDB的BTree索引和UBTree索引>,作者:GaussDB 数据库. 1. 简介 数据库通常使用索引来提高业务查询的速度. ...

  5. Simple FOC内置通信接口学习(二):电机命令接口

    本文参(zhao)考(chao)至官方文档https://docs.simplefoc.com/docs_chinese/commander_interface Commander 接口 Comman ...

  6. 国产系统中标麒麟neokylin上的可视化大屏电子看板系统

    一.功能特点 采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件. 子控件包括饼图.圆环图.曲线图.柱状图.柱状分组图.横向柱状图.横向柱状分组图.合格率 ...

  7. Qt编写的项目作品8-视频综合应用示例

    一.功能特点 1.1 基础功能 支持各种音频视频文件格式,比如mp3.wav.mp4.asf.rm.rmvb.mkv等. 支持本地摄像头设备,可指定分辨率.帧率. 支持各种视频流格式,比如rtp.rt ...

  8. Qt项目架构经验总结

    (一)通用规则 除了极小的微型demo级别项目外,其余项目建议用pri分门别类不同文件夹存放代码文件,方便统一管理和查找. 同类型功能的类建议统一放在一起,如果该目录下代码文件数量过多,也建议拆分多个 ...

  9. Log4net的使用教程

    不怎么爱写日志,(就是比较懒),后来遇上bug了找不到问题,才决定好好使用日志 其实说实话,log4配置的那些东西记不太住,但也不需要记住什么.百度就有现成的,自己跟着网上配置好之后,稍微记录一下,为 ...

  10. [转]基于 Node.js 实现前后端分离

    为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了"前后端"的定义,引入前端同学都熟悉的No ...