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
赋予超级用户权限
%wheel ALL=(ALL) ALL
usermod -g root sudouser
root ALL=(ALL) ALL
sudouser ALL=(ALL) ALL
2.创建执行环境&设置环境变量
创建执行环境
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 java-1.8.0-openjdk npm
设置环境变量
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
export MAVEN_HOME=/usr/lib/apache-maven-3.8.4/
export PATH=$PATH:$MAVEN_HOME/bin
source /opt/rh/devtoolset-7/enable
cmake
要用cmake3
ln -s /usr/bin/cmake3 /usr/bin/cmake
java
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
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
在文件最后添加以下配置:
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
5).刷新配置
source /etc/profile
6).验证结果:
node -v
npm -v
3.拉取源码
下载源码
wget https://dlcdn.apache.org/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.安装第三方依赖
在这一步之前,建议首先跳到第6步,可能出现的问题,检查一下是否有依赖版本不符合要求
cd 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
编译之后输出至output目录,有3个子目录:be、fe、udf,只需要拷贝output目录到其他服务器即可
6.遇到的问题
6.1 GCC版本过低:
升级到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
6.2 Failed to download DataTables.zip\s2n-0.10.0.tar.gz
except-md5 f7f18a9f39d692ec33b5536bff617232
actual-md5 7698e7ae6c1d53d5e1f256b4fc8d5a44 /root/data/apache-doris-0.14.0-incubating-src/thirdparty/src/DataTables.zip
Archive DataTables.zip will be removed and download again.
Failed to download DataTables.zip
vi var.sh
将DataTables.zip的MD5值进行替换
6.3 Failed to unzip DataTables.zip
需要在本地进行解压后上传到服务器对应位置,并进行更名
~/src/DataTables-1.10.25
vi var.sh
vi var.sh
6.4 CMake 3.1 or higher is required. You are running version xxxx
yum remove cmake
yum install cmake3
ln -s /usr/bin/cmake3 /usr/bin/cmake
6.5 有可能会报Bootstrap3.3.7/与jQuery3.3.1/目录无法找到的问题
其实就是路径没找对,只需要去Bootstrap
7.部署
因为是测试环境,所以此次部署1个FE,3个BE。
在机器01上创建目标目录
mkdir /data/serve/doris
配置 FE
将编译完的output/ 下的fe 目录拷贝至该目录下。
配置文件为 fe/conf/fe.conf 。其中注意:meta_dir:元数据存放位置。默认在 fe/doris-meta/ 下。需手动创建该目录。 注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置 fe.conf 中JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
cd /data/software/doris/fe
mkdir doris-meta
启动FE
sh bin/start_fe.sh --daemon
FE进程启动进入后台执行。日志默认存放在 fe/log/ 目录下。如启动失败,可以通过查看 fe/log/fe.log 或者 fe/log/fe.out 查看错误信息。
有可能的错误一:
edit_log_port 9010 端口被占用,重新更换edit_log_port端口
vi conf/fe.conf
有可能的错误二 :
单节点FE迁移启动失败
vi conf/fe.conf
metadata_failure_recovery=true
连接FE
可以用查看本机的hostname 来进行连接,也可以使用本机的私有IP进行连接
mysql -uroot -hkbox101 -P9030
能连上说明FE配置成功
配置&启动BE
拷贝 BE 部署文件到所有要部署 BE 的节点 将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点的指定部署路径下。
修改所有 BE 的配置
修改 be/conf/be.conf 。主要是配置 storage_root_path :数据存放目录。默认在be/storage 下,需要手动创建该目录。多个路径之间使用英文状态的分号 ; 分隔(最后一个目录后不要加 ;)。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开。 注意:如果是SSD磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD
*** 错误信息可以在be.info中查看***
错误一:
Check failed: s.ok() Internal error: tcp listen failed, errno=98, errmsg=Address already in use
BE webserver_port端口配置:
如果 be 部署在 hadoop 集群中,注意调整 be.conf 中的 webserver_port = 8040 ,以免造成端口冲突
启动BE
sh bin/start_be.sh --daemon
添加BE
ALTER SYSTEM ADD BACKEND "kbox101:9050";
查看BE运行情况
SHOW PROC '/backends'\G
显示结果:
*************************** 1. row ***************************
BackendId: 12002
Cluster: default_cluster
IP: xx.xx.xx.xx
HostName: kbox101
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8085
BrpcPort: 8060
LastStartTime: 2021-11-23 15:14:09
LastHeartbeat: 2021-11-23 15:24:50
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 0
DataUsedCapacity: .000
AvailCapacity: 1.000 B
TotalCapacity: .000
UsedPct: 0.00 %
MaxDiskUsedPct: 0.00 %
ErrMsg:
Version: 0.14.0-release-Unknown
Status: {"lastSuccessReportTabletsTime":"N/A"}
1 row in set (0.03 sec)
Alive的值为true,说明连接成功。
8.可参考的技术文档
Doris12版安装编译部署(docker编译)
记录apache doris使用过程中出现的问题
集群部署
Apache Doris 环境安装部署
|