Apache Doris安装部署手册

1 docker部署

1.1 安装docker基础环境

1.1.1 卸载旧版本(如果安装过旧版本的话)

此处采用在线安装的方式:

sudo yum remove docker  docker-common docker-selinux docker-engine  
1.1.2 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.3 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.1.4 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
1.1.5 安装docker
sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
sudo yum install docker-ce-18.03.1.ce   #或者直接指定版本
1.1.6 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
1.1.7 验证安装是否成功
docker version

有client和server两部分表示docker安装启动都成功了

1.1.8 网络需求

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口(端口可根据实际情况修改)

实例名称 端口名称 默认端口 通讯方向 说明
BE be_port 9060 FE –> BE BE 上 thrift server 的端口,用于接收来自 FE 的请求
BE webserver_port 8040 BE <–> BE BE 上的 http server 的端口
BE heartbeat_service_port 9050 FE –> BE BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BE brpc_port* 8060 FE<–>BE, BE <–> BE BE 上的 brpc 端口,用于 BE 之间通讯
FE http_port * 8030 FE <–> FE,用户 FE 上的 http server 端口
FE rpc_port 9020 BE –> FE, FE <–> FE FE 上的 thrift server 端口,每个fe的配置需要保持一致
FE query_port 9030 用户 FE 上的 mysql server 端口
FE edit_log_port 9010 FE <–> FE FE 上的 bdbje 之间通信用的端口
Broker broker_ipc_port 8000 FE –> Broker, BE –> Broker Broker 上的 thrift server,用于接收请求

注:

  1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
  1. 部署前请确保各个端口在应有方向上的访问权限。

1.2 部署步骤

1.2.1 配置主机hosts(可选)

我配置了四个节点

192.168.0.91 doris-node1

192.168.0.92 doris-node2

192.168.0.93 doris-node3

192.168.0.94 doris-node4
1.2.2 上传doris镜像和编译好的doris源码包到服务器,也可以直接在服务器进行编译

doris镜像:doris_v1.tar.gz

doris源码包:Doris_源码包.zip

注:doris官网会持续修复一些bug,所有需要定时关注并更新镜像和源码。

1.2.3 解压源码包
unzip Doris_源码包.zip
1.2.4 导入镜像
docker load -i doris_v1.tar.gz

注:这个镜像可能有问题,如果不行可以直接下载官网的镜像:

docker pull apachedoris/doris-dev:build-env-1.3

使用以上版本安装会出现core dump的问题,这个系统的bug,目前已经修复,使用如下版本安装没有再出现类似问题:

0.14.0.tar.gz
docker pull apachedoris/doris-dev:build-env-1.2
1.2.5 逐个启动容器
docker run -it --name doris-fe -v /home/Doris/incubator-doris/:/var/local/incubator-doris/  --network host --privileged doris:v1.1
或者
docker run -it --name doris-fe -v /home/incubator-doris/:/var/local/incubator-doris/  --network host --privileged apachedoris/doris-dev:build-env-1.3

doris-fe:容器名称,fe和be的名称可自行配置

/home/Doris/incubator-doris/:宿主机挂载目录

/var/local/incubator-doris/:容器对应目录

注:必须使用 host 网络模式以确保 FE 和 BE,以及 BE 之间的连通性

1.2.6 同步时间

先查看时区是否正确,如果是UTC需要修改为CST

mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.2.7 修改FE配置文件

进入容器

docker exec -it 【容器名称/ID】 /bin/bash 
vi /var/local/incubator-doris/output/fe/conf/fe.conf

端口配置

http_port = 8130(端口冲突,将默认8030做了修改)
rpc_port = 9020
query_port = 9030
edit_log_port = 9110(端口冲突,将默认9010做了修改)

网络配置

priority_networks = 192.168.0.0/16

docker 虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP,必须通过 priority_networks 配置项来强制指定正确的 IP(BE同理)

存储路径(根据服务器实际情况进行配置)

