1. 程式人生 > 其它 >Apache Doris編譯安裝記錄

Apache Doris編譯安裝記錄

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

JAVA_HOME環境配置

export JAVA_HOME=/usr/lib/jvm/java-11

或者 alternatives --config java

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

啟用動態分割槽