Apache Doris安装过程

本文详细介绍了Apache Doris的安装过程,包括系统与版本要求、创建用户、环境变量设置、第三方依赖安装、源码编译、集群部署、FE与BE配置、错误处理等步骤。特别强调了在CentOS7环境下安装的稳定性,以及在测试和生产环境中FE和BE的角色配置。此外,还提到了Doris的数据库压测方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.系统与版本要求

Linux 操作系统版本需求

Linux 系统 版本
CentOS 7.1 及以上
Ubuntu 16.04 及以上

虽然要求centos7以上,但是实测在centos8安装会出现某些依赖一直安装不上的问题,因此建议安装在centos7上

软件需求

软件 版本
Java 1.8 及以上
GCC 4.8.2 及以上

开发测试环境

模块 CPU 内存 磁盘 网络 实例数量
Frontend 8核+ 8GB+ SSD 或 SATA,10GB+ * 千兆网卡 1
Backend 8核+ 16GB+ SSD 或 SATA,50GB+ * 千兆网卡 1-3 *

生产环境

模块 CPU 内存 磁盘 网络 实例数量(最低要求)
Frontend 16核+ 64GB+ SSD 或 RAID 卡,100GB+ * 万兆网卡 1-5 *
Backend 16核+ 64GB+ SSD 或 SATA,100G+ * 万兆网卡 10-100 *

注1:

FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差

测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。
所有部署节点关闭 Swap。

注2:FE 节点的数量

FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower,具体含义见 元数据设计文档)。
FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
Follower 的数量必须为奇数,Observer 数量随意。
根据以往经验,当集群可用性要求很高是(比如提供在线业务),可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。

1. 创建用户(非必要选项)

useradd sudouser

设置密码

passwd sudouser

赋予超级用户权限

# 修改 /etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
vi /etc/sudoers
root    ALL=(ALL)     ALL
sudouser   ALL=(ALL)     ALL
# 修改完毕,现在可以用sudouser帐号登录,然后用命令 sudo su - ,即可获得root权限进行操作。

# 修改用户的sftp权限,首先找到下面文件的位置(一般都在/usr/libexec/openssh/sftp-server)
find / -name sftp-server -print
# 编辑/etc/sudoers 文件
# 在刚刚加入的一行下面再加一句
visudo
sudouser ALL=NOPASSWD:/usr/libexec/openssh/sftp-server
# 同时,将文件中的如下一行注释掉(如果有的话):
Defaults    requiretty

2.创建执行环境&设置环境变量

更改句柄数:

vi /etc/security/limits.conf
# 修改下面参数的值
* soft nofile 655360      # open files  (-n)
* hard nofile 655360
 
* soft nproc 655650
* hard nproc 655650       # max user processes   (-u)
vi /etc/security/limits.d/20-nproc.conf
# 修改参数的值
*          soft    nproc     655350
root       soft    nproc     unlimited
# 修改 /etc/sysctl.conf, 加入
echo fs.file-max = 6553560 >> /etc/sysctl.conf
# 修改两个文件的值
/etc/systemd/system.conf   #modify hard limit
/etc/systemd/user.conf   #modify soft limit
# 在Manager下增加
[Manager]
DefaultLimitNOFILE=655350
DefaultLimitNPROC=655350

需要重新登录,或者重新打开ssh客户端连接,永久生效

设置yum源

cd /etc/yum.repos.d/
# 备份
mkdir repo_bak
mv *.repo repo_bak/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 清除系统yum缓存并生成新的yum缓存
yum clean all	
yum makecache
# 安装epel
yum install -y epel-release
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 查看目前系统的yum源
yum repolist all

创建执行环境

sudo yum groupinstall 'Development Tools' && sudo yum install cmake3 byacc flex automake libtool bison binutils-devel zip unzip ncurses-devel curl git wget python2 glibc-static libstdc++-static npm

设置环境变量

java
# 最新的官网地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# 把jdk-8u171-linux-x64.tar.gz下载到本地
cd /usr/lib
mkdir java
# 创建/usr/lib/java目录
cd java
# 进入java目录
# 用Xftp把jdk-8u311-linux-x64.tar.gz上传到此目录
# 解压
tar -xzvf jdk-8u311-linux-x64.tar.gz
vim /etc/profile
# 配置系统环境变量

vi /etc/profile
export JAVA_HOME=/usr/lib/java/jdk1.8.0_311
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