meta_dir = ${DORIS_HOME}/doris-meta

注:此目录需要手动创建

详细配置参考:http://doris.apache.org/master/zh-CN/administrator-guide/config/fe_config.html

1.2.8 修改BE配置文件
vi /var/local/incubator-doris/output/be/conf/be.conf

端口配置

be_port = 9060
be_rpc_port = 9070
webserver_port = 8140(端口冲突,将默认8040做了修改)
heartbeat_service_port = 9050
brpc_port = 8060

网络配置

priority_networks = 192.168.0.0/16

存储路径(根据服务器实际情况进行配置)

storage_root_path = /var/local/incubator-doris/output/be/data

注:此目录需要手动创建

  • 描述:BE数据存储的目录,多目录之间用;分隔。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过,隔开。 eg:storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris

    • 1./home/disk1/doris.HDD, 存储限制为50GB, HDD;

    • 2./home/disk2/doris.SSD,存储限制为1GB,SSD;

    • 3./home/disk2/doris,存储限制为磁盘容量,默认为HDD

  • 默认值:${DORIS_HOME}

  • 实际上并不会去检查使用的是什么存储介质

详细配置参考:http://doris.apache.org/master/zh-CN/administrator-guide/config/be_config.html

1.2.9 启动FE
sh bin/start_fe.sh --daemon

daemon是后台启动的意思

通过mysql客户端连接FE,mysql -h FE_HOST -P9030 -uroot

查看FE状态

SHOW PROC '/frontends';
image-20210420180543358.png

单节点 FE 是最基本的一种部署方式。一个完整的 Doris 集群,至少需要一个 FE 节点。当只有一个 FE 节点时,这个节点的类型为 Follower,角色为 Master。

如果是集群需要添加FE,添加 FE 流程在https://github.com/apache/incubator-doris/wiki/Doris-Deploy-%26-Upgrade有详细介绍,不再赘述。

通过 ALTER SYSTEM DROP FOLLOWER/OBSERVER 命令即可删除对应类型的 FE。

逐一添加BE节点

ALTER SYSTEM ADD BACKEND "192.168.0.91:9050";

删除节点使用DROPP

查看FE配置: http://192.168.0.92:8130/variable

1.2.10 启动BE
sh bin/start_be.sh --daemon

查看BE状态

SHOW PROC '/backends';
image-20210420180634301.png

查看BE配置: http://192.168.0.192:8140/variable

2 问题记录

2.1 BE启动失败

2.1.1 服务资源不足

最开始在部署有CDH平台的服务器上面部署Doris,服务器的cpu和内存资源都不够导致BE经常挂掉,换了一台新的服务器部署之后则可以正常启动运行了。

2.1.2 存储目录没有手动创建

如果存储目录没有手动创建也会导致启动失败

2.1.3 修改最大文件句柄数(可选)

如果出现打开文件限制导致启动失败,可以修改最大文件句柄数

echo "* soft nofile 204800"  >> /etc/security/limits.conf
echo "* hard nofile 204800"  >> /etc/security/limits.conf
echo "* soft nproc 204800"  >> /etc/security/limits.conf
echo "* hard nproc 204800 "  >> /etc/security/limits.conf
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

查看

cat /etc/security/limits.conf
cat /etc/sysctl.conf

3 数据导入

3.1 Stream load

用户通过 HTTP 协议提交请求并携带原始数据创建导入。主要用于快速将本地文件或数据流中的数据导入到 Doris。导入命令同步返回导入结果。

注:分隔符根据实际情况修改,文本的内容不要带单引号或者双引号,doris会当成字符串和数据直接拼接在一起。比如mysql导出的csv或者txt文件需要全局替换去引号(数据量大的建议在导出的时候就设置去掉引号)。

参考:http://doris.apache.org/master/zh-CN/administrator-guide/load-data/load-manual.html#%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5

你可能感兴趣的:(Apache Doris安装部署手册)