zoukankan      html  css  js  c++  java
  • Apache Doris编译安装记录

    Apache Doris编译安装记录

    一、概述

    Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集。

    百度有提供编译好的程序包,考虑到不具备最新版本特性,故单独基于master分支代码进行编译打包。
    百度编译好的Doris包下载页面:http://palo.baidu.com/docs/下载专区/预编译版本下载

    Doris官方编译参考:
    http://doris.apache.org/master/zh-CN/installing/compilation.html

    编译环境使用官方推荐及提供的docker编译环境(build-env-1.3)来编译打包

    默认使用JDK11编译,则运行环境也需要安装使用相同JDK版本。

    注意:版本区分CPU 支持 avx2 指令版本和不支持版本。

    二、编译打包

    2.1.环境准备

    [root@dbserver ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    [root@dbserver ~]# yum -y install maven git docker-ce 
    [root@dbserver ~]# systemctl start docker
    [root@dbserver ~]# systemctl enable docker
    

    2.2.通过GIT下载Doris代码

    [root@dbserver ~]# mkdir -p /usr/local/src/doris/
    [root@dbserver ~]# cd /usr/local/src/doris
    [root@dbserver doris]# git clone https://github.com/apache/incubator-doris.git
    

    切换central,可加快FE编译速度
    把central换为 https://maven.aliyun.com/repository/central

    vi /usr/local/src/doris/incubator-doris/fe/pom.xml
    
              <repository>
                        <id>central</id>
                        <name>central maven repo https</name>
                        <!--<url>https://repo.maven.apache.org/maven2</url>-->
                        <url>https://maven.aliyun.com/repository/central</url>
                    </repository>
    

    2.3.拉取docker编译环境镜像

    [root@dbserver doris]# docker pull apachedoris/doris-dev:build-env-1.3
    [root@dbserver doris]# docker images
    

    2.4.启动编译环境

    这里挂载源码目录以及m2目录

    [root@dbserver doris]# docker run -it -v /root/.m2:/root/.m2 -v /usr/local/src/doris/incubator-doris/:/usr/local/src/doris/incubator-doris/ --privileged=true apachedoris/doris-dev:build-env-1.3
    

    2.5.进入容器进行编译

    [root@dbserver doris]# docker container ls
    #进入容器 
    [root@dbserver doris]# docker exec -it 3f5c bash
    #切换到编译目录
    [root@3f5c88f541df ~]# cd /usr/local/src/doris/incubator-doris
    
    #编译生成doris,编译后be和fe安装包在生成的output/目录下
    [root@3f5c88f541df incubator-doris]# sh build.sh
    

    2.6 编译问题解决

    2.6.1.parallel_hashmap/phmap.h: No such file or directory 问题解决

    [root@dbserver ~]# mkdir -p /usr/local/src/parallel-hashmap/ 
    [root@dbserver ~]# cd /usr/local/src/parallel-hashmap/
    [root@dbserver parallel-hashmap]# wget https://github.com/greg7mdp/parallel-hashmap/archive/refs/tags/1.33.tar.gz
    [root@dbserver parallel-hashmap]# tar xvf 1.33.tar.gz
    [root@dbserver parallel-hashmap]# cp -fR /usr/local/src/parallel-hashmap/parallel-hashmap-1.33/parallel_hashmap /usr/local/src/doris/incubator-doris/be/src/
    

    2.6.2. Illegal instruction (core dumped) 错误问题

    BE无法启动,会提示“ Illegal instruction (core dumped) ”错误信息
    原因可能是服务器环境不支持avx2指令集(如果是虚拟机环境,可能存在此问题)
    通过“cat /proc/cpuinfo|grep avx2”检查确认下,如果无内容返回,那就是不支持avx2指令集
    解决办法,编译时关闭avx2支持

    [root@3f5c88f541df incubator-doris]# USE_AVX2=OFF ./build.sh
    

    三、部署

    3.1.环境准备

    [root@dbserver ~]# yum install gcc-c++ libstdc++-static ant cmake byacc flex automake libtool binutils-devel bison ncurses-devel java-11-openjdk-devel.x86_64 mysql-community-client.x86_64 unixODBC.x86_64 unixODBC-devel.x86_64
    
    #注意,这里安装mysql-community-client.x86_64仅是需要使用mysql命令操作doris,无需启动mysql服务,也无需安装mysql完整服务
    
    [root@dbserver ~]# ulimit -n 65536;
    [root@dbserver ~]# vi /etc/security/limits.conf
    
    *	soft	nofile	65535
    *	hard	nofile	65535
    *	soft	nproc	131072
    *	hard	nproc	131072
    

    环境配置

    vi /etc/profile
    
    export JAVA_HOME=/usr/lib/jvm/java-11
    export DORIS_HOME=/usr/local/doris/be
    
    source /etc/profile
    
    
    可通过 alternatives --config java 切换JDK版本
    

    3.2.拷贝编译包到安装目录

    cp -fR /usr/local/src/doris/incubator-doris/output /usr/local/
    mv /usr/local/src/doris/incubator-doris/output /usr/local/doris
    

    3.3.修改存储目录(可选)

    [root@dbserver ~]# mkdir -p /doris_data/{storage,doris-meta}
    
    [root@dbserver ~]# cd /usr/local/doris
    [root@dbserver doris]# vi be/conf/be.conf
    
    # storage_root_path = ${DORIS_HOME}/storage
    storage_root_path = /doris_data/storage
    
    [root@dbserver doris]# vi fe/conf/fe.conf
    
    # meta_dir = ${DORIS_HOME}/doris-meta
    meta_dir = /doris_data/doris-meta
    

    3.4.设置网络环境

    #查看本机环境配置
    [root@dbserver doris]# ip -a
    
    [root@dbserver doris]# vi fe/conf/fe.conf
    
    priority_networks = 192.168.1.100/24;
    
    [root@dbserver doris]# vi be/conf/be.conf
    
    priority_networks = 192.168.1.100/24;
    

    3.5.启动FE

    [root@dbserver doris]# sh fe/bin/start_fe.sh --daemon
    [root@dbserver doris]# cat fe/log/fe.out
    

    在 FE 中添加所有 BE 节点

    [root@dbserver doris]# mysql -h192.168.1.100 -P9030 -uroot
    
    mysql> set password = password('Root#123');
    mysql> alter system add backend "192.168.1.100:9050";
    mysql> show proc "/frontends";
    mysql> show proc "/backends";
    mysql> show proc "/brokers";
    

    3.6.启动BE

    [root@dbserver doris]#  sh be/bin/start_be.sh --daemon
    [root@dbserver doris]#  cat be/log/be.INFO
    

    3.7.创建数据库和用户

    mysql> create database test;
    
    mysql> create user developer@'%' identified by "Developer#123";
    mysql> create user bi_user@'%' identified by "Bi_user#123";
    
    mysql> grant Admin_priv on *.* to 'developer'@'%';
    mysql> grant select_priv on test.* to 'bi_user'@'%';
    

    3.8.访问WEB管理平台

    http://ip:8030/
    使用数据库账号和密码登录
    

    3.9.集群部署

    扩容详细参考官方文档: http://doris.apache.org/master/zh-CN/installing/install-deploy.html#集群部署

    把新增BE节点加到BE集群方式: alter system add backend "192.168.1.101:9050";

    把新增FE节点加到FE集群方式: alter system add follower "192.168.1.101:9010"; 或 alter system add observer "192.168.1.101:9010";

    3.10.版本升级

    如果是小版本升级,可直接更新 fe/lib/palo-fe.jar 及be/lib内容即可,如果是大版本升级则建议整体更新

    3.11.外部表支持

    # yum install unixODBC.x86_64 unixODBC-devel.x86_64 -y 
    
    #https://dev.mysql.com/downloads/connector/odbc/
    # rpm -ivh  mysql-connector-odbc-8.0.25-1.el7.x86_64.rpm
    # myodbc-installer -d -l
    

    3.12.fe.conf其他常用参数说明

    • lower_case_table_names=1

    表名大小写敏感性设置,该变量兼容MySQL。需在集群初始化时通过fe.conf 指定 lower_case_table_names=1进行配置,集群初始化完成后无法通过set 语句修改该变量,也无法通过重启、升级集群修改该变量。

    • dynamic_partition_enable = true

    启用动态分区

  • 相关阅读:
    HTML特殊字符编码对照表(备记)
    【java线程】锁机制
    java判断一个字符串是否为空,isEmpty和isBlank的区别
    对Java中properties类的理解
    使用redis的zset实现高效分页查询(附完整代码)
    ServiceStack.Redis高效封装和简易破解
    3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码)
    2.NetDh框架之简单高效的日志操作类(附源码和示例代码)
    1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
    SQL Server索引原理解析
  • 原文地址:https://www.cnblogs.com/huligong1234/p/15442998.html
Copyright © 2011-2022 走看看