chmod 755 -R /usr/lib/java/jdk1.8.0_311
Maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz --no-check-certificate
tar -xzvf apache-maven-3.8.4-bin.tar.gz
mv apache-maven-3.8.4 /usr/lib/

# 环境变量
vi /etc/profile

# maven
export MAVEN_HOME=/usr/lib/apache-maven-3.8.4/
export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

# 配置maven镜像源


cd /usr/lib/apache-maven-3.8.4/conf
vi settings.xml
# 增加源

# 阿里云Maven镜像:

<mirror>  
    <id>nexus-aliyun</id>  
    <mirrorOf>central</mirrorOf>    
    <name>Nexus aliyun</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
</mirror>  

#或开源中国maven镜像
<mirror>  
  <id>nexus-osc</id>  
  <mirrorOf>*</mirrorOf>  
  <name>Nexus osc</name>  
  <url>http://maven.oschina.net/content/groups/public/</url>  
</mirror>  

chmod 755 -R /usr/lib/apache-maven-3.8.4/
cmake

要用cmake3

ln -s /usr/bin/cmake3 /usr/bin/cmake
# 验证
cmake --version 
python

要用python2

npm

1).安装gcc

yum install gcc gcc-c++

2).下载node国内镜像(推荐)

wget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz

3).解压并重命名文件夹

tar -xvf  node-v10.14.1-linux-x64.tar.gz
mv node-v10.14.1-linux-x64 /usr/local/node

4).添加环境变量

vi /etc/profile

在文件最后添加以下配置:

# npm
export NODE_HOME=/usr/local/node  
export PATH=$NODE_HOME/bin:$PATH

5).刷新配置

source /etc/profile

6).验证结果:

node -v
npm -v
升级到gcc 7.3
yum -y install centos-release-scl 
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils 
scl enable devtoolset-7 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 7.3的话:

echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile

3.拉取源码(如果已经有编译好的output/目录可以直接进行第5步的分发)

下载源码

wget https://archive.apache.org/dist/incubator/doris/0.14.0-incubating/apache-doris-0.14.0-incubating-src.tar.gz
tar -xzvf apache-doris-0.14.0-incubating-src.tar.gz

4.安装第三方依赖

cd ~/apache-doris-0.14.0-incubating-src/thirdparty

第三方依赖下载连接错误、失效等问题
Doris 所依赖的第三方库的下载连接都在 thirdparty/vars.sh 文件内。随着时间推移,一些下载连接可能会失效。如果遇到这种情况。可以使用如下两种方式解决:

1) 手动修改 thirdparty/vars.sh 文件

手动修改有问题的下载连接和对应的 MD5 值。

2) 使用第三方下载仓库(推荐):

export REPOSITORY_URL=https://doris-thirdparty-repo.bj.bcebos.com/thirdparty
sh build-thirdparty.sh

REPOSITORY_URL 中包含所有第三方库源码包和他们的历史版本。

5.编译

sh build.sh
# 此步骤会把FE与BE都编译完毕
# 此步骤会根据网速不同,速度不同,但是大约需要一小时左右

编译之后输出至output目录,有3个子目录:be、fe、udf,只需要拷贝output目录到其他服务器即可

分发至其他服务器

例如:

scp -R ./serve sudouser@10.32.21.10:~/

分发完毕之后更改一下目录所属权限,顺便把fe/doris-meta/与be/storage/目录删除,否则会影响后续启动。

# 更改目录或文件所属用户
sudo chown -R sudouser /home/sudouser/serve/doris-0.14.0/
# 更改目录或文件所属用户组
sudo chgrp -R sudouser /home/sudouser/serve/doris-0.14.0/
# 更改权限
sudo chmod -R 775 /home/sudouser/serve/doris-0.14.0/

注意:FOLLOWER角色的数量要为奇数

6.集群部署

因为是测试环境,所以此次部署1个FE,3个BE。

机器01 机器02 机器03
FE、BE BE BE

在机器01上创建目标目录

mkdir /data/serve/doris
6.1 配置 FE

将编译完的output/ 下的fe目录拷贝至该目录下。

配置文件为 fe/conf/fe.conf。其中注意:meta_dir:元数据存放位置。默认在 fe/doris-meta/下。需手动创建该目录。
注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置
fe.confJAVA_OPTS默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。

cd /data/softcware/doris/fe
# 首先需要创建doris-meta
mkdir doris-meta
- 配置priority_network

参考下面这个文档:https://blog.youkuaiyun.com/qq_37865420/article/details/114253083

这个非必选项

- 启动FE–master
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值