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

启用动态分区

posted @ 2021-10-23 13:22  一片相思林  阅读(950)  评论(0编辑  收藏  举报