Doris

1.DOris环境编译

1.1docker环境安装

  • 使用 root 权限登录系统,确保 yum 包更新到最新
    1
    sudo yum update -y
  • 假如安装过旧版本,先卸载旧版本
    1
    sudo yum remove docker docker-common docker-selinux docker-engine
  • 安装 yum-util 工具包和 devicemapper 驱动依赖
    1
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置 yum 源(加速 yum 下载速度)
    1
    sudo yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 查看所有仓库中所有 docker 版本,并选择特定版本安装,一般可直接安装最新版
    1
    yum list docker-ce --showduplicates | sort -r
  • 安装 docker
    1
    2
    3
    4
    5
    6
    7
    #安装最新稳定版本的方式:
    sudo yum install docker-ce -y #安装的是最新稳定版本,因为 repo 中默认只开启 stable 仓库
    #docker开机自启动
    sudo systemctl start docker #启动 docker
    sudo systemctl enable docker #加入开机自启动
    #查看 Version,验证是否安装成功
    docker version

1.2docker环境安装

  • 下载源码并解压
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #进入安装目录
    cd /opt/software/
    上传源码(apache-doris-0.15.0-incubating-src.tar.gz)
    wget https://dist.apache.org/repos/dist/dev/incubator/doris/0.15/0.15.0-rc04/apache-doris-0.15.0-incubating-src.tar.gz
    #解压源码
    tar -zxvf apache-doris-0.15.0-incubating-src.tar.gz -C /opt/software
    #下载镜像
    docker pull apache/incubator-doris:build-env-for-0.15.0
    #查看镜像是否下载完成
    docker images
    #将镜像挂在本地目录上
    docker run -it \
    -v /opt/software/.m2:/root/.m2 \
    -v /opt/software/apache-doris-0.15.0-incubating-src/:/root/apache-doris-0.15.0-incubating-src/ \
    apache/incubator-doris:build-env-for-0.15.0
  • 在镜像中将java环境改为jdk8

    1
    2
    3
    alternatives --set java java-1.8.0-openjdk.x86_64
    alternatives --set javac java-1.8.0-openjdk.x86_64
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0
  • 给docker镜像添加maven依赖

    1
    2
    上传doris-repo.tar.gz并解压
    tar -zxvf doris-repo.tar.gz -C /opt/software(镜像的挂载的目录
  • 编译 Doris

    1
    2
    3
    4
    5
    6
    7
    8
    如果是第一次使用 build-env-for-0.15.0 或之后的版本,第一次编译的时候要使用如下命令:
    sh build.sh --clean --be --fe --ui

    第二次可以编译可以使用如下命令
    sh build.sh

    因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过--clean 命令强制
    使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码

1.2 创建目录并拷贝编译后的文件(创建集群)

  • 创建目录并拷贝编译后的文件

    1
    2
    mkdir /opt/module/apache-doris-0.15.0
    cp -r /opt/software/apache-doris-0.15.0-incubating-src/output /opt/module/apache-doris-0.15.0
  • 修改文件数

    1
    2
    3
    4
    5
    sudo vim /etc/security/limits.conf
    * soft nofile 65535
    * hard nofile 65535
    * soft nproc 65535
    * hard nproc 65535

1.3部署FE节点

  • 创建 fe 元数据存储的目录

    1
    mkdir /opt/module/apache-doris-0.15.0/doris-meta
  • 修改 fe 的配置文件

    1
    2
    3
    4
    5
    vi /opt/module/apache-doris-0.15.0/fe/conf/fe.conf
    #配置文件中指定元数据路径:
    meta_dir = /opt/module/apache-doris-0.15.0/doris-meta
    #修改绑定 ip(每台机器修改成自己的 ip)
    priority_networks = 192.168.56.129/24
  • 启动FE

    1
    /opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --daemon

1.4配置BE节点

  • 创建BE的存储目录

    1
    2
    mkdir /opt/module/apache-doris-0.15.0/doris-storage1
    mkdir /opt/module/apache-doris-0.15.0/doris-storage2
  • 配置BE的配置文件(每台节点都要配置)

    1
    2
    torage_root_path = /opt/module/apache-doris-0.15.0/doris-storage1;/opt/module/apache-doris-0.15.0/doris-storage2
    priority_networks = 192.168.56.129/24

1.5在FE中添加BE节点

  • 在目录中下载MySQL的包

    1
    2
    3
    cd /usr/local
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    tar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
  • 将解压的mysql目录进行解压,并创建存储数据的文件目录

    1
    2
    3
    mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
    cd mysql-8.0
    mkdir data
  • 安装教程

    1
    2
    3
    4
    5
    6
    7
    //创建用户组以及用户和密码
    groupadd mysql
    useradd -g mysql mysql
    //授权用户并初始化基础信息(会生成初始密码。记得记录)
    chown -R mysql.mysql /usr/local/mysql-8.0
    cd bin
    ./mysqld --user=mysql --basedir=/usr/local/mysql-8.0 --datadir=/usr/local/mysql-8.0/data/ --initialize
  • 编辑my.cnf文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    vi /etc/my.cnf
    //*注释mysqld_safe内容,
    //注释mysqld_safe内容,
    //注释mysqld_safe内容,修改信息
    [mysqld]
    basedir=/usr/local/mysql-8.0/
    datadir=/usr/local/mysql-8.0/data/
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4
  • 添加mysql服务,并启动

    1
    2
    3
    4
    5
    cp -a ../support-files/mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    chkconfig --add mysql
    service mysql start
    ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin
  • 登录mysql

    1
    2
    3
    4
    5
    6
    7
    mysql  mysql -uroot -p
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    flush privileges;
    use mysql;
    update user set host='%' where user='root';
    flush privileges;
    quit;
  • 在mysql中添加BE

    1
    2
    3
    4
    ALTER SYSTEM ADD BACKEND "node09:9050";
    ALTER SYSTEM ADD BACKEND "node10:9050";
    ALTER SYSTEM ADD BACKEND "node11:9050";
    ALTER SYSTEM ADD BACKEND "192.168.56.129:9050";

1.6启动BE

每个节点BE

1
/opt/module/apache-doris-0.15.0/be/bin/start_be.sh --daemon

1.7FE的扩容

  • 进入mysql添加FE

    1
    2
    ALTER SYSTEM ADD FOLLOWER "hadoop2:9010";
    ALTER SYSTEM ADD OBSERVER "hadoop3:9010";
  • 向每个节点分发FE,并启动

    1
    /opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --helper hadoop1:9010 --daemon

1.7Broker 扩容

  • 用以下命令在mysql扩容Broker

    1
    2
    3
    ALTER SYSTEM ADD BROKER broker_name "IP地址:端口号"; 
    ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port"; #删除操作
    ALTER SYSTEM DROP ALL BROKER broker_name;